Filtry o skończonej odpowiedzi impulsowej (SOI)

Transkrypt

Filtry o skończonej odpowiedzi impulsowej (SOI)
Politechnika Wrocławska
Wydział Elektroniki Mikrosystemów i Fotoniki
Przetwarzanie sygnałów – laboratorium
ETD5067L
Ćwiczenie 4.
Filtry o skończonej odpowiedzi impulsowej (SOI)
1. Filtracja cyfrowa – podstawowe wiadomości
Cyfrowa filtracja sygnału ma na celu wyodrębnienie pożądanej informacji z danego sygnału
dyskretnego. Efektem filtracji danego sygnału wejściowego jest sygnał wyjściowy, przy czym
relację między nimi określa deterministyczna funkcja transmitancji filtru.
Liniowy filtr cyfrowy jest scharakteryzowany:
–
odpowiedzią impulsową, czyli odpowiedzią na pobudzenie deltą Diraca;
–
odpowiedzią skokową, czyli odpowiedzią na skok jednostkowy;
–
charakterystyką częstotliwościową.
1.1. Charakterystyka częstotliwościowa filtru
Przez charakterystykę częstotliwościową filtru rozumiemy wykres przedstawiający widmo
jego odpowiedzi impulsowej i pokazujący, jak dany filtr zmienia sygnał z punktu widzenia widma
tego sygnału. Każdej częstotliwości na charakterystyce przyporządkowana jest liczba dodatnia
m
Afilt
c X m = A
m 
oryg
, przy czym wartość c = 1 oznacza, że składowa o danej częstotliwości przy filtrowaniu
się nie zmienia, natomiast c = 0 oznacza, że dana składowa jest całkowicie tłumiona.
Charakterystykę częstotliwościową przedstawia się często w skali logarytmicznej, wówczas
wartości na osi rzędnych wyrażane są w decybelach:
c [dB]=20⋅log
A filt
,
Aoryg
gdzie c[dB] – zmiana amplitudy w decybelach, Afilt – amplituda po filtracji, Aoryg – amplituda przed
filtracją.
1
2. Filtry SOI
Filtr o skończonej odpowiedzi impulsowej (SOI; także FIR, ang. finite impulse response)
jest nierekursywnym filtrem cyfrowym. Nierekursywność oznacza przy tym, że nie występuje
w tym filtrze sprzężenie zwrotne, co m.in. wiąże się z tym, że odpowiedź filtru SOI na skończone
w czasie pobudzenie jest również skończona w czasie.
Filtr SOI określa się ciągiem współczynników {bn}, natomiast jego transmitancja wyraża się
wzorem:
H SOI  z =b 0b 1 z −1b2 z −2...b N z −N .
Jeśli zdefiniujemy filtr jako tablicę b(n), jego odpowiedź impulsowa będzie równoważna
zestawowi jego współczynników. Tym samym filtrację sygnału x(n) wykonujemy, obliczając splot
sig_conv(br, bi, xr, xi). Trzeba przy tym pamiętać, że jeśli chcemy bezpośrednio
porównywać sygnały przed filtracją x i po filtracji xf w dziedzinie czasu, trzeba uwzględnić fakt,
że wynik splotu x*b ma więcej próbek niż sygnał filtrowany. Na przykład jeśli filtr ma nieparzystą
(!) liczbę współczynników Nf , do porównania musimy wykorzystać sygnał:
{
x 2f  [n ]= x f [i] :
}
N f −1
N f −1
1 ≤ i ≤ N xf −
,
2
2
gdzie Nxf – liczba próbek sygnału xf .
2.1. Rodzaje filtrów ze względu na charakterystykę częstotliwościową
Ze względu na to, które składowe widma są przez filtr tłumione, a które bez zmian
zachowywane, wyróżniamy:
–
filtry dolnoprzepustowe, przez które tłumione są składowe f > fg ;
–
filtry górnoprzepustowe, przez które tłumione są składowe f < fd ;
–
filtry pasmowoprzepustowe, tłumiące składowe f < fd i f > fg ;
–
filtry pasmowozaporowe, tłumiące składowe fd < f < fg .
2.2. Filtry działające na zasadzie średniej kroczącej
Najprostszą metodą filtracji sygnałów, często zupełnie wystarczającą, jest zastosowanie
tzw. średniej kroczącej (ang. moving average). Metoda ta polega na uśrednianiu kilku kolejnych
próbek sygnału w myśl zależności:
x f [ j]=
1
M
M −1
∑ x [ jk ] ,
k=0
gdzie M – liczba uśrednianych próbek.
2
2.3. Filtry oparte na okienkowanej funkcji sinc
2.3.1. Filtry dolnoprzepustowe
Prostą filtrację dolnoprzepustową można również wykonać za pomocą filtru zdefiniowanego
następująco:
b [ j]=
fg
{


sin 2 ⋅ f c⋅ j−
j−
M
2
M
2

⋅w[ j ] dla j ≠
M
2
dla j =
M
2
2⋅ f c
gdzie f c = f ∈0 ; 0,5 – znormalizowana częstotliwość graniczna, M – długość filtru (wynikowy
s
wektor b będzie miał M + 1 elementów), w[ j ] – wykorzystywane okno. Okna poprawiają
charakterystyki częstotliwościowe filtru, a wykorzystuje się m.in.:
0,08 cos 
[ j]=0,54−0,46 cos 
.
–
okno Blackmana
w B [ j]=0,42−0,5 cos
–
okno Hamminga
wH

2 ⋅j
M
4 ⋅j
M
,
2⋅ j
M
Po obliczeniu w ten sposób współczynników filtru dolnoprzepustowego należy pamiętać o tym, aby
go znormalizować. Oznacza to zapewnienie takiego działania filtru, by składowa stała sygnału była
po przetworzeniu przez filtr niezmieniona (wzmocnienie filtru dla f = 0 wynosi 1). Aby uzyskać taki
efekt, należy podzielić każdy element wektora b przez sumę wszystkich jego elementów:
∀ j b norm [ j]=
b [ j]
M1
∑ j=1
b [ j]
.
2.3.2. Pozostałe rodzaje filtrów
Mając
do
dyspozycji
współczynniki
filtru
dolnoprzepustowego
{ bndp } ,
można
 gp
zaprojektować filtr górnoprzepustowy { bn } o takiej samej częstotliwości granicznej, tzn. fd = fg .
Aby jednak metoda działała prawidłowo, odpowiedź impulsowa filtru musi mieć nieparzystą liczbę
próbek, musi być symetryczna względem elementu centralnego i jej charakterystyka amplitudowa
musi mieć maksimum równe 1. Wówczas współczynniki filtru górnoprzepustowego otrzymujemy
z równania:
b gp [n]=[n−c ]−b dp  [ n] ,
gdzie c jest indeksem elementu centralnego oraz
{
[i]= 1 dla i=0
0 dla i≠0
Pozostałe filtry uzyskujemy przez odpowiednie łączenie ze sobą filtrów dolnoi górnoprzepustowych.
3
3. Zadania do realizacji
Na zajęciach laboratoryjnych należy rozwiązać 5 podanych poniżej zadań. Za każde zadanie
można otrzymać jeden punkt pod warunkiem, że zostanie ono całkowicie poprawnie zrealizowane.
Warto przypomnieć, że w zadaniach wskazane jest wykorzystywać funkcje napisane podczas
wcześniejszych ćwiczeń.
Zadanie nr 1
W zadaniu pierwszym należy napisać funkcję postaci:
function [c_dB]=decibels(c_1)
#definicja ciała funkcji
endfunction
przeliczającą charakterystykę częstotliwościową filtru z liniowej na logarytmiczną, a następnie
funkcję postaci:
function [c_1, c_dB]=freq_resp(A_in, A_out)
#definicja ciała funkcji
endfunction
obliczającą liniową i logarytmiczną charakterystykę częstotliwościową filtru, dla którego sygnał
o widmie Aout jest odpowiedzią na pobudzenie sygnałem o widmie Ain .
Zadanie nr 2
W zadaniu drugim należy napisać funkcję następującej postaci:
function [x_f2]=correct_length(x_f, N_f)
#definicja ciała funkcji
endfunction
która z sygnału xf , będącego sygnałem x po filtracji, wybierze próbki w sposób pozwalający
na porównanie sygnałów x i xf w dziedzinie czasu. Nf jest liczbą próbek zastosowanego filtru.
Przed napisaniem funkcji należy wykonać odpowiednie testy, pozwalające stwierdzić, w jaki
sposób należy skracać sygnał xf .
4
Zadanie nr 3
Zadanie trzecie polega na napisaniu funkcji następującej:
function [x_f]=movavg_filter(x, M)
#definicja ciała funkcji
endfunction
która wykona filtrację sygnału x na zasadzie średniej kroczącej dla M próbek. Jak w efekcie filtracji
zmienia się widmo sygnału x i jak ta zmiana zależy od M?
Zadanie nr 4
W zadaniu czwartym należy napisać funkcję następującej postaci:
function [b]=sinc_filter(fc, M)
#definicja ciała funkcji
endfunction
która będzie tworzyć filtr dolnoprzepustowy o długości M i częstotliwości granicznej fc . W funkcji
należy uwzględnić dowolnie wybrane okno.
Zadanie nr 5
W zadaniu piątym należy napisać funkcję następującej postaci:
function [x_f]=fir_filter(x, b)
#definicja ciała funkcji
endfunction
która wykona filtrację sygnału x filtrem o współczynnikach z tablicy b. Wymagane jest, aby sygnał
xf miał tyle samo próbek co sygnał x. Jak należy zmienić tę funkcję, by pracowała na sygnałach
zespolonych?
5
Pytania na kartkówkę
1. Napisz funkcję przeliczającą amplitudę wyrażoną liniowo na wyrażoną logarytmicznie
(w decybelach).
2. Napisz funkcję realizującą filtrowanie za pomocą średniej kroczącej.
3. Napisz funkcję, która z filtru dolnoprzepustowego o częstotliwości granicznej d · fs tworzy
filtr górnoprzepustowy o odwrotnej charakterystyce.
Jaką częstotliwość graniczną ma ten filtr?
4. Co należy zrobić, aby mając do dyspozycji współczynniki filtru dolnoprzepustowego
o częstotliwości granicznej fg i filtru górnoprzepustowego o częstotliwości granicznej fd < fg ,
uzyskać filtr pasmowoprzepustowy o pasmie przenoszenia (fd , fg)?
5. Co należy zrobić, aby mając do dyspozycji współczynniki filtru dolnoprzepustowego
o częstotliwości granicznej fg i filtru górnoprzepustowego o częstotliwości granicznej fd > fg ,
uzyskać filtr pasmowozaporowy o pasmie tłumienia (fd , fg)?
6

Podobne dokumenty