• Регистрация
Marat
Marat +208.00
н/д

Основы цифровой обработки сигналов: Теорема Котельникова, АЦП и ЦАП, Шум как случайный процесс

12.12.2021

Рассмотрены 3 темы по основам цифровой обработки сигналов: Теорема Котельникова, АЦП и ЦАП, Шум как случайный процесс.

В данном посте освещены 3 темы по основам цифровой обработки сигналов:

 

Теорема Котельникова

В этой публикации мы поговорим об основном ограничении при дискретизации аналогового сигнала, описываемого теоремой Котельникова. Это ограничение тесно связано с понятием частоты периодического дискретного сигнала. Мы помним то, что чистота – это величина обратная периоду, и она может измеряться либо в секундах либо в отсчётах в зависимости от того, говорим о непрерывном сигнале или о дискретном сигнале. Частота может измеряться в радианах в единицу времени или циклах в единицу времени.

Важно отметить то, что цикл для непрерывного сигнала может быть равен 2・π радиан, а цикл для дискретного сигнала может быть равен 2・π・m радиан, где m – это целое число. Это приводит нас к понятию неоднозначности определения частоты дискретного сигнала. Не будем углубляться в формулы, давайте посмотрим на конкретном примере. 

Мы говорим о том, что для непрерывных сигналов 2 синусоиды с разными частотами не равны друг другу, но случай двух дискретных синусоид, если частота одной отличается от другой на m・2・π мы не сможем их различить. Я поясню это на простом примере. Представьте себе обыкновенные часы. Мы явно видим минутную стрелку и часовую стрелку, потому что это непрерывно изменяющиеся величины. Но, если мы будем фотографировать эти часы в моменты времени, когда минутная стрелка накладывается на часовую стрелку, мы не увидим часовой стрелки. Фактически происходит наложение одного дискретного сигнала на другой дискретный сигнал. Тоже самое происходит при дискретизации 2 аналоговых сигналов. 

Рассмотрим пример 2 синусоид. Одна синусоид изменяется медленно, другая синусоида изменяется быстро. Мы берём дискретные отсчеты этих синусоид в моменты времени 1, 2, 3, 4 и так далее, и мы можем наблюдать то, что форма 2 дискретных сигналов абсолютно одинакова. 

Произошел эффект алиасинга или наложение двух сигналов при дискретизации. Слово “алиасинг” происходит от английского слова alias или псевдоним. В данном случае фактически один сигнал маскируется другим сигналом. Запомним то, что алиасинг – это эффект неразличимости сигналов при их дискретизации, и, конечно же, нам его надо избегать.

Как вы уже поняли из представленных графиков, выбранной частоты дискретизации хватает для того, чтобы описать в дискретном виде медленно изменяющуюся синусоиду, но явно не хватает, чтобы описать быстро изменяющуюся. Мы приходим к определению основного ограничения при дискретизации сигналов. 

Теорема Котельникова гласит о том, что непрерывный сигнал с ограниченным спектром можно точно восстановить по его дискретным отсчётам, если они были взяты с частотой дискретизации, превышающего максимальную частоту сигнала минимум в два раза. В виде формулы это можно описать так:

В том случае, если это условие не выполняется, мы берём дискретные отсчеты слишком редко, мы не знаем, как меняется сигнал в промежутках между дискретами и конечно же теряем информацию. В том случае, если условие выполняется, между отдельными дискретными отсчётами сигнал меняется относительно медленно, и поэтому восстановление исходной формы аналогового сигнала возможно.

Давайте посмотрим на эффект алиасинга или наложения при невыполнении условий теоремы Котельникова в MATLAB. Создадим три синусоиды с частотами 250, 500 и 750 Гц. Частота дискретизации 2000 Гц.

В данном случае условия теоремы Котельникова выполняется для всех трёх синусоид. Давайте попробуем послушать, как они звучат. Мы услышали три нарастающих тона, и на графике также наблюдаем тремя цветами три различных сигнала. 

