dsp lab8


Laboratorium Cyfrowego Przetwarzania Sygnałów
Wydział Elektryczny
ZTMAiPC  Zespół Automatyki
LABORATORIUM CYFROWEGO PRZETWARZANIA SYGNAAÓW
Ćwiczenie 8
Filtrowanie sygnałów akustycznych  implementacja na procesorze ADSP-2181
6.1. Cel ćwiczenia
Opanowanie procedury realizacji filtrów cyfrowych na procesorze sygnałowym.
Uruchomienie i przetestowanie programu filtrowania sygnału użytecznego
zakłóconego składową harmoniczną.
6.2. Wprowadzenie
Projektując filtr cyfrowy zwykle mamy narzucone parametry charakterystyki
częstotliwościowej, a także wymagane jest, aby charakterystyka amplitudowa filtru
jw
j arg H (e )
j [ ]
H(e ) e mieściła się w zadanych granicach tolerancji. W niektórych
przypadkach dodatkowym warunkiem jest stała wartość opóznienia grupowego filtru
j
d arg[H(e )]
-
w zadanym przedziale częstotliwości.
d
Rys.6.1 przedstawia typowe parametry projektowe filtru: dolnoprzepustowego (DP),
środkowoprzepustowego (SP), górnoprzepustowego (GP) i środkowozaporowego.
jw
j arg H (e )
j [ ]
Charakterystyka amplitudowa H(e ) e powinna przebiegać między
zakreskowanymi granicami, wyznaczającymi przedziały tolerancji dla 0 d"  d" Ą .
Projektując filtr, należy tak dobrać charakterystykę amplitudową filtru liniowego
jw
j arg H0 (e )
j [ ]
stabilnego i przyczynowego, aby przybliżała ona funkcję H0 (e ) e = 1 w
jw
j arg H0 (e )
j [ ]
pasmie przepustowym i H0 (e ) e = 0 w pasmie zaporowym, nie
przekraczając dopuszczalnych wartości błędu 1 i 2. Można tego dokonać poprzez
jw jw
j arg H0 (e ) j arg H (e )
j [ ] j [ ]
aproksymację funkcji H0 (e ) e = 0 funkcją H(e ) e określonej
jw
j arg H (e )
j [ ]
klasy H(e ) e = H(z)
j
z=e
gdzie
b0 + b1z-1+...+bN z- N
H(z) =
1+ a1z-1+...+aM z- M
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 1 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
jest transmitancją, która dla układu liniowego i stacjonarnego ma zawsze postać
funkcji wymiernej zmiennej zespolonej z.
amplituda
amplituda
amplituda
amplituda
Rys.1 Przedziały tolerancji i przebieg charakterystyki amplitudowej filtru: a) dolnoprzepustowego DP
(lowpass - LP); b) środkowoprzepustowego (bandpass - BP) ; c) górnoprzepustowego GP (highpass -
BS).
Zadanie polega na poznaniu możliwości programu QDesign, a następnie
wyznaczeniu współczynników filtrów za pomocą tego programu. Drugim etapem
jest skonstruowanie i wczytanie do urządzenia EZBOX programu realizującego dany
filtr. W ćwiczeniu należy określić parametry widma zakłócenia i oddzielić sygnał
użyteczny, za pomocą filtru cyfrowego. Przeanalizować otrzymane przebiegi
czasowe i uzasadnić ich kształt.
6.3. Podstawy teoretyczne
6.3.1. Filtry IIR
Filtry IIR (infinite impulse response  filtry o nieskończonej odpowiedzi
impulsowej) są filtrami rekursywnymi, tzn. próbki odpowiedzi filtru są zależne od
poprzednich próbek sygnału wyjściowego, co oznacza, że filtry tego typu
zawierają pętlę sprzężenia zwrotnego. Jeżeli moglibyśmy dysponować dowolną
ilością próbek, możliwe byłoby osiągnięcie nieskończonej dokładności
wyznaczenia odpowiedzi impulsowej filtru.
Filtry rekursywne opisuje równanie:
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 2 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
M N
y kTs = u (k - m)Ts - y (k - n)Ts (1)
( ) ()()
"a "b
m n
m=0 n=1
a transmitancja ma postać
M M
1- ziz-1
()
"a z-m "
m
Y(z)
m=0 i=1
H(z) = = = K (2)
N N
U (z)
1+ z-n 1- pj z-1
()
"b "
n
n=1 j=1
przy czym K = a0.
W przypadku filtrów rekursywnych zarówno pj jak i zera zi transmitancji H(z)
są parametrami projektowymi [1].
6.3.2. Projektowanie filtru z zastosowaniem przekształcenia biliniowego.
Przekształcenie biliniowe polega na scałkowaniu równania różniczkowego
opisującego filtr analogowy i wyznaczeniu całek przez ich numeryczne przybliżenie.
Projektowanie filtrów cyfrowych metodą przekształcenia biliniowego polega na znalezieniu
transmitancji odpowiadającego mu filtru analogowego. Jeśli kryteria odwzorowania dla
przekształcenia biliniowego są spełnione, oznacza to, że zachowane są właściwości
charakterystyk częstotliwościowych filtrów analogowego i cyfrowego. Z faktu, że filtr
analogowy jest stabilny, wynika, że filtr cyfrowy także jest stabilny. Należy jedna zdawać
sobie sprawę z tego, że kształt charakterystyk obu filtrów (analogowego i cyfrowego) nie
jest identyczny. Na przykład, jeśli w pewnym przedziale częstotliwości a charakterystyka
narasta monotonicznie lub ma określoną liczbę maksimów, to również podobny charakter ma
charakterystyka filtru cyfrowego w odpowiadającym przedziale częstotliwości c.
Powodem zniekształcenia charakterystyk amplitudowej i fazowej jest nieliniowe przejście
między częstotliwością analogową a a cyfrową c.
W przykładzie posłużymy się równaniem pierwszego rzędu
d ya (t)
a1 + a0 ya (t) = b0x(t) (3)
d t
gdzie ya(t) jest pierwszą pochodną funkcji y(t)
dy(t)
# ś#
dś# ź#
# #
dt dy(t)
a1 + a0 = b0x(t) (4)
dt dt
t
d y()
y(t) = d  + y(t0 ) (5)
+"
d 
t0
( )
Przyjmijmy następujące granice całkowania t0 = n- 1 T oraz t = nT .
Wówczas możemy napisać
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 3 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
nT
d y()
( ) ( )
y nT = d  + y[ n- 1 T] (6)
+"
d 
(n-1)T
f(t)
1
y(nT) = y(n - 1) + T( y(n - 1) + y(n))
2
n - 1 n
t
T
Rys. 2 Zastosowanie metody trapezów do wyznaczania transmitancji filtru cyfrowego.
Stosując metodę trapezów do wyrażenia (6) otrzymujemy:
Ą#d ń#
T y(t) d y(t)
y(nT) = y[(n- 1)T] + ó# + Ą# (7)
2 d t d t
ó# Ą#
t =nT t =(n-1)T
Ł# Ś#
Wyznaczamy
d y(t) a0 b0
= - y(nT) + x(nT) y(n) = y(nT) oraz x(n) = x(nT) (8)
d t a1 b1
t =nT
Po podstawieniu do równania (7) i uwzględnieniu, że y(n) = y(nT) i x(n) = x(nT)
otrzymujemy
ż#
T a0 b0
y(n) - y(n - 1) = y(n) + y(n - 1) + x(n) + x(n - 1) (9)
#- [] []#
Ź#
2 a1 a1
# #
Do powyższego równania stosujemy przekształcenie Z
Ą#
T a0 b0 ń#
Y(z)(1- z-1) = (10)
ó#- Y(z)(1+ z-1) + a1 X (z)(1+ z-1)Ą#
2 a1
Ł# Ś#
Transmitancja filtru cyfrowego ma zatem postać
Y(z) b0
H(z) = = (11)
X (z) 2 1- z-1
a + a0
T 1+ z-1
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 4 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Wiedząc, że transmitancja filtru analogowego pierwszego rzędu opisana jest
równaniem
b0
H(s) = (12)
a1s + a0
możemy napisać ogólną zależność między transmitancjami H(z) i H(s)
21-z-1
H(z) = H(s) (13)
s=
T
1+z-1
Powyższego równania widać, że transmitancję H(z) otrzymano z H(s) przez
podstawienie
2 z - 1
s = (14)
T z + 1
Odwzorowanie biliniowe przekształca lewą półpłaszczyznę zmiennej s w okrąg
jednostkowy na płaszczyznie Z. [2]
Rys. 3 Transformacja biliniowa
Ponadto transformacja ta przekształca oś pulsacji ciągłych a w okrąg jednostkowy,
czyli w okrąg pulsacji dyskretnych d.
Jeśli ze wzorze
2 z - 1
s =
T z + 1
jdTs
podstawimy z = e i s = ja
to otrzymamy
aTs
# ś#
= 2 arctg (15)
ś# ź#
# #
2
2 
# ś#
a = tgś# ź# (16)
#
Ts # 2
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 5 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Dla przypadku równania różniczkowego N-tego stopnia, należy zauważyć, że równanie to
można przedstawić w postaci N równań różniczkowych pierwszego stopnia. Poniżej
zestawiono zależności algebraiczne pomiędzy s i z
2 1- z-1
s =
T 1+ z-1
sT
1-
2 - sT
2
z-1 = = (17)
sT
2 + sT
1+
2
2 + sT
z = (18)
2 - sT
Wykażemy teraz, że warunek dotyczący stabilności filtru jest spełniony. Przyjmijmy, że
s =  + j,  < 0. Możemy zatem napisać
2 + sT 2 + T + jT
z = = (19)
2 - sT 2 - T - jT
s=+ j
( )2 ( )2
2 + T + T
2
z = (20)
( -  + T
T)2 ( )2
2
Ponieważ  < 0 mianownik wyrażenia 20 jest zawsze większy niż jego licznik, skąd
wniosek, że |z| < 1, a więc lewa strona płaszczyzny s jest odwzorowywana we wnętrze
okręgu jednostkowego na płaszczyznie z.
Rys. 4 Zależność między częstotliwością analogową a a cyfrową  w przekształceniu biliniowym.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 6 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Rys. 5 Biliniowe przekształcenie charakterystyk częstotliwościowych.
Z rysunku wynika, że dla małych wartości a odwzorowanie jest niemalże liniowe,
jednak wraz ze wzrostem częstotliwości pojawia się nieliniowość. Z tego względu
przekształcenie biliniowe powinno się stosować do filtrów, których charakterystyka
amplitudowa jest płaska w najistotniejszym zakresie częstotliwości.
Rys. 6 Charakterystyki amplitudowe filtrów cyfrowych uzyskanych przez transformację biliniową;
a) dolnoprzepustowego filtru Cauera1 szóstego rzędu b) górnoprzepustowego filtru Cauera
piątego rzędu.
1
Filtry Cauera zobacz: rozdz. Filtry eliptyczne [4] oraz Projektowanie rekursywnych filtrów cyfrowych [1]
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 7 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Przykład 1.1
Wykorzystując przekształcenie biliniowe wyznaczyć transmitancję cyfrowego filtru
dolnoprzepustowego Butterwortha o następujących parametrach:
tłumienność 3 dB przy pulsacji granicznej pasma przepustowego dp = 0,4 Ą rad/s
tłumienność 15 dB przy pulsacji 2 dp,
okres próbkowania Ts = 50 źs.
dp  znormalizowana pulsacja sygnału spróbkowanego (tu: filtru
dolnoprzepustowego)
ROZWIZANIE
Korzystając z zależności (13) wyznaczamy odpowiednie parametry filtru
referencyjnego
2 d
a = tg
Ts 2
2 d 2 04Ą
,
ap = 3dB = tg = tg = 29,1 103 rad / s
Ts 2 50 10-6 2
2dp 2 2 0,4Ą
2
az = 15dB = tg = tg = 123,1 103 rad / s
Ts 2 50 10-6 2
Ze wzoru na tłumienność filtru Butterwortha, wyznaczamy
1
- 10log e" 15
2 N
# ś#
15dB
1+ ś# ź#
3dB
# #
określamy rząd N filtru
2N
# ś#
123,1 103
1+ ś# ź# e" 31,62
# 29,1 103 #
N e" 118
,
Zatem minimalny rząd filtru referencyjnego spełniający zadane kryteria jest równy
N =2. Korzystając ze wzoru
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 8 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
2 1
Ha ( ja ) =
N
## a ś# 2 ś#
ś#ś# ź# ź#
1+
ś#ś# ap ź# ź#
## # #
obliczmy znormalizowaną transmitancję tego filtru, która jest wyrażona wzorem
1
Han (s) =
s2 + 1,414s + 1
Transmitancja filtru analogowego o obliczonej pulsacji granicznej pasma
przepustowego 3dB jest zatem równa
# ś#
s # s ś# 1
Ha (s) = Han ś# ź# = Han = =
ś# ź#
3dB # #
# # 29,1 103 # s ś# 2 # 1,4142s ś#
+ + 1
ś# ź# ś# ź#
# # # #
29,1 103 29,1 103
2
(29,1 103)
=
2
s2 + 41,1532 103 s + (29,1 103)
Transmitancję filtru cyfrowego wyznaczamy korzystając z przekształcenia
biliniowego
29,1 106
Hd (z) = Ha (z) 2 z-1 = =
2
s= 2
Ts z+1
# ś# - 1) # ś# - 1)
2 (z 2 (z
ś# ź# + 41,1532 103ś# ź# + 29,12 106
Ts + 1)2 Ts (z + 1)
# # # #
(z
2,117 + 4,234z-1 + 2,117z-2
=
10,232 - 3,766z-1 + 2,002z-2
Rys. 7 Charakterystyka cyfrowego filtru Butterwortha drugiego rzędu.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 9 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
6.3.3. Programowa realizacji filtru IIR z wykorzystaniem sekcji bikwadratowych
Sekcja bikwadratowa IIR drugiego rzędu jest reprezentowana przez następującą funkcję:
Y(z) B0 + B1z-1 + B2z-2
H(z) = =
X (z) 1+ Az-1 + Az-2
1
gdzie:
A1, A2, B0, B1, B2 są współczynnikami, które określają żądaną odpowiedz impulsową H(z).
Odpowiadające temu równanie różnicowe sekcji bikwadratowej jest następujące:
Y(n) = B0 X (n) + B1 X (n - 1) + B2 X (n - 2) - A1Y(n - 1) - A2Y(n - 2)
Filtry wyższego rzędu mogą być konstruowane przez kaskadowe połączenie wielu sekcji
bikwadratowych i ich parametryzację odpowiednimi współczynnikami. Sekcje
bikwadratowe mogą być skalowane oddzielnie a dopiero pózniej łączone w kaskadę, aby
zminimalizować błąd kwantyzacji współczynników a tym samym utratę dokładności
przetwarzania. Należy pamiętać, że przy filtrach wysokich rzędów, w wyniku ograniczonej
szerokości słowa maszynowego procesora może nastąpić znaczny spadek dokładności.
Procedura implementująca filtr IIR wyższego rzędu przedstawiona jest poniżej.
Bufor okrężny w pamięci programu zawiera przeskalowane współczynniki sekcji
bikwadratowych. Są one zapamiętane w kolejności: B2, B1, B0, A2, A1 dla każdej sekcji.
Grupy współczynników sekcji bikwadratowych muszą być zapamiętane w takiej kolejności
w jakiej zostały połączone w kaskadę w sekcje bikwadratowe.
.MODULE biquad_sub;
{
Kaskadowa realizacji filtru IIR
Parametry wywołania
SR1 = próbka wejściowa
I0 --> wskaznik bufora linii opózniającej
L0 = 0
I1 --> lista współczynników skalujących dla każdej sekcji
L1 = 0 (w przypadku pojedynczej sekcji)
L1 = liczba sekcji bikwadratowych
I4 --> przeskalowane współczynniki b2,b1,b0,a2,a1, b2,b1,b0,a2,a1,...
L4 = 2.5 * rząd filtru --lub-- 5 * liczba sekcji
M0,M4 = 1
M1 = -3
M2 = 1 (w przypadku wielu sekcji)
M2 = 0 (w przypadku jednej sekcji)
M3 = (1 - długość bufora opózniającego)
CNTR = liczba sekcji bikwadratowych
Zwracane wartości
SR1 = próbka wyjściowa
I0 --> wskaznik bufora linii opózniającej
Używane rejestry
MX0,MX1,MY0,MR,SE,SR
Czas obliczeń
ADSP-2101/2102: 8 * liczba sekcji bikwadratowych + 5 + 5
cykli maszynowych
ADSP-2100/2100A: 8 * liczba sekcji bikwadratowych + 5 cykli
Wszystkie współczynniki oraz dane wejściowe i wyjściowe są w formacie 1.15
}
.CONST N = 3; { liczba sekcji bikwadratowych, tu: 3 }
.CONST N_x_5 = 15;
.VAR/DM delayline[4]; { linia opózniająca }
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 10 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
.VAR/DM scalelist[N]; { współczynniki skalujące każdej sekcji bikwadratowej }
.VAR/PM coefflist[N_x_5]; { bufor ze współczynnikami filtru }
.ENTRY biquad;
biquad: I0=^delayline;
DO sections UNTIL CE;
SE=DM(I1,M2);
MX0=DM(I0,M0), MY0=PM(I4,M4); {pobierz x(n-2), b2}
MR=MX0*MY0(SS), MX1=DM(I0,M0), MY0=PM(I4,M4); { pobierz x(n-1), b1}
MR=MR+MX1*MY0(SS), MY0=PM(I4,M4); { pobierz b0}
MR=MR+SR1*MY0(SS), MX0=DM(I0,M0), MY0=PM(I4,M4); { pobierz y(n-2), a2}
MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M4); { pobierz y(n-1), a1}
DM(I0,M0)=MX1, MR=MR+MX0*MY0(RND); {zapamiętaj x(n-1) jako nowe x(n-2)}
sections: DM(I0,M0)=SR1, SR=ASHIFT MR1 (HI); {zapamiętaj x(n) jako nowe x(n-1)}
DM(I0,M0)=MX0;
DM(I0,M3)=SR1;
RTS;
.ENDMOD;
Przykład 1.2
Poniżej opisano poszczególne etapy zaprojektowania filtru o parametrach podanych
w przykładzie 1.1 posługując się programem  QDesign .
1. Uruchomić program FDAS2k1, pojawi się wówczas główne okno QDesign
UWAGA OGÓLNA
We wszystkich oknach programu poruszamy się przy pomocy kursorów strzałek
na klawiaturze, a ustawienia w poszczególnych oknach zatwierdzamy
klawiszem F10 lub F1. Naciśnięcie klawisza Esc powoduje cofnięcie do
poprzedniego okna.
2. Przy pomocy kursora strzałki na klawiaturze zaznaczyć pozycję IIR Filter
Design /edytor filtrów IIR/; zatwierdzić klawiszem F10.
3. W oknie Infinite Impulse Response Filter Design Menu /Menu
edytora filtrów o nieskończonej odpowiedzi impulsowej/ wpisać:
" Filter Design Method  1  Bilinear Transformation
/Metoda tworzenia filtru  transformacja biliniowa/
" Filter Type  1  Lowpass /Typ filtru  dolnoprzepustowy/
" Frequency Mode  R  Radians/second /w obliczeniach bierze
udział pulsacja w rad/sek/
Zatwierdzić wpisane parametry klawiszem F10.
4. W następnym oknie wpisujemy:
" Sampling Frequency /częstotliwość próbkowania/  125600 Hz
" Passband Frequency /częstotliwość (pulsacja) graniczna pasma
przepustowego/  0,4 rad/sek
" Stopband Frequency /częstotliwość (pulsacja) graniczna pasma
tłumionego/  0,8
" Passband Ripple (dB) maximum attenuation /tłumienność
w pasmie przepustowym, wartość maksymalna/  3
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 11 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
" Stopband Ripple (dB) minimum attenuation /tłumienność
w pasmie zaporowym, wartość minimalna/  15
Ustawienia zatwierdzamy naciskając F10.
5. Wybieramy filtr analogowy typu Butterwortha  1
Rząd filtru wpisujemy 2 ponieważ w wersji dla studentów możliwe jest
projektowanie filtrów dolno i górnoprzepustowych, których rząd jest mniejszy
od 7.
Zatwierdzamy  F10.
6. W oknie Select Desired Plots można ustalić, jakie parametry mają być
przedstawione na wykresie, bądz wydrukowane, jednak w naszym przypadku nie
będziemy korzystać z wykresów, a więc wciskamy klawisz F10.
7. Okno Select Desied Options. Wpisujemy  x w odpowiednie pola
zaznaczając w ten sposób:
" Save Filter Specifications  zachowaj specyfikację filtru o
podanych parametrach.
" Quantize Filter Coefficiention  podaj współczynniki filtru
kwantyzacji.
" Create Filter Coefficient File  utwórz plik współczynników
filtru.
Klawiszem F10 zatwierdzamy.
8. Enter File Names for Coefficient File  w oknie tym należy
wpisać nazwę pliku do zapisania parametrów filtru oraz nazwę pliku ze
współczynnikami. Domyślna nazwą pliku z opisem filtru jest SPEC.SPC, a pliku
ze współczynnikami COEFF.FLT.
Zatwierdzamy  F10
9. W następnym oknie wpisujemy:
" Number of Significant Bits /liczbę znaczących bitów/  16
(ustawienie domyślne)
" Quantization Type /rodzaj kwantyzacji/  Fixed Point
Fractional Quantization /stałoprzecinkowa kwantyzacja ułamkowa/
" Realization Type /typ realizacji/  1  Cascaded Transposed
second order sections /Transponowane sekcje II rzędu w kaskadzie/
Nacisnięcie klawisza F10 wywołuje obliczenia.
10. Naciskając kilkakrotnie klawisz Esc powracamy do okna głównego QDesign.
Jeżeli wskażemy kursorem polecenie Read Filter Specyfication File i
nacisniemy Enter pojawi się lista dostępnych plików z parametrami filtrów. Jeśli
chcemy wyedytować utworzony wcześniej plik, należy wpisać jego numer.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 12 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
11. W oknie głównym wybieramy pozycję ADSP 2100 Code Generator. W ten
sposób program QDesign utworzy gotowy plik ze współczynnikami filtru,
zapisanymi w formacie akceptowanym przez procesor sygnałowy.
12. Chcąc sprawdzić czy poprawnie został zapisany plik ze współczynnikami,
należy w oknie List of Available Filter Coefficient Files wpisać numer,
przypisany plikowi z odpowiednią nazwą.
Zatwierdzamy klawiszem F10.
13. Wychodzimy z programu naciskając w oknie głównym klawisz Esc i F10.
W efekcie działania programu QDesign otrzymujemy plik kodu zródłowego *.dsp
na procesor sygnałowy ADSP2100 i plik ze współczynnikami filtru *.dat.
Na podstawie tych plików program Filter Wizard wygeneruje kod projektu filtru,
który będzie można potem wczytać do programu DSP Studio.
1. Uruchomić program studio.exe
2. Z menu Narzędzia wybieramy polecenie Filter Wizard.
Rys. 8 Okno kreatora kodu dla procesora ADSP  Filter Wizard.
3. W oknie Filter Wizard wpisujemy nazwę katalogu docelowego (jeśli katalog
o wpisanej nazwie nie istnieje w systemie zostanie on utworzony automatycznie)
lub wybieramy przyciskiem już istniejący katalog.
4. Wpisujemy nazwę dla tego projektu (maksymalnie 9 znaków, mogą one zawierać
polskie znaki) i naciskamy przycisk Generuj kod... . Pojawia się wtedy okno
Otwórz, w którym należy wskazać nazwę pliku zródłowego (program QDesign
domyślnie zapisuje pliki te we własnym katalogu, nadając im rozszerzenie
*.dsp). Jeśli plik *.dsp został poprawnie przekonwertowany, należy zamknąć
okno Filter Wizard i przejść do okna DSP Studio.
5. Z menu Projekt wybrać plecenie Odczytaj projekt i w oknie Otwórz wskazać
ten plik (ma on rozszerzenie *.prj). W naszym przykładzie będzie to plik
proj1.prj umieszczony w katalogu D:\aqq. Nacisnąć przycisk Otwórz.
6. Struktura projektu, a więc pliki danych, pliki zródłowe powiązane z tym
projektem prezentowane są po lewej stronie w postaci drzewka.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 13 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Rys. 9 Przykładowa struktura projektu utworzonego w programie DSP Studio.
7. Dwukrotne kliknięcie myszką na pozycji z nazwą dowolnego elementu drzewka
projektu wyświetla po prawej stronie część kodu realizującą wskazany element.
Na przykład dwukrotne kliknięcie myszką na pozycji
projekt/zródła/codec/start powoduje wyświetlenie fragmentu kodu
odpowiedzialnego za skonfigurowanie kodeka (przetwornika A/C).
Rys. 10 Fragment kodu inicjującego działanie kodeka.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 14 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
8. Skompilować projekt za pomocą polecenia menu Projekt / Kompiluj cały
projekt. Zamknąć okno Kompilacja  przycisk Zamknij. stałych systemowych
(rozszerzenie *.k) lub danych (rozszerzenie *.dat). Wybieramy typ pliku
 dane; zostaną wówczas wyświetlone dostępne pliki z danymi. Następnie
wpisujemy nazwę odpowiedniego pliku np. COEFF.DAT (nazwą pliku COEFF.*
będziemy posługiwać się jako przykładem)
9. Postępując podobnie wczytujemy pliki
10. W wyświetlonym oknie wpisujemy nazwę odpowiedniego pliku ze
współczynnikami, które pochodzą z programu QDesign. Tylko pliki ze
zródłami mającymi rozszerzenie *.dsp mogą być wczytane przez DSP Studio.
11. Jeśli chcemy sprawdzić, czy plik ze zródłami został wczytany poprawnie,
wystarczy dwukrotnie kliknąć myszką w drzewie wyświetlonym po lewej
stronie pozycję zródła/COEFF.DSP
6.3.4. Filtry FIR
Filtry FIR (finite impulse response - o skończonej odpowiedzi impulsowej) są
filtrami nierekursywnymi, czyli takimi, dla których odpowiedz filtru nie zależy
od poprzednich próbek, a jedynie od próbek wymuszenia. Równanie różnicowe
odpowiedzi filtru ma postać:
M
( )
y kTs = amu k - m Ts (21)
( ) ()
"
m=0
gdzie: am  stała, Ts  okres próbkowania, współczynniki am, m. = 0, 1, ... , M są
bezpośrednio próbkami odpowiedzi impulsowej, tzn.
h kTs = a0, a1, ... aM (22)
( ) ( )
{ }
Z równania (21) wynika, że transmitancje filtrów FIR są wielomianami zmiennej z-1
i mają postać:
M M M
H(z) = z-m = mTs z-m = K 1- zmz-1 (23)
( ) ()
"a "h "
m
m=0 m=0 m=1
( )
przy czym K = a0 = h 0
6.3.5. Projektowanie filtru metodą okien
Najbardziej bezpośrednim podejściem do projektowania filtrów o skończonej odpowiedzi
impulsowej jest obcinanie ciągu stanowiącego nieskończoną odpowiedz impulsową. Jeżeli
założymy, że Hd(ej) opisuje pożądaną charakterystykę częstotliwościową, wówczas mamy
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 15 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
"
j
Hd (e ) = (n) e- jn (24)
"h
d
n=-"
gdzie hd(n) jest ciągiem próbek pożądanej odpowiedzi impulsowej, tj.
Ą
1
j jn
hd (n) = Hd e e d  (25)
( )
+"
2Ą
-Ą
W szczególności Hd(ej) filtrów pasmowych może mieć kształt odcinków poziomych
z nieciągłościami na granicach pasm. W takim przypadku ciąg hd(n) ma
nieskończony czas trwania, dlatego ucięcie jest jednym ze sposobów otrzymania
skończonej w czasie przyczynowej odpowiedzi impulsowej, otrzymujemy zatem
ciąg
hd (n), 0 d" n d" N -1
ż#
h(n) =
#0
w pozostałych przypadkach
#
Ogólnie h(n) można przedstawić jako iloczyn wzorcowej odpowiedzi impulsowej
oraz  okien o skończonym czasie trwania, tzn.
h(n) = hd (n)w(n)
Przykłady najczęściej stosowanych okien przedstawiono poniżej.
Prostokątne
Załóżmy, że żądaną charakterystykę Hd można rozwinąć w szereg Fouriera
"
j
Hd (e ) = hd (n)e- jn (26)
"
n=-"
Gdzie hd(n) ma postać zapisaną wzorem (35)
ierwszym przybliżeniem transmitancji filtru FIR może być częściowa suma szeregu Fouriera.
Dla nieparzystego n zapiszemy to następująco:

h(n) = hd (n)wN (n) (27).
gdzie
N-1 N-1
ż#
1
# - d" n d"
wn (n) = 2 2 (28)
#
#0 dla pozostałych n
#
Ciąg wn określony wzorem (28) nazywany jest oknem prostokątnym.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 16 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Jako przykład na rys 6.15 zamieszczono charakterystykę impulsową idealnego filtru
dolnoprzepustowego obciętą do 51 próbek, tzn. wyciętą oknem prostokątnym
o długości 51 próbek.
Rys. 11 Odpowiedz impulsowa uzyskana przez wycięcie oknem prostokątnym 51 próbek odpowiedzi
impulsowej idealnego filtru dolnoprzepustowego o pulsacji granicznej (znormalizowanej) pasma
przepustowego
=Ą 2
Rys. 12 Tłumienność filtru o odpowiedzi impulsowej z rysunku 6.15.
Na rysunku 6.16 pokazano zaś przebieg odpowiadającej jej tłumienności.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 17 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Trójkątne (Bartletta)
Okno trójkątne (Bartletta) dla filtru FIR rzędu M. opisane jest wzorem
2k
ż#
dla 0 d" k < M
#
M
#
M
 kTs = 2 - dla d" k < M (29)
( )# 2k
#
M 2
#
0 dla pozostałych k
#
#
#
Okno Bartletta powoduje wyrazną poprawę do ponad 25 dB odstępu pomiędzy
pasmem przepustowym a zaporowym (rysunek 6.17).
Rys. 13 Przykładowe okna o długości 51 próbek: (a) okno Barletta i okno Hanninga, (b) okno
Hamminga i okno Blackamna.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 18 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Hanninga
Okno Hanninga definiuje następujący wzór
1 Ą# 2Ąk ń#
# ś#
 kTs = cosś# ź# 0 d" k < M (30)
( )2 ó#1- # M # Ą#,
Ł# Ś#
Dzięki zastosowaniu tego okna odstęp pomiędzy pasmem przepustowym a
zaporowym wzrasta już do ponad 40 dB (rys.6.18)
ż#
# ś#
2n
# ś#
ź#
# Is ś# 1- ś# ź#
ś#
#
N - 1 # ź#
#
1- N N - 1
 kTs = d" n < (31)
( )# #
#
2 2
I0()
#
#
#
gdzie I0 wynosi
"
x2k
I0 (x) = (32)
"
2
( )
22k k!
k =0
Rys. 14 Tłumienność filtru o odpowiedzi impulsowej otrzymanej prze pomnożenie odpowiedzi idealnej
przez okno Barletta o długości 51 próbek.
Parametr  ustala kompromisowy wybór między minimalnym tłumieniem w paśmie
zaporowym a szerokością pasma przejściowego. W tabeli 1 przedstawiono możliwe
do osiągnięcia minimalne tłumienie dla różnych wartości parametru  oraz
przybliżoną szerokość pasma przejściowego. [2]
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 19 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Tabela 1 Wpływ parametru  na minimalne tłumienie i szerokość pasma przejściowego.
Minimalne tłumienie Szerokość pasma przejściowego

w paśmie zaporowym
w dB
2,12 -30 1,5/N
3,384 -40 2,23/N
4,538 -50 2,93/N
5,658 -60 3,62/N
6,764 -70 4,32/N
7,865 -80 5/N
8,96 -90 5,7/N
10,056 -100 6,4/N
Ponieważ ciąg o nieskończonym czasie trwania można przedstawić za pomocą jego
dyskretnej transformaty Fouriera, stąd wynika, że filtr o nieskończonej odpowiedzi
impulsowej również posiada reprezentację w postaci próbek częstotliwościowych
N -1
~
H(k) = H(z) = h(n) e- j(2Ą/ N )kn k = 0,1, ...., N -1 (33).
j ( 2 Ą / N ) k "
z=e
n=0
H(z) może być także przedstawione w postaci
~
1- e- jN N -1 H(k)
H(z) = (34)
"1- e e-
j(2Ą/ N )k j
N
k =0
jt
Jeżeli podstawimy z = e , wówczas charakterystykę częstotliwościową można zapisać
w postaci
~
jN -1
N
j
H e =
( )1- e
"1- e H(k)
j(2Ą/ N )k j
N e-
k =0
Ą# 2Ą k ń#
# ś#
(35)
sinó#N  - ź#
ś#
Ą#
ś# ź# #
e- j[( N -1)/2] N -1 ~ jĄk #1- 1 ś# Ł# # N 2
Ś#
# #
N
= H(k)e
"
N
Ą# 2Ą k ń#
# ś#
k =0
sinó#  - ź#
ś#
Ą#
Ł## N # 2 Ś#
Tak zapisane równanie pozwala zaprojektować filtr na podstawie znajomości próbek
w obrębie jednego okresu pożądanej charakterystyki częstotliwościowej
2Ą
Ą# ń#
j k
~
H(k) = Hd ó#e N Ą#, k = 0, 1, ..., N -1 (36)
Ł# Ś#
której punkty nieciągłości interpolowane są funkcją opisaną równaniem (44).
Jako przykład przedstawiono poniżej charakterystykę idealnego filtru dolnoprzepustowego,
Ą
który ma częstotliwość graniczną  = .
2
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 20 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
j
Charakterystyka Hd (e ) została wyznaczona dla 33 próbek. Na rysunku widać, że moduł
charakterystyki częstotliwościowej jest określony w punktach będących wielokrotnościami
wartości 2Ą/33 rad, przy częstotliwości granicznej c = Ą/2 leżącej pomiędzy  = 16Ą/33
i 18Ą/33 rad. Przyjęto, że charakterystyka fazowa jest liniowa, a opóznienie wynosi (N-1)/2
próbek. Odpowiedz impulsową filtru otrzymuje się za pomocą odwrotnego dyskretnego
przekształcenia Fouriera, tj.
N -1 2Ą
ż# 1 j kn
~
N
H(k) e , n = 0, 1, ..., N -1
#
"
N
h(n) =
#
k =0
#0,
dla pozostałych n
#
Obliczoną w ten sposób charakterystykę częstotliwościową filtru pokazano na rysunku 6.20.
Kropki w pasmie przepustowym oznaczają położenia próbek, w pasmie zaporowym
odpowiadają one próbkom o nieskończenie wielkim tłumieniu.
Rys. 15 Wybrane próbki z charakterystyki częstotliwościowej idealnego filtru dolnoprzepustowego.
Przykład 3
Przy pomocy programu QDesign zaprojektować filtr cyfrowy typu FIR
o następujących parametrach: przyjąć częstotliwość próbkowania 8kHz, pasmo
przepustowe 100 Hz , pasmo zaporowe 150 Hz, tłumienie w paśmie zaporowym 90
dB, w paśmie przepustowym 1dB.
1. Uruchomić program FDAS2k1, pojawi się wówczas główne okno QDesign
2. Przy pomocy kursora strzałki na klawiaturze zaznaczyć pozycję FIR Filter
Design width Windows /edytor filtrów FIR z zastosowaniem metody
okien/; zatwierdzić klawiszem F10.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 21 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
Rys. 16 Skutek umieszczenia pojedynczej próbki w pasmie przejściowym a) H1 = 0 brak próbki,
b) H1 = 0,5 H1 = 0,3904
3. W oknie Finite Impulse Response Filter Design Menu /Menu
edytora filtrów o skończonej odpowiedzi impulsowej/ wpisać:
" Filter Type  1  Lowpass /Typ filtru  dolnoprzepustowy/
" Frequency Mode  H Hertz /w obliczeniach bierze udział
pulsacja w Hz/
Zatwierdzić wpisane parametry klawiszem F10.
4. W następnym oknie wpisujemy:
" Sampling Frequency /częstotliwość próbkowania/  8000
" Passband Frequency /częstotliwość (pulsacja) pasma przepustowego/ 
100
" Stopband Frequency /częstotliwość (pulsacja) pasma tłumionego/  150
" Passband Ripple (dB) maximum attenuation /tłumienność przy
pulsacji pasma przepustowego, wartość maksymalna/  1
" Stopband Ripple (dB) minimum attenuation /tłumienność przy
pulsacji pasma tłumionego, wartość minimalna/  90
Ustawienia zatwierdzamy naciskając F10.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 22 -
Laboratorium Cyfrowego Przetwarzania Sygnałów
5. Select Desired Window Function /wybierz odpowiedni rodzaj okna/ 
1  prostokątne.
Enter Number of Tabs Desired /wprowadz ilość  pułapek /  np. 40
ponieważ wersja dla studentów ma ograniczenie do maksymalnie 65  pułapek .
Zatwierdzamy  F10.
6. W oknie Select Desired Plots można ustalić, jakie parametry mają być
przedstawione na wykresie, bądz wydrukowane, jednak w naszym przypadku nie
będziemy korzystać z wykresów, a więc wciskamy klawisz F10.
7. Okno Select Desied Options. Wpisujemy  x w odpowiednie pola
zaznaczając w ten sposób:
" Save Filter Specifications  zachowaj specyfikację filtru
o podanych parametrach.
" Quantize Filter Coefficiention  podaj współczynniki filtru
kwantyzacji.
" Create Filter Coefficient File  utwórz plik współczynników
filtru.
Klawiszem F10 zatwierdzamy.
8. Enter File Names for Coefficient File  w oknie tym należy
wpisać nazwę pliku do zapisania parametrów filtru oraz nazwę pliku ze
współczynnikami, np. FIR1.SPC, a pliku ze współczynnikami FIR.FLT.
Zatwierdzamy  F10
Dalej postępujemy identycznie jak w przypadku projektu filtru IIR, a więc plik, który
powstał w programie QDesign przy użyciu programu Filter Wizard konwertujemy do
postaci projektu. Projekt ten zostanie następnie wczytany przez DSP Studio i tam
skompilowany, po czym załadowany poprzez loader EZ Kit Lite, do procesora
sygnałowego.
Ćwiczenie 6  Filtrowanie sygnałów akustycznych przez procesor sygnałowy - 23 -


Wyszukiwarka

Podobne podstrony:
dsp spis tresci
Instrukcja DSP 93S Digitex
lab8 analiza mat I
lab8 z
htexte dsp ur
upII lab8
DSP 06 z transformata
DSP A3090
DSP A780
lab8 przyklad
dsp pytania
lab8 NHIP
lab8 listing
Laboratorium lab8

więcej podobnych podstron