Ім'я файлу: !!!!!!!!!!!!!!!!Фільтр Віннера презентация + матлаб.doc
Розширення: doc
Розмір: 481кб.
Дата: 17.07.2023
скачати


Лекция 2



Адаптивная обработка

сигналов

2012 / 13- й учебный год



Оптимальный

фильтр Винера

доц. Щетинин Ю.И.



Новосибирский государственный технический университет

Кафедра систем сбора и обработки данных

Факультет автоматики и вычислительной техники

Кафедра систем сбора и обработки данных



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

Задача впервые была решена независимо двумя учеными:

  1. Советским математиком А. Колмогоровым, опубликовавшем решение в 1941 г. в статье «Интерполяция и экстраполяция стационарных случайных последовательностей», ж. Известия Академии Наук СССР, серия «Математика», № 5,1941 г.

  2. Американским ученым – математиком Н. Винером, опубликовавшим результат в 1949 г. в статье «The Extrapolation, Interpolation, and Smoothing of Stationary Time Series with Engineering Applications», J. Wiley, New York, USA, 1949. Но сам результат был получен ранее в 1942 г. в отчете «MIT Radiation Laboratory Report».

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

Общий вид фильтра Винера показан ниже на рис.




Опорный вход

n[k]




Задача состоит в фильтрации сигнала y(k), искаженного аддитивным шумом n1(k). На фильтр поступают два сигнала: xk - (шум, помеха) и yk- (сумма полезного сигнала и шума). При этом сумма yk содержит две составляющие – полезный сигнал s(k), который не коррелирован с xkи шумовую составляющую n1(k), коррелированную (статистически взаимосвязанную) с xk. Фильтр Винера должен иметь такую системную функцию (частотную характеристику), которая обеспечивает на выходе оценку коррелированной части сигнала (шума) yk. Эта оценка вычитается из yk и выход (ошибка) фильтра ek– это наилучшая оценка полезного сигнала. Т.о., фильтр Винера обеспечивает оптимальную оценку полезного сигнала, смешанного с аддитивным шумом, по критерию минимума среднеквадратической ошибки min M{e2(k)}. Меньшее значение среднеквадратичной ошибки, чем в фильтре Винера, в любом линейном фильтре получить нельзя.

e(k) = y(k)-n(k) (вихід)

Сигнал +шум

y(k)=s(k)+n1(k)



Решение задачи фильтра Винера во временной области

Базовые предположения задачи состоят в том, что фильтр является линейным и последовательности (сигналы) s(k), n1(k), x(k) являются случайными стационарными в широком смысле сигналами с нулевым средним значением

Предполагаем, что фильтр является КИХ – фильтром с Nкоэффициентами, его импульсная характеристика . Это означает, что выход фильтра n(k) в момент k зависит от входа XkT = [x(k-1), x(k-2]),…,x(k-N+1) ] в соответствии с выражением дискретной свертки

. (1)

Тогда значение выходной ошибки фильтра можно записать в виде

. (2) В этом выражении

-вектор входного сигнала фильтра, - вектор коэффициентов импульсной характеристики фильтра h(k),

.



Лінійний

оптимальний

фільтр

ШумXk = x(k)

Зв’язок

Σ





Квадрат ошибки фильтра

. (3)

Выразим теперь среднеквадратическую ошибку (СКО) фильтра, усредняя левую и правую часть выражения для ошибки, т.е. взяв математическое ожидание (среднее значение) от выражения квадрата ошибки

. (4)

Обозначения - средний квадрат (дисперсия) сигнала y[k], - вектор взаимной корреляции значений сигналов yk и Xk фильтра, (это вектор с N элементами)

- автокорреляционная функция сигнала (шума) X (корреляционная матрица размером Nx N).

В развернутой записи (более подробно и понятно):

- вектор – строка из Nзначений шума xk .

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










Фильтр Винера первого порядка

Для пояснения рассмотренной выше не совсем элементарной задачи рассмотрим простейший фильтр с уравнением выход – входn(k)=hx(k), h – это единственный коэффициент фильтра.


Выражение ошибки фильтра e(k)=y(k )- hx(k). Найдем наилучшее значение коэффициента фильтра h по минимуму среднеквадратичной ошибки фильтра

. (5)

Возьмем математическое ожидание от значения ошибки

.

Здесь - среднеквадратичная ошибка (СКО, MSE) фильтра,

- мощность зашумленного сигнала,

- взаимная корреляция между y(k) и x(k),

- автокорреляционная функция входного сигнала фильтра x(k),


h

x(k)

n(k)

y(k)

e(k)



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

например,

,

, .

В выражении ошибки значения - это константы, поэтому J –квадратичная функция от h. Её график
Дифференцируя J(h) , получаем



Отсюда оптимальное значение коэффициента фильтра .

Пример. Пусть квадратичная функция ошибки фильтра Винера имеет вид . Определим оптимальный фильтр, дифференцируя J и приравнивая производную нулю . Отсюда hopt = 1 и после подстановки в J(H) получим .



hopt









Такой результат следует из условия задачи, поскольку сигнал x(k)– некоррелированный, т.е. M{x(k)x(k-1)}=0, и имеет единичную дисперсию (элементы диагонали матрицы). Желаемый сигнал с учетом передаточной функции системы можно найти через входной сигнал и разностное уравнение системы в виде

. (7)

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

. (8)

При дальнейшем преобразовании этого выражения учтем, что и что сам сигнал – некоррелированный, т.е. , а также то обстоятельство, что сигналы x(k) и b(k) по условию – некоррелированные, т.е. . Поэтому в результате преобразований получим

