Аналоговая и цифровая фильтрация в среде MATLAB


 

 

Рассмотрим процесс линейной фильтрации на примере линейного стационарного фильтра, который в непрерывном времени описывается дифференциальным уравнением второго порядка:

(1)

где х — заданный процесс, подаваемый на вход этого фильтра, орядок фильтра определяется порядком уравнения; у — процесс, получаемый на выходе фильтра; - частота собственных колебаний фильтра, относительный коэффициент затухания этого фильтра.

Передаточная функция фильтра, выраженная через комплексную частоту , имеет вид:

(2)

Для графического представления передаточной функции любого линейного фильтра в среде MATLAB удобно использовать процедуру freqs. В общем случае обращение к ней имеет вид:

h = freqs (b, a,w)

При этом процедура создает вектор h комплексных значений частотной характеристики по передаточной функции звена, заданной векторами коэффициентов ее числителя ) и знаменателя (а), а также по заданному вектору w частоты . Если вектор w не указан, процедура автоматически выбирает 200 отсчетов частоты, для которых вычисляется частотная характеристика.

Если не указана выходная величина, т.е. обращение имеет вид:

freqs (b,a,w)

процедура выводит в текущее графическое окно два графика, АЧХ и ФЧХ.

Рассмотрим пример.

Пусть для передаточной функции (2)

; ;

В приведенном фрагменте программы вычисляются значения коэффициентов числителя и знаменателя и выводятся графики АЧХ и ФЧХ:

%a_filtr

T0=1;dz=0.05;omO=2*pi/T0; A=1;

omO=2*pi/T0; A=1;

a1(1)=1;a1(2)=2*dz*omO;

a1(3)=om0^2;b(1)=A;

Freqs(b,a1)

Результат выполнения программы приведен на рис 1.

рис 1. АЧХ и ФЧХ фильтра второго порядка.

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

(2)

Функция h=freqs(b,a,w)вычисляет значения частотной характеристики аналогового фильтра по отсчетам частоты, выраженным в радианах в секунду, которые задаются в векторе w.

Функция [h,w]=freqs(b,a) автоматически выбирает 200 частотных отсчетов, для которых вычисляется частотная характеристика. Число отсчетов может быть задано параметром n. В этом случае используется функция[h,w]=freqs(b,a,n).

Выполним вычисление и вывод частотной характеристики с передаточной функцией

Программа расчета может быть построена следующим образом:

%a_filtr2

a=[1 0.4 1];

b=[0.2 0.3 1];

w=logspace(-1,1);

freqs(b,a,w)

Результаты вычислений приведены на рис 2.

рис 2.

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

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

,

а второй производной , отношение

 

При этом дискретным аналогом дифференциального уравнения (1) будет разностное уравнение:

 

Применяя к полученному уравнению Z-преобразование, получим:

, (4)

где:

(5)

Дискретная передаточная функция фильтра определяется из уравнения (4):

(6)

 

Таким образом цифровым аналогом колебательного звена является цифровой фильтр с коэффициентами числителя и знаменателя, рассчитанными по формулам (4) и (5).

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

Фильтрация сигнала в пакете MATLAB с помощь линейного фильтра, описываемого передаточной функцией вида:

(7)

 

осуществляется процедурой filter следующим образом:

y=filter (b,a,x)

где х – заданный вектор значений входного сигнала; у- вектор значений выходного сигнала фильтра после процедуры фильтрации; b-вектор коэффициентов числителя дискретной передаточной функции (7) линейного фильтра; а-вектор коэффициентов знаменателя передаточной функции.

Рассмотрим пример задачи фильтрации. Пусть имеется сигнал синусоидальной формы с периодом Т1=1 (с) и амплитудой А1=0.75. Сформируем этот сигнал в виде вектора с периодом Т1=1 и амплитудой А1=0.75. Вектор значений сигнала определен в дискретные моменты времени с шагом Ts=0.001:

 

 

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

График сигнала после измерения приобретет вид:

Рис 3.

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

В результате получим восстановленный процесс, рис 4. Для сравнения на рис 4 показан исходный сигнал. Созданный фильтр достаточно хорошо восстанавливает полезный сигнал.

 

Рис.4

 

Более точному восстановлению препятствуют 2 обстоятельства:

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

 

 

рис 5.

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

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

 

 



Дата добавления: 2020-10-14; просмотров: 542;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.014 сек.