background image

 

 

CYFROWE PRZETWARZANIE 

SYGNAŁÓW - projekt

Filtr FIR

    Mateusz 
Waligórski

background image

 

 

Temat:

Zaprojektuj metodą próbkowania w dziedzinie 
częstotliwości pasmowozaporowy, filtr typu I o 
długości nieparzystej oraz symetrycznej 
odpowiedzi impulsowej. Zastosuj okno prostokątne 
i Kaisera. Przyjmij częstotliwość próbkowania 
fp=1000, fd1=150, fd2=200, fg1=300, fg2=350, 
odscylacje w  paśmie zaporowym 0.001. Wykreśl: 
odpowiedź impulsową, charakterystykę 
amplitudową i fazową filtra w skali liniowej i 
logarytmicznej W projekcie umieść informację o 
podstawach teoretycznych rozważanego 
zagadnienia, wykresy, schemat blokowy dowolnej 
struktury filtru cyfrowego i komentarz.

background image

 

 

Założenia projektowe

• Zastosowane okna: prostokątne i Kaisera
• Filtr typu I o długości nieparzystej oraz 

symetrycznej odpowiedzi impulsowej

• Częstotliwość próbkowania fp=1000 Hz
• Częstotliwość dolna 1 fd1=150 Hz
• Częstotliwość dolna 2 fd2=200 Hz
• Częstotliwość górna 1 fg1=300 Hz
• Częstotliwość górna 2 fg2=350 Hz

• Oscylacje w  paśmie zaporowym ds=0.001

• Metoda próbkowania w dziedzinie częstotliwości 

background image

 

 

Metodą próbkowania w 

dziedzinie częstotliwości

Projektowanie filtrów metodą próbkowania w dziedzinie częstotliwości polega 
na zadaniu N próbek charakterystyki częstotliwościowej filtru             dla 
unormowanych pulsacji 

 a następnie na obliczeniu 

odpowiedzi impulsowej filtru h[n] jako odwrotnej N-punktowej dyskretnej 
transformaty Fouriera ciągu           H[k]=    

 

        Aby uzyskać rzeczywistą, (a)symetryczną odpowiedź impulsową h[n] dla 
parzystych i nieparzystych wartości N, należy umieścić zadane wartości 
charakterystyki amplitudowo-częstotliwościowej tylko w części rzeczywistej  
     (filtry typu I i II, symetryczne h(n)) lub części urojonej 

      

                   (filtry typu III i IV, asymetryczne h(n)). Dodatkowo należy pamiętać o 

tym, że nie każdy rodzaj filtra (LP, HP, BP, BS, H, D) można zaprojektować z 
wybranego „prototypu” ze względu na asymetrię              , czyli jej zerowanie 
się w wybranych punktach.

)

(

j

e

H

,

1

,...,

2

,

1

,

0

,

/

2

N

k

N

k

k

.

1

,...,

2

,

1

,

0

),

(

|

)

(

/

2

/

2

N

k

e

H

e

H

N

k

j

N

k

j

)

(

j

e

H

)

(

j

e

H

)

