9. Realizacja projektowanie i pomiary filtrów FIR

Transkrypt

9. Realizacja projektowanie i pomiary filtrów FIR
66
9. Realizacja projektowanie i pomiary filtrów FIR
Cele ćwiczenia

Zapoznanie ze sposobem realizacji filtrów FIR na platformie
TMX320C5515 eZdsp.

Zapoznanie z procedurą projektowania filtru FIR przy pomocy programu
MATLAB i eksportu wyników do Code Composer Studio.

Projektowanie, realizacja i pomiary filtrów o różnych charakterystykach
amplitudowych.
Struktura filtrów FIR
Filtry FIR (ang. Finite Impulse Response) są filtrami o skończonej
odpowiedzi impulsowej. W filtrach FIR nie występuje sprzężenie zwrotne i filtry te
są stabilne. Próbki sygnału wyjściowego filtru FIR są obliczane, jako średnia
ważona próbek sygnału wejściowego, wagami są współczynniki filtru h[k], k = 0,
1, …, N − 1, gdzie N jest rzędem filtru.
Próbki sygnału wyjściowego filtru FIR można obliczać na podstawie wzoru
N 1
y[n]   h[k ]x[n  k ] , n = 0, 1, 2, … ,
( 8.1)
k 0
gdzie:
x[n] – sygnał wejściowy,
y[n] – sygnał wyjściowy,
h[n] – odpowiedź impulsowa filtru – współczynniki filtru,
N – długości odpowiedzi impulsowej – rząd filtru.
Powyższy wzór realizuje dyskretny splot sygnału x[n] z odpowiedzią impulsową
filtru h[n]. Splot jest łatwo realizowalny programowo i układowo. Rysunek 8.1
67
przedstawia graficzną reprezentację wzoru (8.1); z−1 oznacza tu opóźnienie
jednostkowe.
x[n]
h[0]
z−1
x[n−1]
h[1]
x[n−2]
z−1
h[2]
z−1
x[n−N+2]
h[N−2]
z−1
x[n−N+1]
h[N−1]
y[n]
+
+
+
+
Rys. 8.1. Graficzna reprezentacja splotu (8.1), struktura filtru FIR
Przedstawiona graficzna reprezentacja splotu jest podstawą układowej realizacji
filtru FIR zawierającej N − 1 układów opóźniających, N układów mnożących oraz
N dwuwejściowych sumatorów, które można zastąpić jednym N wejściowym
sumatorem. Współcześnie układowo realizuje się filtry cyfrowe przede wszystkim,
jako dedykowane układy scalone.
Realizacja programowa filtru FIR na TMX320C5515 eZdsp
Do realizacji filtru FIR przez procesory rodziny TMS320C55x można
wykorzystać funkcje z biblioteki TMS320C55x DSP Library. Najprościej jest
skorzystać z funkcji FIR o nagłówku
ushort fir(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx,
ushort nh)
gdzie: x[nx] – wskaźnik do tablicy nx rzeczywistych próbek wejściowych,
h[nh] – wskaźnik do tablicy nh rzeczywistych współczynników filtru,
r[nx] – wskaźnik do tablicy nx rzeczywistych próbek wyjściowych,
dbuffer[nh+2] – wskaźnik do bufora, w którym zapisywane są przeszłe
próbki sygnału wejściowego,
nx – wymiar tablicy próbek wejściowych,
nh – rząd filtru równy wymiarowi tablicy współczynników filtru.
68
funkcja zwraca wartość = 0, jeśli nie nastąpiło przepełnienie i wartośc = 1,
gdy przepełnienie wystąpiło.
Koszt wywołania funkcji fir wynosi nx * (2 + nh) + 25 taktów zegara.
Współczynniki filtru zapisane w tablicy h trzeba w dowolny sposób obliczyć
i zapisać w kodzie języka C, najwygodniej jako plik nagłowkowy. Istnieje wiele
programów projektujących filtry FIR i zapisujących obliczone współczynniki filtru
w pliku nagłówkowym języka C, który następnie można wykorzystać w programie.
Jednym z rozwiązań jest wykorzystanie narzędzia fdatool środowiska MATLAB,
które pozwala na zaprojektowanie filtru i zapisanie wyników w wielu formatach.
W celu zapisania wyniku projektu w pliku nagłówkowym z menu fdatool należy
wybrać Targets > Generate C header … następnie w oknie dialogowym nadać
nazwę tablicy współczynników filtru i stałej określającej rząd filtru oraz wybrać
docelowy format współczynników.
MATLAB
wykonuje
obliczenia
na
liczbach
zmiennoprzecinkowych
podwójnej precyzji, tak obliczone współczynniki są efektem projektu filtru
i wykresy charakterystyk są obliczone na podstawie tych współczynników. Danymi
dla funkcji fir są współczynniki filtru zapisane w formacie Q1.15 i w takim
formacie powinny być zapisane w pliku nagłówkowym. Konwersja z formatu
double na Q1.15 polega na wymnożeniu współczynników zmiennoprzecinkowych
przez 215 i zaokrągleniu wyników do liczb całkowitych. Duża utrata cyfr
znaczących, w wyniku konwersji, może spowodować zmianę charakterystyk filtru.
Wpływ kwantyzacji współczynników na charakterystyki filtrów można ocenić
klikając ikonę Set quantization parameters – trzecia od góry u dołu po lewej
stronie przypominająca schody, ikona pojawia tylko wtedy, gdy wykupiony jest
odpowiedni Toolbox. Po wprowadzeniu formatu współczynników na wykresach
pojawią się charakterystyki filtru przed i po kwantyzacji.
Plik nagłówkowy ze współczynnikami filtru należy dołączyć do projektu.
Pliki
współczynników
uzyskane
różnymi
programami
często
należy
69
zmodyfikować, aby dopasować je do wymogów projektu, dotyczy to między
innymi plików stworzonych przez fdatool.
W bieżącym ćwiczeniu będzie wykorzystywany program FIR, który realizuje
jednocześnie dwa filtry FIR, jeden w kanale lewym drugi w kanale prawym.
W programie są cztery pary filtrów przełączane przyciskami. Współczynniki
filtrów zapisane są w plikach nagłówkowych o nazwach od FIR_1.h do FIR_8.h.
Na listingu 8.1 przedstawiono przykładowy plik nagłówkowy FIR_1.h zawierający
współczynniki filtrów.
Listing 8.1. Przykładowy plik nagłówkowy FIR_1.h zawierający współczynniki filtrów
#define N_1 6
DATA H_1[6] = {354, 2582, -995, -810, -307,
725};
Przyjęto konwencję, że w pliku FIR_x.h rząd filtru oznaczono jako N_x a tablicę
współczynników jako H_x. Szybkość próbkowania ustawiona jest na 48 kHz.
Doświadczenie 8.1. Projekt i realizacja filtrów FIR – program FIR.
1. Uruchomić program FIR i przyrząd Charakterystyki.
2. Pomierzyć charakterystyki 8 filtrów realizowanych przez program.
3. Zaprojektować narzędziem fdatool zadane przez prowadzącego zajęcia filtry
FIR.
4. Zapisać współczynniki filtrów jako pliki nagłówkowe w katalogu projektu –
zastępując dowolne z istniejących plików od FIR_1.h do FIR_8.h.
5. Dokonać zmian w nowych plikach, na podstawie listingu 8.1.
6. Skompilować i uruchomić program.
7. Pomierzyć charakterystyki amplitudowe zaprojektowanych filtrów.
W sprawozdaniu:
1. Podać parametry projektowe filtrów, łącznie z typem zastosowanego okna.
70
2. Porównać pomierzone charakterystyki amplitudowe zaprojektowanych filtrów
z charakterystykami obliczonymi przez program MATLAB, z uwzględnieniem
kwantyzacji współczynników.

Podobne dokumenty