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

Основы цифровой обработки сигналов: Виды шумов, отношение сигнал/шум, Статистическая обработка сигнала, Корреляционная функция

16.12.2021

Рассмотрены 3 темы по основам цифровой обработки сигналов: виды шумов, отношение сигнал/шум, статистическая обработка сигнала, корреляционная функция.

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

 

Виды шумов, отношение сигнал/шум.

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

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

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

Также в качестве меры разброса употребляется среднеквадратичное отклонение, также именуемое стандартным отклонением. Значение его - квадратный корень из дисперсии.

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

В качестве меры скорости изменения случайного процесса может использоваться авто-корреляционная функция или просто корреляционная функция. Она описывает зависимость взаимосвязи сигнала с его сдвинутой во времени копией от величины временного сдвига.

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

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

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

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

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

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

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

А мы пока что рассмотрим два синусоидальных сигнала разной частоты. В частотной области эти сигналы будут представлены двумя линиями. Положение линии на оси Х говорит о величине частоты синусоиды, а длина линии – о её мощности или амплитуде.

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

Слуйчайный процесс, у которого область частот заполнена равномерно, называется белым шумом.

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

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

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

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

  • У него равномерная спектральная плотность мощности, поэтому он белый.
  • Нормальное распределение, поэтому он Гауссовский.
  • С полезным сигналом он суммируется, поэтому он аддитивный.
  • И  статистически он от сигнала независим.

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

Именно поэтому данная модель наиболее распространена в системах ЦОС и системах связи, и используется как модель канала передачи данных. Шум в подобных системах, конечно же, является нежелательным явлением.

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

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

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

Давайте рассмотрим пример накопления сигнала с шумом в MATLAB.

Мы генерируем синусоиду, и добавляем к ней аддитивный белый Гауссовский шум при помощи функции awgn. Функция эта содержится в расширении MATLAB Communications Toolbox. На её вход мы подаём исходный незашумлённый сигнал, и параметр отношения сигнал/шум в децибелах. Строим на графике сигнал с шумом и без шума.

Затем мы выделим только шумовую компоненту, вычитаем из смеcи сигнал/шум исходный сигнал. Визуализируем его отсчёты командой stem. Функция периодограм позволит нам оценить спектральную плотность мощности нашего шума. Мы видим, то что распределение действительно равномерное, это белый шум.

Гистрограмма показывает нам, что распределение значений вектора noise близко к нормальному. 

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

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

В завершении давайте поговорим о ещё двух хар-ках системы, которые непосредственно связаны с шумом.

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

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

В следующей публикации мы подробнее поговорим о статистических параметрах сигнала.

 

 

 

Наверх

 

Статистическая обработка сигнала.

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

У любого сигнала, непрерывного и дискретного, можно определить среднее значение. Оно может вычисляться по-разному.

Если мы ищем среднее арифметическое, то для этого мы складываем все отсчёты сигнала и делим сумму на количество отсчётов.

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

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

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

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

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

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

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

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

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

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

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

 

Мы вновь проанализируем сигнал ЭКГ, но в этот раз мы попробуем выделить из него так называемый Q-R-S комплекс, то есть определить положение Q-, R-, S-зубцов в наших данных. Но наши данные зашумлены и постоянная составляющая у сигнала изменяется во времени, что может помешать нам выделить искомое зубцы. Поэтому нам необходимо отфильтровать наши данные, избавиться от постоянной составляющей и выделить локальные экстремумы. Для фильтрации и удаления тренда мы можем воспользоваться одной и той же функцией movmean из состава Signal Processing Toolbox. Она у нас выполняет операцию скользящего среднего. Если мы возьмём маленькое кошка из 10 отсчётов, то мы сгладим форму нашего сигнала. А если мы возьмём большое окно из 300 отсчётов, то мы выделим постоянную составляющую. Отразим её на том же графике.

Для выделения пиков наших Q-, R-, S-зубцов воспользуемся встроенной функцией findpeaks. Выделение R-, S-зубцов происходит достаточно просто, мы просто берём выбросы величины, которые больше чем 0,5 или меньше чем –0,5 и отображаем их на том же графике.

А вот для выделения Q-зубцов нам придется воспользоваться логической индексацией. Мы знаем то, что Q-выброс лежит в пределах от –0,2 мВ до –0,5 мВ, поэтому мы выделяем только те минимальные, скажем так экстремумы, минимальные значение сигнала, которые лежат в этих пределах. Также можно построить Q-зубцы на том же самом графике.

Как видите воспользовавшись двумя встроенными функциями мы успешно выделили Q-R-S комплекс из наших зашумленных и нестабильных по времени данных ЭКГ. В следующей публикации мы поговорим о корреляционной функции и корреляционной обработке.

 

 

Наверх

 

Корреляционная функция.

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

Корреляция – это мера зависимости двух величин. Для численной оценки используется коэффициент корреляции. Он не может быть больше единицы, и меньше минус единицы. Когда коэффициент корреляции +1, говорят, что две величины идеально коррелированы друг с другом, а значит что при изменении первой величины на какой-то значение вторая изменяется на такое-же значение. Если коэффициент –1 , то росту первой величины соответствует уменьшение второй величины на такое же значение.

Проиллюстрируем зависимость коэффициента корреляции от временного сдвига двух идентичных сигналов.

В начальный момент времени сигналы выровнены, и коэффициент корреляции равен +1. При равном приращении первая и вторая функции изменяются одинаково. Теперь сдвинем вторую зависимость по времени.

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

Зависимость коэффициента корреляции от временного сдвига между сигналами – по сути есть корреляционная функция. Но давайте рассмотрим формулу.

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

Рассмотрим формулу. Я тут привёл формулу для непрерывных функций, но если мы берём дискретные величины, то операция интегрирования будет заменена на простое суммирование. Здесь есть две функции. Первая функция f (не обращайте пока что внимания на знак звёздочки, это комплексное сопряжение, но для действительных сигналов оно не важно), так вот, первая функция f умножается на вторую функцию g, при этом вторая функция сдвигается во времени на величину τ. От величины сдвига τ мы и строим зависимость коэффициента корреляции.

Рассмотрим графическое представление. Первую функцию f мы фиксируем на временной оси, а вторая g по этой оси будет перемещаться. Она перемещается из значений отрицательного сдвига между функциями в область положительных значений сдвига. Величина корреляции соответствует площади перекрытия двух графиков, и максимума она достигает, когда две фигуры максимально накладываются друг на друга. Стоит отметить, что если мы поменяем функции местами, то есть зафиксируем g и будем скользить функцией f, то вид корреляционной функции изменится на зеркальный. В случае автокорреляционной функции форма зависимости всегда симметрична, и имеет максимум в точке, равной нулевому сдвигу сигнала относительно самого себя.

Давайте посмотрим на несколько примеров подсчёта корреляционной функции для дискретных сигналов в MATLAB.

Автокорреляционная функция прямоугольного импульса имеет форму треугольника.

Взаимнокорреляционная функция пилообразного импульса и прямоугольного импульса несимметрична.

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

А автокорреляционная функция бесконечной синусоиды – это такая же синусоида, с той же частотой.

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

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

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

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

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

Теперь давайте добавим шум к исходному сигналу и к фрагментам.

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

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

Теги

      16.12.2021

      Комментарии

      • sincos
        sincos+161.14
        16.02.2023 15:54

        Добрый день, не отображаются картинки к Вашей статье.