lab9 procesory sygnalowe, LABORATORIUM


Temat : Okna czasowe i filtry FIR

ĆWICZENIE nr 9

Paweł Siwczyk

Nr albumu : 140856

Semestr : III

Teleinformatyka

  1. Cel ćwiczenia

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 ]

0x01 graphic

[ moduł widma ]

0x01 graphic

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 ]

0x01 graphic

[ moduł widma ]

0x01 graphic

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 ]

0x01 graphic

[ moduł widma ]

0x01 graphic

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 ]

0x01 graphic

[ moduł widma ]

0x01 graphic

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)0x08 graphic
]

0x01 graphic

[ kaiser(20,10)]

Moduł widma

0x01 graphic

[ kaiser(20,1)]

0x01 graphic

[ kaiser(20,10)]

2.6 Gausswin

Gausswin - Funkcja zwraca współczynniki filtra realizującego okno Gaussa o zadanej długości.

[ wykres w dziedzinie czasu ]

0x01 graphic

[ moduł widma ]

0x01 graphic

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.

0x01 graphic

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 ]

0x01 graphic

[ 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";

0x01 graphic

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 ]

0x01 graphic

[ długości sygnału L : 180 ]

0x01 graphic

[ długości sygnału L : 300 ]

0x01 graphic

Okno Hanninga

[ długości sygnału L : 50 ]

0x01 graphic

[ długości sygnału L : 180 ]

0x01 graphic

[ długości sygnału L : 300 ]

0x01 graphic

Okno Blackmana

[ długości sygnału L : 50 ]

0x01 graphic

[ długości sygnału L : 180 ]

0x01 graphic

[ długości sygnału L : 300 ]

0x01 graphic

Okno Bartletta

[ długości sygnału L : 50 ]

0x01 graphic

[ długości sygnału L : 180 ]

0x01 graphic

[ długości sygnału L : 300 ]

0x01 graphic

Okno Gausswin

[ długości sygnału L : 50 ]

0x01 graphic

[ długości sygnału L : 180 ]

0x01 graphic

[ długości sygnału L : 300 ]

0x01 graphic

Okno Kaiser'a ( beta = 10 )

[ długości sygnału L : 50 ]

0x01 graphic

[ długości sygnału L : 180 ]

0x01 graphic

[ długości sygnału L : 300 ]

0x01 graphic

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.

0x01 graphic

0x01 graphic

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 ]

0x01 graphic

[ rząd : 5 ]

0x01 graphic

[ rząd : 10 ]

0x01 graphic

[ rząd : 20 ]

0x01 graphic

[ rząd : 50 ]

0x01 graphic

[ rząd : 100 ]

0x01 graphic

[ rząd : 500 ]

0x01 graphic

[ rząd : 1000 ]

0x01 graphic

[ rząd : 2000 ]

0x01 graphic

[ rząd : 5000 ]

0x01 graphic

[ rząd : 10000]

0x01 graphic

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:

Najczęściej stosowane rozwiązania można podzielić na dwie grupy:

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:

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).

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.

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



Wyszukiwarka