Temat : Okna czasowe i filtry FIR
ĆWICZENIE nr 9
Paweł Siwczyk
Nr albumu : 140856
Semestr : III
Teleinformatyka
Cel ćwiczenia
Przegląd okien realizowanych przez filtry FIR
Badanie okien czasowych - zależności parametrów wpływających na zmianę kształtu okien czasowych
Zapoznanie się z filtrami FIR (o skończonej odpowiedzi impulsowej )
2. Zapoznanie się z działaniem funkcji
2.1 bartlett(N)
bartlett(N) - N- elementowy ciąg w kształcie trójkąta, ale z końcowymi zerami . Funkcja zwraca współczynniki filtra realizującego okno Bartletta (trójkątnego) o zadanej długości.
[ wykres w dziedzinie czasu ]
[ moduł widma ]
2.2 blackman (N, opcja )
blackman(N, opcja ) - N- elementowy ciąg w kształcie dzwonu, schodzący do zera .Opcja `symmetric' lub `periodic', bez opcji domyślnie - `symmetric' .Funkcja zwraca współczynniki filtra realizującego funkcję okna Blackmana o zadanej długości.
[ wykres w dziedzinie czasu ]
[ moduł widma ]
Okno Blackmana jest bardzo podobne do okna Hanninga.
W dziedzinie czasu okno to przyjmuje w pewnych punktach wartość 0.
2.3 hanning(N, opcja )
hanning(N, opcja ) - N- elementowy ciąg w kształcie dzwonu, schodzący prawie do zera .Opcja `symmetric' lub `periodic', bez opcji domyślnie - `symmetric'.
[ wykres w dziedzinie czasu ]
[ moduł widma ]
Okna Hanninga niesie energię małym zakresie częstotliwości.
2.4 hamming(N, opcja )
hamming(N, opcja ) - N- elementowy ciąg w kształcie dzwonu, nie schodzący do zera . Opcja `symmetric' lub `periodic', bez opcji domyślnie - `symmetric'.
[ wykres w dziedzinie czasu ]
[ moduł widma ]
Okno Hamminga niesie energię tylko w małym zakresie częstotliwości.
Porównując okno Hanninga i Hamminga można zauważyć, że okna te są bardzo podobne do połowy okresu funkcji cos(x).
Wartości w oknie Hamminga w żadnym miejscu nie są równe 0, co ma miejsce w oknie Hanninga
2.5 kaiser(N, Beta)
kaiser(N, Beta) - N- elementowy ciąg w kształcie dzwonu . Drugi, opcjonalny parametr - beta - od 0 do 700, powoduje, że okno zmienia się od ciągu samych jedynek, po ciąg bliski delcie Kroneckera.
[ kaiser(20,1)
]
[ kaiser(20,10)]
Moduł widma
[ kaiser(20,1)]
[ kaiser(20,10)]
Współczynnik beta określa nachylenie zboczy okna Kaiser'a
Dzięki możliwości zmian nachylenia zboczy w oknie Kaisera, można przybliżać okno Kaisera
właściwie do każdego innego okna.
Przykładowo, gdy beta=0 Okno Kaiser'a przyjmuje postać okna prostokątnego.
Przyjmując inne wartości beta można by otrzymać okno Hamming lub Hanninga, itd.
Im większy współczynnik beta, tym więcej jest składowych w sygnale
2.6 Gausswin
Gausswin - Funkcja zwraca współczynniki filtra realizującego okno Gaussa o zadanej długości.
[ wykres w dziedzinie czasu ]
[ moduł widma ]
2.7 fir1
fir1 - wyznaczenie metodą okien czasowych współczynników filtru FIR o liniowej fazie spełniającego wymagania określone w postaci granic pasm przepustowych i zaporowych,
Sposób wywołania funkcji :
h=fir1(n, Fn, opcje_pasmowe, opcjonalne_okno)
Funkcja zwraca wartość współczynników h dla filtru dolnoprzepustowego o podanym rzędzie n oraz górnej 3-decybelowej znormalizowanej częstotliwości Fn. Podając odpowiednie opcje można projektować filtry górno- i pasmowoprzepustowe . W roli ostatniego, opcjonalnego, parametru można zastosować wywołanie funkcji generującej wybrane okno czasowe, np. . bartlett(n+1); w przypadku pominięcia tego parametru stosowane jest okno Hamminga.
Przykład :
freqz(fir1(50,[0.1,0.3],'stop'))
- rząd filtra = 50
- Pasmo zabronione = [0.1, 0.3] (częstotliwość unormowana)
- Parametr `stop'/ `pass' określa, czy wybrany zakres częstotliwości ma być pasmem przepustowym, czy zabronionym.
3. Własności podstawowych okien w dziedzinie czasu i częstotliwości
Aby możliwe było porównanie okien należało napisać skrypt :
N=100
% Generacja okien
w1 = boxcar(N); %
w2 = bartlett(N); %
w3 = hanning(N); %
w4 = hamming(N); %
w5 = blackman(N); %
title('Funkcja okna'); xlabel('nr próbki');
hold on;
lot(w1,'-b;boxcar;',w2,'-r;barlett;',w3,'-g;hanning;',w4,'-c;hamming;',w5,'-k;blackman;); grid; axis "normal";
N= 100 ( długość okna )
[ Przebieg badanych okien w dziedzinie czasu ]
Z przeprowadzonej analizy okna Kaiser'a w dziedzinie czasu widać, że kształt tego okna uzależniony jest w znacznym stopniu od współczynnika beta, im jest większy tym okno staje się bardziej płaskie.
Prawie wszystkie okna mają kształt odwróconej paraboli, wyjątkiem jest okno Bartlett'a, które jest oknem trójkątnym.
[ Przebieg badanych okien w dziedzinie częstotliwości ]
Aby możliwe było porównanie okien w dziedzinie częstotliwości należało napisać skrypt :
fp = 16; % częstotliwość próbkowania
df = 1; % rozdzielczość częstotliwościowa analizy w Hz
Asl = 80; % rozdzielczość amplitudowa analizy w dB (tłumienie listka bocznego)
dfn = df/fp; % unormowana rozdzielczość analizy w Hz/Hz
Dml = 2*pi*dfn; % szerokość listka głównego unormowana względem cz. próbkowania
N=100
beta=3.5
% Generacja okna
w1 = boxcar(N);
w2 = bartlett(N);
w3 = hanning(N);
w4 = hamming(N);
w5 = blackman(N);
w6 = kaiser(N,beta);
w1=w1';
w2=w2';
w3=w3';
w4=w4';
w5=w5';
w6=w6';
% Generacja sygnału - dwie sinusoidy
% N = 200; % długość sygnałów: przyjmij arbitralnie lub zastosuj N wyznaczone powyżej
ax1 = 1; % amplituda sygnału 1
ax2 = 0.001; % amplituda sygnału 2
fx1 = 1; % częstotliwość sygnału 1 w Hz
fx2 = 2; % częstotliwość sygnału 2 w Hz
fm = 32; % maksymalna częstotliwość w Hz rysunku widma „okresowego”
NF = 100; % ilość punktów charakterystyki częstotliwościowej
dt = 1/fp; t = 0 : dt : (N-1)*dt; % chwile próbkowania
x1 = ax1 * cos( 2*pi*fx1*t ); % sygnał 1
x=x1
% Widmo okna boxcar (okno 1)
W1 = abs(fft(w1,NF));
% W1 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Barletta (okno 2)
W2 = abs(fft(w2,NF));
% W2 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Hanninga (okno 3)
W3 = abs(fft(w3,NF));
% W3 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Hamminga (okno 4)
W4 = abs(fft(w4,NF));
% W4 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Blackmana (okno 5)
W5 = abs(fft(w5,NF));
% W5 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Kaisera (okno 6)
W6 = abs(fft(w6,NF));
%W6 = 20*log10(W); % wartość bezwzględna i normowanie
title('Moduł widma okna');
hold on;
plot(W1,'-b;boxcar;',W2,'-r;barlett;',W3,'-g;hanning;',W4,'-c;hamming;',W5,'-k;blackman;',W6,'-m;kaiser;'); grid; axis "normal";
W dziedzinie częstotliwości najbardziej wąskie „listki boczne” ma okno Hamming'a,
W widmie okna Bartlett'a występują największe „listki boczne” które powodują znaczniejsze nieregularności w widmie amplitudowym.
4.Obserwacja przecieku widma
Obserwacja wpływu przecieku widma na rozdzielczość transformaty . Zmiana długości sygnału w granicach ( 50 - 300 próbek )
[ Zależność przecieku widma od :]
długości sygnału L : L={50, 180, 300}.
Długość transformaty : L, 5*L i 10*L.
Okno Hamminga
[ długości sygnału L : 50 ]
[ długości sygnału L : 180 ]
[ długości sygnału L : 300 ]
Okno Hanninga
[ długości sygnału L : 50 ]
[ długości sygnału L : 180 ]
[ długości sygnału L : 300 ]
Okno Blackmana
[ długości sygnału L : 50 ]
[ długości sygnału L : 180 ]
[ długości sygnału L : 300 ]
Okno Bartletta
[ długości sygnału L : 50 ]
[ długości sygnału L : 180 ]
[ długości sygnału L : 300 ]
Okno Gausswin
[ długości sygnału L : 50 ]
[ długości sygnału L : 180 ]
[ długości sygnału L : 300 ]
Okno Kaiser'a ( beta = 10 )
[ długości sygnału L : 50 ]
[ długości sygnału L : 180 ]
[ długości sygnału L : 300 ]
Do badania przyjąłem zmodyfikowany sygnał ze skryptu do laboratorium, następnie wykreśliłem jego przebieg dla 40 próbek, oraz widmo amplitudowe dla 500 próbek.
N=500; %ilość prążków
NS=40;
fp = 16;
ax1 = 1; % amplituda sygnału 1
ax2 = 0.001; % amplituda sygnału 2
fx1 = 1; % częstotliwość sygnału 1 w Hz
fx2 = 2; % częstotliwość sygnału 2 w Hz
dt = 1/fp; t = 0 : dt : (NS-1)*dt; % chwile próbkowania
x1 = ax1 * cos( 2*pi*fx1*t );
x2 = ax2 * cos( 2*pi*fx2*t ); % sygnał 2
x12 = x1 + x2; % suma
sygnałów 1 + 2
x = x12;
NO=40
beta=3.5
% Generacja okna
w1 = boxcar(NO); % różne okna
w2 = bartlett(NO); %
w3 = hanning(NO); %
w4 = hamming(NO); %
w5 = blackman(NO); %
w6 = kaiser(NO,beta);
w7 = kaiser(NO,7);
w1=w1';
w2=w2';
w3=w3';
w4=w4';
w5=w5';
w6=w6';
w7=w7';
x1 = x .* w1;
x2 = x .* w2;
x3 = x .* w3;
x4 = x .* w4;
x5 = x .* w5;
x6 = x .* w6;
x7 = x .* w7;
NF = 500; % ilość punktów charakterystyki częstotliwościowej
% Widmo okna boxcar (okno 1)
W1 = abs(fft(x1,NF));
% W1 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Barletta (okno 2)
W2 = abs(fft(x2,NF));
% W2 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Hanninga (okno 3)
W3 = abs(fft(x3,NF));
% W3 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Hamminga (okno 4)
W4 = abs(fft(x4,NF));
% W4 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Blackmana (okno 5)
W5 = abs(fft(x5,NF));
% W5 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Kaisera (okno 6)
W6 = abs(fft(x6,NF));
%W6 = 20*log10(W); % wartość bezwzględna i normowanie
% Widmo okna Kaisera (okno 7)
W7 = abs(fft(x7,NF));
%W6 = 20*log10(W); % wartość bezwzględna i normowanie
Na charakterystyce amplitudowej widać wyraźnie przeciek widma.
Zjawisko przecieku widma występuje w wyniku próbkowania niepełnej liczby okresów analizowanego sygnału.
Wyznaczona charakterystyka amplitudowa została obliczona dla 500 próbek, by pokazać wyraźnie przeciek widma.
Wszystkie okna zdefiniowałem o długości N = 40.
Operacja okienkowania polega na wymnożeniu każdej próbki badanego sygnału z próbką wybranego przez nas okna.
Do analizy wykorzystałem wszystkie wcześniej scharakteryzowane okna, analiza na oknie Kaisera zostanie przedstawiona na osobnym wykresie, by pokazać wpływ zmiany współczynnika β na przebieg charakterystyki.
Na kolejnych wykresach za pomocą różnych okien przedstawiona będzie minimalizacja zjawiska przecieku widma.
Minimalizacja efektu przecieku oknem Boxcart nie dała żadnych rezultatów.
Najlepsze rezultaty daje zastosowanie okna Hamminga,
w przypadku porównania okien Keiser'a porządana jest większa wartość współczynnika β.
Zastosowanie okien do minimalizacji efektu przecieku widma daje różne rezultaty w zależności od zastosowanego typu okna.
Z wykresów widać, że okna Hamming'a, Hanninga, Blackmana oraz Bartlett'a praktycznie w porównywalny sposób powodują zmalenie poziomu przecieku oraz zmniejszenie amplitudy sygnału, przy czym przy zastosowaniu okna Hamming'a otrzymamy lepsze wyniki.
Natomiast stosowanie okna Kaiser'a do zmniejszenia przecieku widma daje różne rezultaty w zależności od dobranego współczynnika beta.
Im przyjęta wartość beta jest większa tym przeciek widma jest mniejszy, lecz mamy bardziej zmniejszoną amplitudę sygnału.
Z przedstawionych wykresów wynika, że okno Kaiser'a o współczynniku beta = 7 dało najlepsze rezultaty, niż okna Hanning'a i Kaisera.
5. Projektowanie filtru typu FIR,
Filtry o skończonej odpowiedzi do uzyskania bieżącej próbki sygnału wyjściowego wykorzystują próbkę bieżącą i próbki przeszłe sygnału wejściowego. Dysponując skończonym ciągiem różnych od zera próbek sygnału wejściowego, filtr o skończonej odpowiedzi (FIR) zawsze ma na wyjściu skończonej ilości niezerowych próbek sygnału wyjściowego, stąd bierze się nazwa tego typu filtrów.
% skrypt wyświetla charakterystyke amplitudowa i fazowa filtru FIR
clear all; % czyszczenie wszystkiego
rz=50; % rząd filtra
pass=[0, 0.4]; % pasmo
typ='high'; % typ: high=pass, stop
% charakterystyki
freqz(fir1(rz,pass, typ));
[ rząd : 1 ]
[ rząd : 5 ]
[ rząd : 10 ]
[ rząd : 20 ]
[ rząd : 50 ]
[ rząd : 100 ]
[ rząd : 500 ]
[ rząd : 1000 ]
[ rząd : 2000 ]
[ rząd : 5000 ]
[ rząd : 10000]
W przypadku filtra I-rzędu, pasmo przejściowe jest dużo szersze od pasma przepustowego.
Im wyższy rząd filtra, tym sytuacja staje się lepsza. Już filtr VL-rzędu zapewnia bardzo wąskie pasmo przejściowe.
Im wyższy rząd filtra, tym mniejsze jest pasmo przejściowe.
Im wyższy rząd filtra, tym opóźnienie w fazie jest większe. Wynika z tego, że czas propagacji sygnału przez filtr wysokiego rzędu, jest o wiele dłuższy niż dla filtra niższego rzędu.
Szerokość pasma przepuszczania dla filtrów o skończonej odpowiedzi impulsowej bardzo silnie zależy od rzędu filtru.
Im rząd filtru jest większy tym pasmo przepuszczania jest mniejsze.
Projektowanie filtru typu FIR, czyli o skończonej odpowiedzi impulsowej, polega najczęściej na wyznaczeniu ciągu odpowiedzi impulsowej, który przez operację splatania liniowego z sygnałem wejściowym da pożądany rezultat.
Zazwyczaj przez określenie “pożądany rezultat” rozumie się odpowiednią zmianę w charakterystyce częstotliwościowej sygnału, przy czym powinna to być charakterystyka w rozumieniu D-TFT (splot liniowy).
Projektowanie filtrów FIR, może wydawać się zadaniem prostym. Wystarczyłoby przecież w - dziedzinie częstotliwości zdefiniować pożądaną charakterystykę,
- wyznaczyć odwrotną transformatę Fouriera
i w ten sposób otrzymać odpowiedź impulsową realizującą projektowany filtr.
Rozwiązanie takie nie jest jednak zwykle stosowane z dwóch zasadniczych, powiązanych wzajemnie, powodów:
filtr realizowany za pomocą odpowiedzi impulsowej splatanej z nadchodzącym na bieżąco ciągiem sygnału nie realizuje splotu kołowego, lecz splot liniowy, natomiast powyższa propozycja wiąże się z wykorzystaniem odwrotnej wersji FFT, czyli byłaby odpowiednia dla filtracji właśnie poprzez splot kołowy;
W pewnych przypadkach można by uznać, że widmo filtru określone w dziedzinie DFT jest dostatecznie dobrym przybliżeniem widma w dziedzinie D-TFT - widmo DFT można otrzymać przez spróbkowanie jednego okresu widma D-TFT - jednak, by tak można było przyjąć, to ilość próbek , czyli długość ciągu transformaty DFT, a zatem i odpowiedzi impulsowej, musiałaby być zbyt długa dla większości praktycznych zastosowań.
Najczęściej stosowane rozwiązania można podzielić na dwie grupy:
przez podejście identyczne do opisanego powyżej dla dostatecznie długiego ciągu transformaty DFT - by można ją było uznać, za dobre przybliżenie transformaty D-TFT - i następnie skracanie wyznaczonej odpowiedzi impulsowej w taki sposób, by w wyniku tego zabiegu widmo filtru ulegało jak najmniej szkodliwym zmianom;
przez wykorzystanie teorii aproksymacji, dzięki czemu zdefiniowanie widma tylko w wybranych punktach częstotliwości może prowadzić do spełnienia odpowiednich założeń w każdym punkcie częstotliwości.
5.2 Projektowanie filtrów FIR metodą okien czasowych
Długą odpowiedź impulsową wyznaczoną z odwrotnej transformacji FFT zadanego widma można skracać, starając się przy tym zachować najistotniejsze cechy widma.
Do tego celu służą okna czasowe, czyli ciągi, które są mnożone - element po elemencie - przez daną odpowiedź impulsową. Warto wspomnieć, że wprowadzanie zmian w odpowiedzi impulsowej owocuje efektem Gibbsa w dziedzinie częstotliwości.
Najprostszym oknem czasowym jest okno prostokątne, obcinające wprost odpowiedź do długości :
(8)
Przy podawaniu indeksów w definicji okien przyjęto założenie, że rozważana jest odpowiedź impulsowa o zerowej fazie. Przejście do odpowiedzi o fazie liniowej będzie się wiązało z przesunięciem indeksów tak, by po skróceniu odpowiedź impulsowa rozpoczynała się w punkcie .
Zatem odpowiedź impulsowa po zastosowaniu okna , będzie określona następująco:
(9)
Mnożenie w dziedzinie indeksów czasowych odpowiada splataniu w dziedzinie częstotliwości. Zatem chcąc przewidzieć, jakie zajdą zmiany w widmie filtru, wystarczy zbadać widmo zastosowanego okna i zastanowić się jak splatanie takiego widma z widmem filtru wpłynie na końcowy rezultat.
Z tego punktu widzenia najkorzystniejszym widmem okna byłaby oczywiście delta Kroneckera z odpowiednią amplitudą, określona w dziedzinie częstotliwości DFT, co odpowiadałoby delcie Diraca w przypadku ciągłej dziedziny częstotliwości D-TFT.
Wynika to wprost z faktu, że splatanie z ciągiem delty Kroneckera nie wnosi żadnych zmian do splatanego ciągu - w tym przypadku jest to ciąg próbek widma filtru. Jak łatwo sprawdzić, widmo okna dość znacznie różni się od delty Kroneckera i dlatego też okno to nie jest często stosowane.
W celu stwierdzenia, na ile dane okno spełnia typowe wymagania definiuje się dwa parametry liczbowe:
szerokość listka głównego
podwojona wartość częstotliwości cyfrowej, dla której część rzeczywista widma okna przechodzi oddalając się od punktu pierwszy raz przez 0 (metoda taka jest poprawna tylko gdy część urojona widma okna jest zerowa).
tłumienie dla listków bocznych.
Szerokość listka głównego to Tłumienie dla listków bocznych określa się w dB jako odstęp pomiędzy maksymalną wartością amplitudy w listkach bocznych i wartością amplitudy dla . Punkt określa zatem wartość odniesienia, co oznacza, że amplituda wynosi w nim 0dB.
Okno jest tym lepsze im mniejsza jest szerokość listka głównego i większe jest tłumienie dla listków bocznych - wtedy bowiem widmo jest bardziej zbliżone do delty Kroneckera z odpowiednią amplitudą (lub delty Diraca, intepretując widmo jako charakterystykę w dziedzinie D-TFT)
Szerokość listka głównego jest odwrotnie proporcjonalna do długości okna w dziedzinie czasu. Ponieważ istotą stosowania okien jest skracanie odpowiedzi impulsowych, więc prowadzi to do sprzecznych wymagań i dlatego też istnieje szereg różnych propozycji okien czasowych, z których najbardziej znane to:
1) okno Bartletta,
2) okno Blackmanna,
3) okno Hamminga,
4) okno von Hanna, zwane często oknem Hanninga,
5) okno Kaisera (najbardziej uniwersalne),
Po wyliczeniu ciągu reprezentującego dane okno, ciąg dalszy jest taki sam jak opisano dla okna prostokątnego. Za każdym razem chcąc skrócić odpowiedź impulsową do określonej długości należy pełną odpowiedź impulsową pomnożyć przez ciąg okna dla okna o szerokości identycznej z pożądaną długością odpowiedzi impulsowej.
Tak….. to już KONIEC
Okna czasowe i filtry FIR
TEORIA SYGNAŁÓW LABORATORIUM