(

j

e

H

background image

 

 

Przykładowe parametry

•   Oscylacje w paśmie przepustowym 
dp=0.01

•   Rząd filtru = 75 (wyliczony za pomocą 
MATLABa)

•   Reszta potrzebnych parametrów wyliczona 
za                            pomocą MATLABa

background image

 

 

Zastosowanie okna 

Prostokątnego

• Okno Prostokątne charakteryzuje się najlepszą rozdzielczością 

częstotliwościową (główny listek charakterystyki amplitudowej jest 

bardzo wąski) oraz słabą dynamiką (im mniejsza jest różnica 

amplitud listka głównego i listków bocznych, tym gorsza dynamika 

okna)  

Charakterystyka amplitudowa

Charakterystyka fazowa

(w skali liniowej)

background image

 

 

Charakterystyka fazowa

(w skali logarytmicznej)

Odpowiedź impulsowa

background image

 

 

• Okno Kaisera charakteryzuje się tym, że wraz ze wzrostem współczynnika 

beta powoduje zawężenie okna w dziedzinie czasu oraz obniżenie poziomu 

listków bocznych w dziedzinie częstotliwości. Wraz ze wzrostem długości 

okna N przy ustalonym parametrze beta, powoduje zmniejszenie szerokości 

listka głównego widma okna. dla beta =0 okno kaisera jest oknem 

prostokatnym

Zastosowanie okna Kaisera

Charakterystyka fazowa

(w skali liniowej)

Charakterystyka amplitudowa

background image

 

 

Charakterystyka fazowa

(w skali logarytmicznej)

Odpowiedź impulsowa

background image

 

 

Schemat blokowy

background image

 

 

Wylistowany kod programu 

(m.plik)

clear all;
typ= 1;(' filtr typu( 1. pasmowoprzepustowy półpasmowy):'); %rodzaj filtru
okno = input('Podaj rodzaj okna (1. okno Kaisera, 2. okno prostokątne) : '); 
%rodzaj zastosowanego okna
fpr= 1000; %częstotliwość próbkowania
fd1=150; %częstotliwość dolna 1
fd2=200; %częstotliwość dolna 2
fg1=300; % częstotliwość górna 1
fg2=350; %częstotliwość górna 2
dp=0.01; %oscylacje w paśmie przepustowym
ds=0.001; %oscylacje w paśmie zaporowym
typ='bs';
 
%parametry okna Kaisera
if (typ== 'bs')
    df1=fd2-fd1; 
    df2=fg2-fg1;
    df=min(df1,df2);
    f1=(fd1+(df/2));
    f2=(fg2-(df/2));
    w1=2*pi*f1;
    w2=2*pi*f2;
end
 
d=min(dp,ds);
A=-20*log10(d);
 

background image

 

 

Wylistowany kod programu 

(m.plik)

%Wyliczenie beta 
if (A>=50) beta=0.1102*(A-8.7); end
if (A>21 & A<50) beta=(0.5842*(A-21)^0.4)+4.07886*(A-21); end
if (A<=21) beta=0; end
if (A>21) D=(A-7.95)/14.36; end
if (A<=21) D=0.922;end
 
N=(D*fpr/df)+1;
N=ceil(N);
if (rem(N,2)==0) N=N+1; end
 
%wyliczenie zer i jedynek
li1=ceil(2*(f1*(N/2)+1)/fpr);
li2=ceil(2*(f2*(N/2)+1)/fpr);
 
 
%wygenerowanie okna
w11 = kaiser(N,beta); %zastosowanie okna Kaisera
w22 = rectwin(N);  %zastosowanie okna prostok¹tnego
 
Hre= [1 ones(1,li1) zeros(1,li2-li1) ones(1,(2*(li1-2))) zeros(1,li2-li1) ones(1,li1) ]; 
%kszta³towanie idealnej charakterystyki częstotliwościowej
Him= zeros(1,N);
H=Hre+ j*Him;
 
hz=ifft(H);  %obliczanie odwrotnej transformaty DFT
h=[hz(((N/2)):N) hz(1:(N/2))]; %przesunięcie kołowej odpowiedzi impulsowej

background image

 

 

Wylistowany kod programu 

(m.plik)

if (okno== 1)   %warunki ...
    fvtool(h.*w11.'); pause
end
if (okno== 2)
    fvtool(h.*w22.'); pause
end
pause
 
Hd= dfilt.dffirt(h);                %Direct-form FIR transposed
realizemdl(Hd,'optimizezeros','on','blockname','Direct-form FIR 
transposed');

background image

 

 

Literatura

- Wykład z Podstaw Cyfrowego Przetwarzania Sygnałów ;-)

(wiadomo najważniejszy)

- Zieliński P.T.: Od teorii do cyfrowego przetwarzania sygnałów, 
AGH, Kraków 2002

- A.Łuksza: Podstawy cyfrowego przetwarzania sygnałów, AM, 
Gdynia 2008 


Document Outline