Úvod do číslicového zpracování signálů - UCZ
Cvičení 4
Pojem "FIR filtru" | Návrh pomocí funkce fir1 | Funkce fir2 | Filtrování EEG signálu | Další návrhové funkce

kodovani ISO 8859-2
Pojem "FIR filtru"

Filtry FIR (finite duration impuls response), též někdy nazývané filtry KIO (s konečnou impulsovou odezvou), tvoří, pro svoje některé výhodné vlastnosti, nedílnou součást číslicového zpracování signálu. Základní tzv. přímá struktura tohoto typu filtru je uvedena na obrázku.Významným rysem této soustavy je fakt, že neobsahuje žádnou vazbu z výstupu zpět na vstup.

Soustava je popsána následující diferenční rovnicí

Obraz této diferenční rovnice v Z-transformaci

Přenosová funkce soustavy

Výhody FIR filtrů

Nevýhody FIR filtrů

Úloha 4.1 "Návrh FIR filtru pomocí funkce fir1"

Prostudujte z nápovědy funkci fir1. Potom navrhněte koeficienty filtru FIR tak, aby splňoval následující požadavky

Pro ověření návrhu implementujte takto navržený filtr pomocí funkce filter, přefiltrujte libovolně vámi zvolený akustický signál a výsledek zkontrolujte poslechem. Zobrazte přenosové charakteristiky, impulsovou odezvu a rozložení nul a pólů vámi navrženým filtrem.

jedna.asc


Řešení:
Řešení je popsáno v následujícím m-filu. Prakticky nejdůležitější částí je volání funkce fir1 pro návrh koeficientů filtru FIR. Funkce je volána s minimálním počtem parametrů (automaticky je přednastaven návrh dolní propusti s oknem typu Hamming). Parametr N udává počet koeficientů filtru (řád filtru), Parametr Wn udává normovaný mezní kmitočet v rozmezí 0<Wn<1, kde 1 odpovídá polovině vzorkovací frekvence, tedy horní hranici přenášeného pásma.

% vzorkovaci kmitocet
fs=8000;
% mezni kmitocet dolni propusti
fd=500;
% maximalni kmitocet, ktery vyhovuje vzorkovacimu teoremu
fm=8000/2;
% normovany kmitocet dolni propusti
Wn=fd/fm;
% rad filtru
N=40;
% promenna pro koeficienty filtru
b=[];
% volani funkce pro navrh filtru
b = fir1(N,Wn);

% nacteni signalu
sig=[];
load jedna.asc
sig=jedna;
sig=sig./max(sig);

% filtrace signalu
out=[];
out=filter(b,1,sig);
% zvukovy doprovod
% sound(out);

% frekvencni charakteristiky
figure(1);
freqz(b,1,256,fs);
% impulsova odezva
impuls = [1 zeros(1,40)];
out2=[];
out2=filter(b,1,impuls);
figure(2);
subplot(2,1,1);
stem(impuls);
subplot(2,1,2);
stem(out2);
% rozlozeni nul a polu
figure(3)
zplane(b,[1 0]);

Frekvenční přenosová a fázová charakteristika navrženého filtru

Impulsová odezva filtru

Rozložení nul a pólů filtru kolem jednotkové kružnice



Úloha 4.2 "Návrh FIR filtru"

Navrhněte koeficienty filtru FIR tak, aby splňoval následující požadavky

Pro ověření návrhu implementujte takto navržený filtr pomocí funkce filter, přefiltrujte libovolně vámi zvolený akustický signál a výsledek zkontrolujte poslechem. Zobrazte přenosové charakteristiky, impulsovou odezvu a rozložení nul a pólů vámi navrženým filtrem. Sledujte vliv řádu filtru (počtu jeho koeficientů) na tvar zobrazených charakteristik.


Úloha 4.3 "Návrh FIR filtru pomocí funkce fir2"

Prostudujte nápovědu k funkci fir2. Využijte tuto funkci k návrhu následující pásmové propusti

Vyzkoušejte takto navržený filtr při filtrování akustických signálů. Zobrazte přenosové charakteristiky, impulsovou odezvu a rozložení nul a pólů vámi navrženým filtrem. Porovnejte výsledné přenosové charakteristiky s jejich zadáním.

Řešení:
Funkce b = fir2(n,f,m) vrací řádkový vektor b obsahující n+1 koeficientů FIR filtru řádu n. Zadání kmitočtové charakterisiky přenosu filtru FIR je dáno vektory f a m.
  Popis návrhu filtru pomocí m-filu

% vzorkovaci kmitocet
fs=8000;
% dolni mezni kmitocet pasmove propusti
fd=500;
% horni mezni kmitocet pasmove propusti
fh=2000;
% maximalni kmitocet, ktery vyhovuje vzorkovacimu teoremu
fm=8000/2;
% normovany dolni mezni kmitocet pasmove propusti
wd=fd/fm;
% normovany horni mezni kmitocet pasmove propusti
wh=fh/fm;
% rad filtru
N=40;
% vektor normovanych frekvenci
F=[0 wd wd wh wh 1];
% wektor absolutnich hodnot prenosu pro normovane frekvence
M=[0  0  1  1  0 0];
% zadani
figure(1);
plot(F,M)
% promenna pro koeficienty filtru
b=[];
% volani funkce pro navrh filtru
b = fir2(N,F,M);



Úloha 4.4 "Návrh pásmové zádrže"

Navrhněte následující pásmovou zádrž

Vyzkoušejte takto navržený filtr při filtrování akustických signálů. Zobrazte přenosové charakteristiky, impulsovou odezvu a rozložení nul a pólů vámi navrženým filtrem. Porovnejte výsledné přenosové charakteristiky s jejich zadáním. Sledujte vliv řádu filtru (počtu jeho koeficientů) na tvar zobrazených charakteristik.


Úloha 4.5 "Filtrování EEG signálu"

Navrhněte banku FIR filtrů oddělující základní aktivity EEG signálu. Sledujte signály v jednotlivých pásmech. Sledujte modul, fázi frekvenčních charakteristik
pásma signálů:
alfa ........... 8 - 13 Hz
beta ........ 13 - 30 Hz
theta ........... 4 - 7 Hz
delta ..... 0.5 - 3.5 Hz

EEG signál



Doplňující informace

Funkce fir1 a fir2 nejsou jedinými funkcemi pro návrh FIR filtrů v prostředí Matlab. Další funkce používané pro tento účel jsou
kaiserord, remezord, fircls, fircls1,cremez, firrcos.


Tento text vznikl jako podklad pro cvičení z předmětu UCZ na katedře teorie obvodů ČVUT. Pro přípravu těchto stránek bylo využito informací z webových stránek Číslicové Signály a Systémy (CSS), kde je také možno najít další zajímavé informace :-)

Jan Novotný: novotnj2@feld.cvut.cz29.9.2001