Ну что будет, если мы поменяем частоту дискретизации на значение 1000 Гц. Для первого сигнала 250 Гц оно выполняется, для второго сигнала оно выполняется вплотную, и для третьего сигнала оно не выполняется. Давайте теперь послушаем и посмотрим на эти сигналы. 

Мы услышали третий сигнал как будто его частота также 250 Гц, и на графике мы наблюдаем только два сигнала. В данном случае наш третий сигнал 750 Гц из-за несоблюдения условий теоремы Котельникова наложился на первый сигнал.

Для того, чтобы теорема Котельникова соблюдалась всегда, достаточно постоянно брать очень большое значение частоты дискретизации. Насколько это удачное решение? На самом деле не очень, потому что мы работаем с системами передачи данных, системами хранения данных, и, если мы медленно изменяющийся сигнал будем оцифровывать с огромной частотой дискретизации, то объемы данных, которые мы должны пропускать, обрабатывать и хранить будут сильно превышать требуемые, что конечно же будет требовать больших вычислительных ресурсов и памяти для хранения. Впрочем, принцип работы некоторых устройств как раз основан на выборе завышенных значений частоты дискретизации. Одно из них это сигма-дельта АЦП, аналого-цифровой преобразователь. О аналого-цифровых, цифро-аналоговых преобразователях наша следующая публикация.

 

Наверх

 

АЦП (аналого-цифровые преобразователи) и ЦАП (цифро-аналоговые преобразователи)

В этой публикации мы кратко поговорим об аналого-цифровых и цифро-аналоговых преобразователях.

Аналого-цифровой преобразователь или АЦП – это устройство, преобразующее входной аналоговый сигнал в дискретный цифровой код. Как вы уже поняли, АЦП осуществляет операции дискретизации и квантования. Напомним, при дискретизации отсчёты непрерывного сигнала берутся только в определённые моменты или дискреты времени, а при квантовании – значение сигнала в эти моменты времени округляется до одного из фиксированных уровней.

Квантованные уровни затем представляются в двоичном виде. Таким образом мы получаем цифровой сигнал из аналогового. 

Но как же устроен АЦП. Боюсь, что у нас не хватит времени подробно говорить об устройстве аналого-цифровых преобразователей с точки зрения схемотехники, но ключевые узлы и базовые принципы постараемся очертить. В большинстве АЦП есть устройство выборки и хранения, которые фиксируют и сохраняют значение напряжения на своём ходе в моменты замыкания ключа. Моменты замыкания ключа определяется задающим генератором. Именно его частота и определяет частоту дискретизации выходного сигнала. Сигнал на выходе устройства выборки и хранения затем округляется до одного из уровней квантования. 

Как же АЦП понимает с каким уровнем квантования проассоциировать значение сигнала. Рассмотрим простейший одноразрядный АЦП компаратор. Он принимает на свой ход два значения напряжения. В том случае, если напряжение на первом входе больше, чем на втором, он выдаёт логическую единицу, в противном случае – ноль. Допустим, мы зафиксировали значение на втором входе, это наш пороговый уровень, и, когда изменяющийся во времени сигнал на вервом входе больше этого уровня, устройство показывает единицу, когда меньше – ноль. Теперь представим, что компараторов несколько. Когда входной сигнал превышает определенный уровень, срабатывает соответствующий компарато. Выходы всех компараторов затем преобразуются схемой приоритетного кодера в двоичное представление, АЦП в которых в каждом из уровней квантования соответствует компаратор, называется АЦП прямого преобразования или флеш АЦП. Это один из типов преобразователей, но схем и типов АЦП так много, что для их описания потребуется отдельная публикация. 

Давайте лучше поговорим об основных характеристиках АЦП.

  1. АЦП отличается по частоте дискретизации. Она, как я уже упоминал, определяется задающим генератором. В зависимости от назначения частота дискретизации может измеряться в кГц, МГц и даже ГГц.
  2. Далее идет разрядность, те количество бит в коде, который мы представляем отсчеты сигнала. От количества бит зависит количество уровней квантования, оно определяется как 2 в степени кол-во бит. Если у нас 3 бита, то это 8 возможных уровней квантования, если у нас 8 бит – это 256 уровней. 
  3. Диапазон входного сигнала – это минимальное и максимальное значение напряжения на входе АЦП, при которых устройство работает корректно. Слишком маленькие сигналы АЦП может не различить и принять за нулевой уровень, слишком большие могут вызвать искажения, которые приведут к потере информации. Обычно АЦП оперируют единицами Вольт. 
  4. Отношение сигнал/шум SNR (об этом параметре мы подробнее поговорим в дальнейших публикациях). 
  5. Передаточная характеристика – это по определению зависимость числового эквивалента выходного кода от величины входного аналогового сигнала. Она имеет вид ступенчатой функции. Посмотрим на рисунок. 

Окрестность значения входного напряжения 0,5 Вольт будет приравнена к четвертому уровню квантования. То есть значение к примеру 0,52 или 0,47 также будут представлены кодом 100. 

Если мы рассматриваем АЦП с равномерным квантованием, то длина всех ступеней будет одинаковой, в некоторых АЦП специально используется неравномерное квантование, но их мы пока не рассматриваем. 

Неравномерность ступенек в АЦП с равномерным квантованием – это одна из характеристик неидеальности. Мы называем её нелинейностью. Нелинейность АЦП – это отличие реальной передаточной характеристике от линейной. 

Давайте вспомним, чем линейные системы отличаются от нелинейных. Линейная система передаёт входной сигнал на выход без изменения его формы, возможно усиление или аттенюация. Нелинейная система искажает формы выходного сигнала. В том случае, когда характеристика отличается от прямой линии, формы пиков сигнала изменяется, это называется нелинейным искажением, крайне нежелательные явления. Я говорил в предыдущих публикациях, что при искажениях мы безвозвратно теряем информацию. 

Для АЦП желательно, чтобы в рабочем диапазоне входных сигналов, формы передаточной характеристики аппроксимировалась прямой, но на практике небольшие отклонения всё же присутствуют. Поэтому для всех АЦП производители указывают параметры интегральной и дифференциальной нелинейности. 

Шум квантования. В АЦП происходит округление реального значения аналогового сигнала. Точность представления, то, насколько близко уровень квантования к реальным значениям зависит от разрядности АЦП (количество бит). Сигнал ошибки или разницы мы называем шумом кантования. Хотя шумом его можно считать только в рамках математической модели, так как он зависит от сигнала.

О математической модели шума мы поговорим подробнее в следующей публикации. Если мы квантуем непрерывный сигнал, то и шум квантования будет непрерывным. Если мы говорим о квантовании дискретного сигнала, то и сигнал ошибки также будет дискретным. Понятно, что для того, чтобы уменьшить шум квантования, надо повышать разрядность АЦП, но из-за этого увеличивается стоимость, энергопотребление, могут снизиться другие характеристики. Существует техника уменьшения влияния шума квантования без увеличения разрядности и с ними вы можете ознакомиться самостоятельно при желании. 

Джиттер – это фазовый шум, вызванный нестабильностью задающего генератора. Когда мы рассматриваем идеальный процесс дискретизации непрерывного сигнала, шаг временной сетки или период дискретизации неизменен, но в реальности импульс задающего генератора могут идти не через равные промежутки времени. Это приводит к тому, что мы передаём устройство выборки и хранения не совсем то значение, которое должны были передать в случае идеально ровной временной сетки. Эти отклонения от так называемых реальных значений также можно представить в виде дискретного шума.

Нестабильность генераторов обычно измеряется в пико- и фемто-секундах, поэтому на медленный АЦП она особо не влияет. Шум квантования вносит гораздо больший вклад. Но если сам сигнал изменяется очень быстро, если мы говорим о частотах дискретизации 100 МГц и 1 ГГц, то в этом случае уже джиттер может стать главной проблемой. 

В завершении давайте кратко поговорим о цифро-аналоговых преобразователях. Цифро-аналоговые преобразователи, как вы догадались, – это устройство преобразующее входной цифровой сигнал в аналоговый. Подробно устройства ЦАП мы не будем рассматривать, но основной принцип очертим.

На вход устройства поступает дискретные отсчеты в виде цифрового кода, который затем преобразуется в напряжение. Напряжение это соответствует набору уровней, как и случае с АЦП, многие ЦАП используют равномерные уровни при преобразовании. Уровень напряжение остается неизменным до момента прихода следующего отсчёта на вход. Таким образом формируется ступенчатый непрерывный сигнал, который в дальнейшем может быть сглажен фильтром нижних частот. Один из простейших видов ФАП – широтно-импульсный модулятор. Он часто используется для управления скоростью электромоторов. С особенностями широтно-импульсной модуляции также рекомендуется самостоятельно ознакомиться. На этом с темой ЦАП и ЦАП мы заканчиваем. Следующая публикация у нас будет посвящена случайным процессам.

Наверх

 

Шум как случайный процесс

В этой публикации мы поговорим о шуме и его описании в виде случайного процесса. Для начала давайте напомним себе, что же такое шум.

Шумом мы зачастую называем нежелательные явления, мешающие нам получать информацию из полезного сигнала. Шум присутствует повсюду, он случаен по своей природе, источником его может быть как физика самого процесса, который мы пытаемся зафиксировать, так и неидеальности приёмной аппаратуры или оцифровщиков. Мы различаем понятия шума и полезного сигнала в том числе и с точки зрения их математического описания. Давайте для начала посмотрим, как мы можем описать полезный сигнал.

Здесь в качестве математической модели мы используем детерминированный сигнал, заданный аналитической функцией. Значения сигнала можно определить в любой момент, подставив все необходимые аргументы в описывающую его аналитическую функцию. На примере представленной синусоиды: если мы зафиксируем параметры амплитуды, частоты и фазы, и будем передавать в формулу меняющееся значение времени – мы будем получать точное значение сигнала в эти моменты времени.

Детерминированный сигнал, описываемый аналитической функцией, как модель, очень удобен. Но сигналы реального мира подвержены воздействию множества физических факторов, их значения могут колебаться от наблюдения к наблюдению. Да и сами средства наблюдения также могут вносить погрешность измерений. Проще говоря, реальный сигнал будет отличаться от его аналитического описания на случайную величину ошибки.

Рассмотрим очередной бытовой пример: нагрев воды в чайнике на газовой горелке. Температура воды с течением времени монотонно нарастает, но мы наблюдаем некоторые флуктуации или отклонения. Это может быть обусловлено неравномерной подачей газа в горелке, ветром, термодинамикой, неидеальностью средства измерения, наконец.

Так или иначе, полученные отсчёты мы можем приблизить прямой линией. Прямая линия – это детерминированный сигнал, описываемый функцией. Мы можем узнать его значения между соседними отсчётами, то есть интерполировать данные эксперимента, или даже подсчитать величину сигнала за пределами периода наблюдения, то есть использовать его для прогнозирования значений температуры. Но реальные значения немного отличаются от линейной зависимости в большую или меньшую сторону. Записанный сигнал мы можем рассматривать как математическую модель типа «дет сигнал + случ. Процесс»!

Если с детерминированным описанием сигнала всё более-менее понятно, то с моделью случайного процесса нам только предстоит познакомиться.

 

Понятие случайного процесса связано с определением случайной функции.

Случайная функция – это функция, вид которой в результате проведения эксперимента мы не можем предугадать.

Случайный процесс – есть случайная функция времени.

Конкретный вид, результат протекания случайного процесса, называется реализацией.

Справа показан ансамбль реализаций одного случайного процесса. В отличие от сигналов, описываемых аналитической функцией, реализации случайного процесса практически всегда отличаются друг от друга. Но общие характеристики у них есть. Как же нам описать случайный процесс без необходимости хранения бесконечного числа его реализаций? Для описания мы используем теорию вероятностей и математическую статистику.

Поговорим о распределении случайной величины.

Простой пример дискретной случайной величины – число, выпадающее при броске игральных костей. Может выпасть значение от 1 до 6. Величина может принимать одно из шести дискретных значений, но совершенно случайно. Нетрудно подсчитать вероятность выпадения какого-либо числа – она равна одной шестой, или 16.67% для каждого из дискретных значений.

Теперь давайте рассмотрим пример непрерывной случайной величины. Рост человека. Он не изменяется дискретно, а может принимать любое значение в разумных пределах. Представим себе, что мы измеряем рост каждого посетителя, кто заходит в магазин. Измерив достаточное кол-во людей, мы можем построить вот такой график: по оси икс отложен рост в сантиметрах, по оси игрик – количество людей с таким ростом. На графике мы видим дискретные полоски, но эти полоски обозначают кол-во людей, чей рост попадает в определённые пределы, например, в пределы от 182 до 183 см. Взглянув на этот график, мы понимаем, что чаще всего в магазин заходили люди среднего роста, а посетителей ростом выше двух метров видели редко.

То, что было представлено на графике очень близко к понятию плотности распределения слуйчайной величины. Значение плотности распределения показывает вероятность того, что  случайная величина примет определённое значение, а частичная площадь под графиком – вероятность того, что значение попадёт в выбранный предел. Как вы понимаете, площадь под графиком на всем диапазоне значений равна единице, или ста процентам.

В случае с игральными костями мы рассматривали равномерное распределение, то есть одинаковую вероятность того, что слуйчайная величина примет то или иное значение.

В случае с ростом человека мы наблюдали нормальное распределение, так же именуемое распределением Гаусса. Нормальное распределение широко распространено в природе и используется как удобная модель случайного процесса. Популярность эта вытекает из центральной предельной теоремы. Она гласит, что сумма большого количества слабо зависимых случайных величин имеет распределение, близкое к нормальному.

На отклонение величины от среднего влияет множество факторов, подобно тому, как множество факторов влияет на рост человека, поэтому сумму их влияния можно описать СП с Гауссовским или нормальным распределением. Убедимся в этом в MATLAB.

Создадим пять векторов со случайными значениями. Функция rand позволяет нам генерировать вектора и матрицы со случайными значениями отсчётов, лежащих в пределах от нуля до единицы с равномерным распределением. В нашем случае мы создаём пять векторов по 10 тысяч точек. Построим их на графиках и убедимся, что во временной области они выглядят как реализации случайного процесса.

Далее построим гистрограммы всех векторов. Гистрограммы – это по сути графики распределения.

И мы наблюдаем, что у всех векторов распределение близко к равномерному. Мы этого и ожидали при использовании функции ранд.
А затем мы начинаем последовательно складывать вектора между собой и находить среднее арифметическое командой миан. Отразим на гистограмме распределение одного вектора, суммы двух, трёх, четырёх и пяти слагаемых.

Мы наблюдаем, что чем больше случайных величин мы берём в расчёт, тем ближе распределение суммы к нормальному, что подтверждает центральную предельную теорему.

Плотность распределения – это лишь одна из характеристик, которыми мы описываем случайные процессы. О других хар-ках, а также о видах шумов, и соотношении сигнал/шум мы расскажем в следующей публикации.

Теги

      12.12.2021

      Комментарии

      • AlMich
        AlMich+27.80
        15.12.2021 23:16

        В теореме Котельникова должно быть строгое неравенство f_s > 2 f_max