Цифрова филтрация (част втора) Цифрови филтри



Дата13.01.2018
Размер95.15 Kb.
#44896
ЦИФРОВА ФИЛТРАЦИЯ

(част втора)



  1. Цифрови филтри

    1. Общи понятия

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

2. Синтез на рекурсивни филтри по аналогов прототип

При синтеза на дискретен филтър по аналогов прототип е необходимо да се осъществи преход от s-областта в z-областта. Полученият дискретен филтър не може напълно да е идентичен на аналоговия по своите характеристики, още повече, че честотните му характеристики са периодични. Тъй като теорията за апроксимация на идеалната АЧХ с аналогови средства е добре развита, то методите на синтез на дискретни филтри по аналогов прототип са получили широко разпространение.



2.1. Метод на билинейното z-преобразуване (bilinear transformation).

Този метод позволява да се синтезира рекурсивен дискретен филтър по честотната характеристика на аналоговия прототип. За да може честотните характеристики на аналоговия и дискретен филтри да са свързани с проста зависимост, необходимата замяна на променливите трябва да преобразува имагинерната ос на s-областта в единична окръжност на z-областта. В този случай честотните характеристики на аналоговия и дискретен филтри ще бъдат свързани само с трансформация по честотната ос и никакви изкривявания по амплитуда. Билинейното z-преобразуване се извършва по формулата:



. (1)

Честотните характеристики на аналоговия и дискретния филтри са свързани един с друг само чрез трансформация на честотната ос:



. (2)

За ниски честоти, когато , тангенсът е приблизително равен на аргумента:



, ако .

Затова в областта на ниските честоти честотните характеристики на аналоговия и дискретния филтри почти съвпадат. С увеличаване стойностите на тангенса честотната характеристика на дискретния филтър все по-силно се свива по хоризонталата. За честотата на Найкуист се достига стойността на аналоговия филтър при безкрайна честота – фиг.2.





Фиг.2. Трансформация на честотната ос при билинейното z-преобразуване

За получаването на дискретен филтър с зададена честота на среза е необходимо да се коригира честота на среза на аналоговия прототип , за компенсиране изкривяването по честотната ос:

Функцията bilinear е предназначена за синтеза на дискретни филтри по произволен аналогов прототип. Тя може да преобразува зададен по различен начин аналогов прототип.



  • ;

  • .

Тук b и a са коефициентите на полиномите на числителя и знаменателя на предавателната функция на аналоговия прототип. Аналогични идентификатори с буква z в края обозначават съответстващите параметри на синтезираната дискретна система. Параметърът задава честотата на дискретизация в херци. Последният входен параметър не е задължителен. При неговото отсъствие билинейното z-преобразуване се изпълнява по формула (1), а трансформацията на честотната ос е по формула (2). При задаване на параметъра , той определя честотата в херци, за която комплексния коефициент на предаване на аналоговата и дискретната система съвпадат.

При изчисляване на дискретните филтри може и директно да се използват същите функции както и при аналоговите, само че без параметъра ‘s’:



  • - филтър на Butterworth;

  • - филтър на Chebyshev type I;

  • - филтър на Chebyshev type II;

  • - елиптичен филтър.

Параметрите на всички функции са същите, както при аналоговите филтри. Честотата на среза се задава нормирана към честотата на Найкуист.
2.2.Функция за определяне реда на филтъра

Разгледаните по-горе функции за изчисляване на дискретни филтри изискват задаването като входни параметри реда на филтъра n и честотата на среза Wn. При това понятието честота на среза за филтрите от различен тип се определя по различен начин. Изходните данни при разработката на филтрите са други: честотни граници в областта на пропускане и задържане, неравномерност на АЧХ в областта на пропускане и минимално необходимо затихване в интервала на задържане. За избора на необходимия порядък на дискретния филтър се използват еднотипни функции на тези за аналоговите филтри (само че без символа ‘s’):



  • [n, Wn] = buttord(Wp, Ws, Rp, Rs)

  • [n, Wn] = cheb1ord(Wp, Ws, Rp, Rs)

  • [n, Wn] = cheb2ord(Wp, Ws, Rp, Rs)

  • [n, Wn] = ellipord(Wp, Ws, Rp, Rs)

Изходните параметри са минимално необходимия ред на филтъра - n и честотата на среза Wn (нормирана към честотата на Найкуист).

Проектирайте цифров лентов филтър на Chebyshev type I със следните параметри:



Wp = [0.25 0.4] – честотни граници в областта на пропускане, нормирани към честотата на Найкуист;

Ws = [0.16 0.5] - честотни граници в областта на задържане;

Rp = 3 dB - неравномерност на АЧХ в областта на пропускане, в dB;

Rs = 30 dB - минимално необходимо затихване в интервала на задържане.


3. Функции за пряк синтез на цифрови филтри

3.1. Синтез на рекурсивни филтри - функция yulewalk

Функцията е предназначена за синтез на рекурсивни филтри по зададена АЧХ апроксимирана с линейно-отсечкова апроксимация. Тя има следния синтаксис:



[b, a] = yulewalk(n, f, m)

където n – реда на цифровия филтър. Параметрите f и m трябва да са вектори с еднаква дължина. Те определят желаната АЧХ на синтезирания филтър. Векторът f съдържа стойностите на честотата, нормирани към честотата на Найкуист, а векторът m - съответстващите на тези честоти стойности на АЧХ. В интервала между зададените точки АЧХ се интерполира по линеен закон. Честотите във вектора f трябва да образуват не намаляваща последователност, като за началната и крайна стойност трябва да изпълняват равенствата f(1)=0 и f(end)=1 .

Проектирайте рекурсивен лентов филтър от 5 и 10 ред с интервал на пропускане от 0.2 до 0.6 от честотата на Найкуист. Сравнете получените характеристики. Използвайте програмата func_yulewalk.m.
3.2. Синтез на нерекурсивни филтри – функции fir1 и fir2

Функцията fir1 позволява да се изчисляват нерекурсивни филтри с линейна ФЧХ, в това число многоинтервални (multiband). Основава се на метода на обратното преобразуване на Фурие с използване на прозорци. Синтаксисът на посочената функция е:



b = fir1(n, Wn , ‘ftype’, window, ‘normalization’)

където n – редът на филтъра. Параметрите Wn и ftype съвместно определят типа на синтезирания филтър и честотите на среза. Честотите на среза се задават нормирани към честотата на Найкуист. Векторът window е с размер n+1 и задава стойностите на коефициентите на прозореца. Ако типа на прозореца не бъде указан по подразбиране се приема прозореца на Hamming. Параметърът normalization’ задава нормализацията (мащабирането) и има следните стойности:



  • scale – прилага се нормализация (стойност по подразбиране), така че в средата на интервала на пропускане стойността на АЧХ да е равна на 0 dB.

  • noscale – не се прилага нормализация.

Като изходен резултат от работата на функцията е векторът b , съдържащ коефициентите на нерекурсивния филтър. Изчисленият филтър има линейна ФЧХ и внася групова задръжка, независимо от честотата, равна на отчета.

Филтърът се изчислява в следната последователност:



  • Обратно преобразувание на Фурие от зададената идеална АЧХ. Като резултат се получават безкрайните стойности на импулсната характеристика;

  • Импулсната характеристика се ограничава симетрично до n+1 стойности. За намаляване ефекта на ограничаване на импулсната характеристика се използва прозорец;

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

Функцията fir2 , също както и fir1 , е предназначена за синтез на нерекурсивни филтри с линейна ФЧХ по метода на обратното преобразуване на Фурие с използване на прозорец. Разликата е това, че при синтеза може да се задава произволна АЧХ. За апроксимация на АЧХ се използва линейно-отсечкова апроксимация.

Синтезирайте нерекурсивен лентов филтър със следните параметри: n=32, Wp=[0.3 0.7] и анализирайте получените резултати. Използвайте програмата func_fir1_BP.m.

Синтезирайте нерекурсивен високочестотен филтър със следните параметри: n=16, Wp=0.4 и анализирайте получените резултати. Използвайте програмата func_fir1_HP.m.
4. Графическа среда за наблюдение и обработка на сигнали - SPTool (Signal Processing Tool)

Програмата SPTool предоставя графична среда за наблюдение на сигнали и техните спектри, изчисляване и анализ на филтри, а също и филтрация на сигнали. Тя се стартира с:


>> sptool

от командния прозорец на MATLAB.

Появява се екран с три полета: сигнали (Signals), филтри (Filters) и спектри (Spectra). Основните действия, които могат да се извършват с помощта на SPTool са:


  • Въвеждане на сигнали;

  • Визуализация на сигнали;

  • Спектрален анализ на сигнали;

  • Изчисляване на филтри;

  • Филтрация на сигнали.


