Коротко о том, какая информация должна осесть в твоей голове после второй лекции по "Преобразователям информации".
Во-первых, преобразователи информации (ПИ) - это устройство конвертирующее сигнал из аналоговой (непрерывной) формы в дискретную (то есть последовательность дискретных кодов) либо наоборот. ПИ бывают двух видов: аналого-цифровой преобразователь (АЦП или ADC- ставит в соответствие аналоговому непрерывному сигналу дискретный код) и цифро-аналоговый преобразователь (ЦАП или DAC - каждому входному дискретному коду ставит в соответствие определенный уровень выходного напряжения).
Основные характеристики преобразователей
- Опорное напряжение (Uref) неразрывно связано с понятием диапазона измерений, то есть диапазона значений входного сигнала в котором может быть произведено измерение. Входной сигнал можно достоверно измерить только если он находится в пределах диапазона измерений. Часто на практике такой диапазон определяется между точкой нулевого потенциала (земля - 0 вольт) и некоторым напряжением, которое и называется опорным напряжением (Uref).
- Разрядность (n) определяет количество битов информации, с помощью которых кодируется дискретный сигнал, из чего следует разрешающая способность преобразователя.
Для ADC, весь диапазон измерения квантуется на уровни, то есть разбивается на множество интервалов - уровней квантования. Каждому уровню квантования в соответствие ставится определенный код. Количество таких уровней равняется 2^n - два в степени n.
Для DAC то же самое, но в другом направлении, например, на выходе 8-битного DAC может быть сформировано 256 различных уровней напряжения. - Величина младшего разряда (h), для ADC - это минимальное изменение величины входного сигнала, которую он может различить, для DAC - сформировать на выходе
- Частота дискретизации (fs) - частота, с которой происходит преобразование, то есть либо измерение входного сигнала (для ADC), либо формирование уровня выходного сигнала (для DAC). Еще применяется понятие количества миллионов семплов в секунду MSPS (Million Samples Per Second), то есть количество дискретных значений в секунду на выходе ADC, либо на входе DAC. Почти всегда эти величины совпадают, но бывают исключения.
Рынок электроники предоставляет большое разнообразие ADC и DAC с различными характеристиками. Для того чтобы подобрать подходящий преобразователь для конкретной задачи, для начала, необходимо разобраться что такое теоремы Котельникова (для этого нужно узнать что такое преобразование Фурье) и ошибка квантования - понятия, которые указывают на принципиальные ограничения возможностей конкретного преобразователя.
Преобразование Фурье
Фурье определил, что абсолютно любую непрерывную функцию можно представить в виде суммы гармонических функций (sin, cos) с разной частотой, амплитудой и начальной фазой. То есть, сложив множество синусов и косинусов с подходящей частотой, амплитудой и начальной фазой можно получить абсолютно любую непрерывную функцию.
Это значит, что любую непрерывную функцию можно представить (описать ее) не только во временной области (фиолетовое направление на картинке ниже), но и в частотной области (синее направление).
Обычно люди наблюдают сигналы как изменение амплитуды какого-то параметра с течением времени (фиолетовое направление). С помощью преобразования Фурье можно узнать, что наблюдаемый сигнал синего цвета является суммой двух гармонических сигналов - зеленого и фиолетового, с некоторыми параметрами амплитуды, частоты и фазы. В синем направлении можно наблюдать спектр того же самого сигнала. Спектр показывает зависимость амплитуды синусов, входящих в исходный сигнал, от их частоты. Спектр является представлением сигнала в частотной области и изображен в синей рамке. Чем частота ниже, тем она располагается левее, поэтому зеленый слева. Высокие частоты располагаются правее. Говоря простыми словами: положение столбика отражает частоту синуса входящего в сигнал, высота столбика - его амплитуду.
Само преобразование Фурье - это математический алгоритм, последовательность математических действий, которые можно применить к функции и получить на выходе последовательность значений, отражающих амплитуды синусов (их называют гармониками) входящих в сигнал.
Имея временное представление функции и проделав преобразование Фурье получается частотное представление этой функции - спектр. Если теперь и над частотным представлением проделать преобразование Фурье, то снова получится временное представление. При этом если убрать столбик в частотной области (одну частоту), то во временной она тоже пропадет.
Теоремы Котельникова (критерий Найквиста)
Когда появилась возможность дискретизации сигнала тут же встали вопросы, а из каких соображений исходить при выборе интервала дискретизации, как это влияет на точность восстановления сигнала, и каков максимально допустимый интервал дискретизации, при котором еще принципиально возможно восстановление непрерывного сообщения по его отсчетам?
Первым, строго математически ответил на эти вопросы Котельников в своих двух теоремах.
Первая теорема Котельниково
Любую функцию x(t), имеющую ограниченный спектр частот от нуля до fв и наблюдаемую бесконечное время можно представить в виде ряда:
где, k - целое число, x(k𝚫t) - значение функции в k𝚫t момент времени, 𝛚в = 2𝛑fв.
Большую часть выражения составляет функция Котельникова 𝟁к(t) умноженная на значение функции в дискретные моменты времени x(k𝚫t). В нарисованном виде 𝟁к(t) смотрится вполне понятно. При t = 0 функция Котельникова находится в точке 1. Умножение этого выражения на коэффициент приводит к пропорциональному увеличению амплитуды основного центрального горба.
Так вот, первая теорема Котельникова утверждает, что любую бесконечно длинную функцию, которая не содержит в себе частоты выше fв можно представить суммой функций Котельникова сдвинутых на дискретные моменты времени и домжноженных на коэффициент, соответствующий амплитуде сигнала в данной точке.
Проще говоря, если спектр сигнала ограничен некоторой частотой сверху, то необязательно измерять сигнал во все моменты времени, чтобы знать всю информацию о нем, достаточно делать измерения через определенные временные промежутки. Через какие - ответит вторая теорема Котельникова.
Вторая теорема Котельниково
Любую функцию x(t), имеющую ограниченный спектр частот от нуля до fв и наблюдаемую бесконечное время, можно представить с любой степенью точности 𝝴 при помощи чисел, следующих друг за другом через равные интервалы времени
Из сказанного следует: чтоб не потерять информацию в сигнале нужно, чтобы частота дискретизации fs (скорость измерения) была минимум вдвое больше самой высокой частоты в преобразуемом сигнале fs ≥ 2fв.
Если частота входного сигнала превысит половину частоты дискретизации, то образуется эффект алиасинга (наложения частот), при котором на спектре появятся "ложные" частоты.
Из сказанного выше следует:
- При выборе преобразователя необходимо ориентироваться на верхнюю частоту сигнала, который требуется преобразовать. Частота дискретизации должна быть минимум вдвое выше максимальной частоты входного сигнала.
- Во избежание искажений преобразуемого сигнала на входе преобразователя необходимо размещать антиалиасинговый фильтр (фильтр нижних частот) с полосой пропускания вдвое меньше половины частоты дискретизации.
В пятиминутном видео ниже можно в более наглядном формате познакомиться с теоремами Котельникова и эффектом алиасинга. Крайне рекомендуется к просмотру!
Ошибка квантования
Преобразование сигнала это не только про измерение в дискретные моменты времени, но и про округление такого измерения до "целого" значения - уровня квантования. Шумом квантования (синий на рисунке ниже) называется разница между исходным (красный) и оцифрованным (зеленый) сигналом. Другими словами шум квантования - это ошибка, возникающая за счет самого процесса преобразования.
Можно сказать, что оцифрованный сигнал является суммой исходного сигнала и шума квантования. Среднеквадратичная ошибка квантования ограничивает соотношение сигнал / шум, зависит от величины младшего разряда h и оценивается, как
ДОМАШНЕЕ ЗАДАНИЕ
Выполнение домашней работы предполагается в Matlab, но по желанию может быть выполнена с помощью любого подходящего программного обеспечения: Mathematica, Python, Excel или другое.
Необходимо выполнить пару заданий (пример в конце), которые будут опираться на параметры, такие как разрядность, частота дискретизации, опорное напряжение и так далее. Значения этих параметров берутся у АЦП, которое ты выбрал в рамках первой домашней работы.
- Смоделировать дискретный квантованный сигнал с частотой в 5 раз меньше частоты дискретизации и амплитудой вдвое меньше опорного напряжения ➛
построить спектр сигнала, убедиться в наличии пика и его зеркального отражения справа ➛
небольшими интервалами увеличивать частоту входного сигнала до значения 2/5 частоты дискретизации, следить, как изменяется спектр, сделать выводы о поведении и добавить их в отчет с поясняющими картинками ➛
подмешать к исходному сигналу второй синус с частотой 1/4 частоты дискретизации, оценить полученную картину спектра ➛
в текущем смоделированном сигнале 2 частоты: 1/4 частоты дискретизации и 2/5. Вторую (2/5) необходимо постепенно повышать до частоты 3/4 частоты дискретизации, сделать выводы, добавить в отчет с поясняющими картинками. (Для более яркого эффекта позволяется понизить параметры преобразования). - Выбрать две песни: одну, относящуюся к жанру музыки, который тебе нравится, вторую - к жанру, который не нравится. Представить выбранные песни в виде массива данных ➛
выбрать несколько наиболее интересных участков песни, произвести над ними преобразование Фурье ➛
оценить полученный амплитудно частотный спектр, то есть сделать выводы о композициях в сравнении их спектров, оформить в отчет с поясняющими картинками.
Выполнение тобой работы контролируется с моей стороны получением от тебя отчета о проделанной работе, в котором помимо указанного выше (подчеркнуто) должен содержать в конце итоговый программный код на выбранном языке.
Отчет прикреплять в ОРИОКС.
Далее идет пример кода для Matlab который строит сигнал из двух синусов и переносит его в частотную область. Да, это картинка - ручками поработать надо для закрепления. На втором фото результат выполнения приведенного кода.
В заключении немного слов о работе БПФ (Быстрое Преобразование Фурье, оно же FFT - Fast Fourier Transform). Функция fft(X, N) принимает два параметра: X - сигнал во временной области, N - количество точек, которое будет преобразовано, такое же будет выдано как результат преобразования. Преобразование Фурье это затратная вычислительная процедура. Была обнаружена хитрость, благодаря которой количество выполняемых умножений получилось значительно сократить. Подход использующий эту особенность называется быстрое преобразование Фурье. Эффект достигается только если количество входных данных равняется 2 в степени n. Например, поэтому tend в приведенном коде равняется 1024 - это 2 в 10 степени.
Чем больше точек получает БПФ, тем выше разрешающая способность по частоте. Полученный в результате применения fft(X, N) спектр, состоит из N значений, которые делят весь диапазон частот от нуля до fs (частоты дискретизации) на N одинаковых интервалов. Это значит, что явно можно отличить частоты одну от другой если они отличаются на fs/N герц.
Так как после частоты Найквиста (половина частоты дискретизации) начинается отраженная версия спектра, которая не содержит новой информации, то интерес составляет только левая половина картинки.
Разберем спектр из примера выше. Частота дискретизации 1000 Гц, размер БПФ 1024, значит разрешающая способность БПФ 1000/1024 = 0,977 герц. Получаем частоту первого пика (103 – 1) * 0,977 = 99,7 Гц, что с небольшой погрешностью соответствует действительности (– 1 нужно так как функция plot(ft) по-умолчанию строит начиная с 1, а не с 0, как это нужно для БПФ). Почему так получилось? В процессе выполнения домашней работы попробуй ответить на этот вопрос.
Второй пик (147 – 1) * 0,977 = 142,6 Гц, что так и соответствует заданному f1 = fs/7 ≈ 142,8;
Основные источники информации
- Хорошая книга, особенно в начале, кажется все дается доступно и понятно. Материал дается достаточно кратко. Книга писалась наспех перед смертью автора, из-за этого в ней остались легкие недочеты и опечатки, их немного, но будь к этому готов [В.Б. Топильский. Схемотехника аналого-цифровых преобразователей - параграф 1.2 и его подпункты]
- Большая часть материала дублируется прошлым источником, что неудивительно, так как Топильский писал книгу на основе лекций написанных с Недопекиным. Однако, в этом источнике есть оригинальный материал. Стиль написания местами хуже, но вполне понятный, трудностей возникнуть не должно [К.К. Недопекин. Сборник лекций по ПИ - лекции 1 и 2]
Дополнительные источники информации
На лекции упоминалась замечательная книга, которая невероятно круто поможет с первыми шагами в цифровую обработку сигналов, расскажет что такое преобразование Фурье, как оно работает, почему оно работает и как это применяется на практике: "Обработка сигналов. Первое знакомство" от японца Юкио Сато. Эта книга поможет лучше понять материал лекций и подготовит тебя к будущему курсу Цифровой обработки сигналов. Ознакомиться с книгой можно в облаке, а если решишь купить, то можно это сделать, например, тут.