. (9)

Аналогичным образом получаем

. (10)

Подставляя выражения (6), (9) и (10) в уравнение Винера – Хопфа





получаем

.

Если сравнить с условием задачи, то мы получили те же коэффициенты адаптивного фильтра, что и у исходной системы. Значение минимальной СКО приближения системы (идентификации фильтром Винера) в этом случае оказывается равным

.

Заметим ещё раз, что для вычисления оптимального фильтра нам в этом случае неоходимо вычислять (измерять) автокорреляционную функцию входного сигнала Rxx и взаимный корреляционный вектор входного и желаемого сигналов Pxd. В примере известная структура исходной системы позволила выполнить эти вычисления. Иллюстрация результата





Вычислительная сложность фильтра Винера

Оценим вычислительную сложность фильтра Винера. Вычисление оценки автокорреляционной функции по формуле требует N операций умножения-сложения (ОУС, англ. MACs). Здесь N– число отсчетов (длина) сигнала.

Аналогично вычисление оценки взаимной корреляционной функции по выражению требует также N операций умножения-сложения. Для обращения матрицы R необходимо N3 MACs операций/ Наконец, умножение матриц по выражению требует N2 операций MACs. Таким образом, всего вычисление значения Hoptна одном шаге kтребует операций MACs. Например, для фильтра с порядком N = 100 получается около 1 млн. операций MACs. Главное значение здесь имеет N3.

Для приближенной оценки вычислительной сложности алгоритма фильтра Винера используется выражение O(N3) операций MACs. Это означает, что число требуемых операций (вычислительная сложность) имеет порядок N3. Для рассматриваемого примера N3 = 106.

Напомним, что частота отсчетов, т.е. число отсчетов в секунду, зависит от приложения.

Для задач биомедицины достаточна частота отсчетов 500 Гц, для передачи речи по цифровому каналу – 8 кГц, для высококачественной аудиообработки – 48 кГц, для радарной техники – порядка 1 Мгц.



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

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

Модель фильтра Винера в MATLAB

Рассмотрим задачу моделирования фильтра Винера в среде MATLAB на базе рассмотренной выше схемы (см. рис. в начале лекции) и алгоритма фильтра Винера.

Полезный сигнал в этом случае представляет собой сумму двух дискретных гармоник s=sin(2*pi*0.01*k)+sin(2*pi*0.005*k). Аддитивный шум для этого входа (n1 на вышеприведенной схеме) формируется как выход КИХ - фильтра с передаточной функцией , на вход которого поступает белый шум, генерируемый функцией randn(1,N).



На другой вход фильтра (шум x[k]на схеме) подается шум, формируемый из белого шума КИХ - фильтром 3-го порядка с передаточной функцией .

Моделирование фильтра Винера в MATLAB проводится специальной функцией

B = FIRWIENER(N,X,Y), которая вычисляет системную функцию КИХ - фильтра Винера порядка N для сигнала X на опорном входе, задаваемого вектором X и сигнала на основном входе, определяемого вектором Y.



Скрипт – файл

k=(1:300)';

% формирование полезного сигнала

s=sin(2*pi*0.01*k)+sin(2*pi*0.005*k);

% Получение некоррелированного шума

n1=0.8*randn(300,1);

f1=[1, 0.5];% Фильтр для шума

n=filter(1,f1,n1); % Коррелированный шум на основном входе

d=s+n; % сумма сигнал и шума

% фильтр для шума на основном входе

f2=[1, -0.8, 0.4, -0.2];

x=filter(f2,1,n1); % шум на опорном входе

L=2; % порядок фильтра

fw=firwiener(L-1,x, d);% синтез (расчет) фильтра Винера

yw=filter(fw,1,x);% винеровская фильтрация шума

ew=d-yw; % Винеровская оценка полезного сигнала

%построение графиков

figure

plot(k(1:end),[ew(1:end),s(1:end),d(1:end)]);

legend('фильтр Винера','Полезный сигнал', 'Cигнал с шумом')

title('L = 2')

xlabel('Индекс времени k')

ylabel('Амплитуда')
Моделирование проведено для трех значений порядка фильтра L = 2, L = 5. При увеличении порядка фильтра как L3 возрастает его вычислительная сложность.










Ниже приведен ещё один пример моделирования фильтра Винера для полезного сигнала в виде прямоугольного импульсного сигнала. Модели шумов – прежние.

Скрипт – файл

k=(1:500)';

% формирование полезного сигнала

s2=square(.06*k,50);

% Получение некоррелированного шума

n1=0.6*randn(500,1);

f1=[1, 0.7];% Фильтр для шума

n=filter(1,f1,n1); % Коррелированный шум на основном входе

d=s2+n; % сумма сигнал и шума

% фильтр для шума на основном входе

f2=[1, -0.8, 0.4, -0.2];

x=filter(f2,1,n1); % сигнал на опорном входе

L=3; % порядок фильтра

fw=firwiener(L-1,x, d);% расчет фильтра Винера

yw=filter(fw,1,x);% винеровская фильтрация шума

ew=d-yw; % Винеровская оценка полезного сигнала

%построение графиков

figure

plot(k(300:end),[ew(300:end),s2(300:end),d(300:end)]);

legend('фильтр Винера','Полезный сигнал', 'Cигнал с шумом')

xlabel('Индекс времени k'), ylabel('Амплитуда')




Порядок фильтра = 3





Порядок фильтра = 8



скачати

© Усі права захищені
написати до нас