4.1. Въвеждане на сигнали

За въвеждане на сигнали от меню File се избира командата Import. Появява се прозорец Import to SPTool. Чрез полето Source се избира място, където се съхранява сигнала за въвеждане. В списъка Workspace contents са имената на променливите намиращи се в този момент в работното пространство на MATLAB. Ако като източник е избран MAT-файл, този списък се нарича File Contents и показва променливите съхранявани в избрания файл. Чрез полето Import As се определя вида на импортираната информация: Signal, Filter или Spectrum. От списъка на променливите се избира сигнала за въвеждане, а самото въвеждане се осъществява чрез натискане на бутона ‘’. В полето Sampling Frequency се записва честотата на дискретизация, която по подразбиране е 1. В полето Name може да се запише ново име на въведената променлива. Въвеждането се потвърждава с натискане на бутона OK.


4.2. Визуализация на сигнали

За преглеждане графика на сигнал, той се избира от списъка Signals и се натиска бутона View. Появява се прозорец Signal Browser с две графики: долната показва панорамата на целия сигнал и горната – силно увеличена избраната част от сигнала.

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

4.3. Спектрален анализ на сигнали

За изобразяване спектъра на сигнала е необходимо той да бъде избран от списъка на сигналите и да се натисне бутона Create. Появява се прозорец Spectrum Viewer, в лявата част на който се избира метода за спектрален анализ. В прозореца, на който първоначално е записано Inherit from, може да се копират настройките на анализатора на спектъра от друго изчисление, намиращо се в списъка Spectra.

След направената настройка на параметрите се натиска бутона Apply, при което в прозореца се изобразява спектъра на сигнала.

4.4. Изчисляване на филтри

За изчисляване на нов дискретен филтър се избира бутона New , разположен под списъка Filters в главния прозорец на SPTool. Може да се променят параметрите на преди това изчислен филтър чрез избор на бутона Edit. И в двата случая се появява прозорец Filter Designer.

От списъка Algorithm се избира метода на изчисление, а от областта Specifications се задават параметрите на синтезирания филтър. След натискане на бутона Apply в прозореца се извежда АЧФ на изчисления филтър, а в раздела Measurements са показани неговите параметри.


4.5. Преглед на характеристиките на филтрите

За целта в полето Filters се избира бутона View. Появява се прозореца Filter Viewer. В лявата част на прозореца в полето Plots е разположена група от флагове, указващи кои графики на избрания филтър да се изчертаят.



4.6. Филтрация на сигнали

За пропускане на сигнал през синтезиран вече филтър е необходимо да се избере сигнал и филтър от списъците Signals и Filters и се избере действието Apply. Появява се прозорец Apply Filter с единствено достъпно поле Output Signal, в което се записва името на файла с резултата. В списъка Algorihm може да се избере функция на MATLAB, с която да се извърши филтрацията – filter, filtfilt или fftfilt. В прозореца Signal Browser се извежда графиката на филтрирания сигнал, а в полето Signals се включва името на филтрирания сигнал. В последствие върху него също може да се извърши спектрален анализ, по разгледания вече начин.



За едновременното разглеждане графиките на повече от един сигнал е необходимо те да се изберат от списъка Signals на основния екран и след това да се избере опцията View.

4.7. Съхраняване на резултатите

Резултатите от работата с програмата SPTool може да се съхранят с командата Save Session или Save Session As от менюто File. Файловете са с разширение spt . Зареждането на съхранен сеанс става с командата Open Session.


Възможно е и експортирането на сигнали, филтри и спектри във вид на структура от данни. Дестинацията на експортираните данни може да бъде работното пространство на MATLAB – Export to Workspase или MAT-файл на диск – Export to Disk.

4.8. Задачи за изпълнение

  • В средата на MATLAB синтезирайте сигнал от две честоти и . Към него добавете бял шум и въведете сигнала в графичната среда SPTool . За целта използвайте програмата sig_2freq.m;

  • Определете спектъра на сигнала и го запишете в средата SPTool ;

  • Синтезирайте два НЧФ, единият по Butterworth , а другия елиптичен с параметри, които да подтиснат честотата и шума.

  • Пропуснете сигнала през синтезираните филтри и запишете изходните сигнали;

  • Определете спектрите на филтрираните сигнали;

  • Сравнете филтрираните сигнали с входния сигнал;

  • Сравнете спектрите на сигналите;

  • Запишете сесията на файл на диска.






Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница