Ćwiczenie nr 16
Cyfrowe przetwarzanie sygnałów pomiarowych
SPIS TREŚCI
1. Informacja ogólna o ćwiczeniu 2
2. Instrukcja wykonania ćwiczenia 3
2.1 program demonstracyjny 3
2.2 wybór okna czasowego 3
2.3 generacja sygnałów testowych 4
2.4 zaprojektowanie filtru separującego 5
2.5 zaprojektowanie filtru odszumiającego 5
2.6 filtracja i analiza widmowa sygnałów rzeczywistych 6
2.7 filtracja harmonicznych przebiegu prostokątnego 6
3. Informacja ogólna o oprogramowaniu 7
3.1 opis całego systemu 7
3.2 generowanie sygnałów testowych 8
3.3 projektowanie filtru cyfrowego 9
3.4 testowanie filtru na komputerze PC 10
3.5 testowanie filtru na procesorze sygnałowym 11
3.6 edytor tekstu 12
4. Podstawy teoretyczne 13
4.1 oznaczenia 13
4.2 rodzaje transformat Fouriera 13
4.3 splot sygnałów analogowych - filtracja analogowa 14
4.4 splot sygnałów cyfrowych - filtracja cyfrowa 14
4.5 wymnożenie dwóch sygnałów cyfrowych 15
4.6 okna czasowe-widmowe 16
4.7 projektowanie filtrów cyfrowych SOI metodą okien 17
5. Wykaz aparatury 20
1. Informacja ogólna o ćwiczeniu
Program ćwiczenia:
1. Zapoznanie się z programem demonstracyjnym.
2. Zaprojektowanie (wybranie) okna czasowego o wybranych własnościach. Zapoznanie się z kształtem różnych okien oraz ich widmami częstotliwościowymi.
3. Wygenerowanie sygnałów testowych - trzy sinusoidy o różnych amplitudach, fazach i częstotliwościach, ich suma oraz ich zaszumiona suma. Obserwacja widm częstotliwościowych sygnałów.
4. Zaprojektowanie filtru o zadanych własnościach, odseparowywującego poszczególne sygnały z ich sumy oraz zaszumionej sumy (filtr dolnoprzepustowy, górnoprzepustowy, pasmowoprzepustowy i pasmowozaporowy).
5. Sprawdzenie jakości zaprojektowanego filtru metodą filtracji sygnałów testowych (zbiory w komputerze PC).
6. Sprawdzenie jakości zaprojektowanego filtru metodą filtracji sygnałów rzeczywistych (z generatora lub płyty CD) na karcie z procesorem sygnałowym Motorola DSP56002. Obserwacja kształtu sygnałów i ich widm częstotliwościowych na oscyloskopie i monitorze komputera PC. Odsłuch przefiltrowanych sygnałów akustycznych na słuchawkach lub głośnikach.
7. Powtórzenie operacji 46 według zaleceń pracownika prowadzącego ćwiczenie.
8. Zaprojektowanie i przetestowanie na karcie z procesorem sygnałowym DSP56002 filtru pasmowoprzepustowego wycinającego jedną z harmonicznych sygnału prostokątnego.
Zakres wymaganych wiadomości:
1. sygnały analogowe - splot całkowy dwóch sygnałów, całkowe przekształcenie Fouriera i jego własności, przekształcenie Fouriera splotu, przekształcenie Laplace'a, transmitancja operatorowa filtra analogowego, zera i bieguny transmitancji, widmo częstotliwościowe sygnału prostokątnego
2. sygnały cyfrowe - dyskretyzacja w czasie, kwantyzacja w poziomie, kodowanie (np. liczba-znak, kod uzupełnień do dwóch), splot sygnałów dyskretnych, dyskretne przekształcenie Fouriera, transformata Z, transmitancja operatorowa filtra cyfrowego, okna czasowe i ich widma częstotliwościowe, projektowanie filtrów o skończonej odpowiedzi impulsowej (SOI) metodą okien czasowych
Literatura:
1. K. Steiglitz: "Wstęp do systemów dyskretnych", WNT, 1977.
2. J. Szabatin: "Podstawy teorii sygnałów", WKŁ, 1982 i 1990.
3. K.G. Beauchamp: "Przetwarzanie sygnałów metodami analogowymi i cyfrowymi", 1978.
4. W. Borodziewicz, K. Jaszczak: "Cyfrowe przetwarzanie sygnałów", WNT, 1987.
5. A. Wojtkiewicz: "Elementy syntezy filtrów cyfrowych", WNT, 1987.
6. A.V. Oppenheim, R.W. Schafer: "Cyfrowe przetwarzanie sygnałów", WKŁ, 1979.
7. A.V. Oppenheim: "Sygnały cyfrowe, przetwarzanie i zastosowania", WNT, 1982.
8. R.K. Otnes, L. Enochson: "Analiza numeryczna szeregów czasowych", WNT, 1978.
9. G.T. Temes, S.K. Mitra: "Teoria i projektowanie filtrów", WNT, 1978.
3. Instrukcja wykonania ćwiczenia
2.1 Zapoznanie się z programem demonstracyjnym c16_demo.m, napisanym programie MATLAB.
a. włącz komputer
b. napisz matlab
c. wciśnij klawisz Enter
d. napisz cw16_demo i wciśnij klawisz Enter
e. czytaj wyświetlany tekst i oglądaj rysunki, wciskając klawisz Enter na żądanie komputera oraz po każdym rysunku.
Jeśli jesteś już w programie MATLAB, napisz tylko c16_demo i naciśnij Enter.
2.2 Zaprojektowanie (wybranie) okna widmowego o wybranych własnościach z wykorzystaniem programu c16_okno.m, napisanym w programie MATLAB.
a. jeśli jesteś w MATLABIE napisz c16_okno i wciśnij klawisz Enter, w przeciwnym przypadku wykonaj przed tym podpunkty 2.1.a 2.1.c.
b. wybieraj rodzaje okien pisząc cyfry od 1 do 8 (plus Enter). Obserwuj różne kształty okien czasowych (pierwszy rysunek + Enter) oraz ich różne widma częstotliwościowe (drugi rysunek + Enter).
Pierwszy rysunek:
x = czas (nr próbki czasowej),
y = wartość okna.
Drugi rysunek:
x = częstotliwość unormowana (0.5 = 0.5 częstotliwości próbkowania),
y = wartość widma częstotliwościowego okna w decybelach.
Zwróć uwagę na fakt, że tzw. listek główny - przepuszczający (pierwsze maksimum widma) ma różną szerokość częstotliwościową oraz że listki boczne - tłumiące są na różnym poziomie. Okna o stałych parametrach, mają własności niezmienne. W oknach o zmiennych parametrach, można zmieniać ich własności zmieniając wartość parametru.
Zmieniając długość okna (9 + Enter) oraz parametry okien Czebyszewa (7+Enter) i Kaisera (8+Enter) zaprojektuj okna, które mają szerokość połowy listka głównego 0.05 i tłumienie -60 dB. Interesuje nas minimalna długość okna, spełniająca powyższe wymagania.
Charakterystyka częstotliwościowa okna ma decydujące znaczenia podczas projektowania filtrów cyfrowych metodą okien czasowych. Ponieważ odpowiedź impulsowa filtru idealnego jest wymnażana przez współczynniki okna, w dziedzinie częstotliwościowej ch-ka okna splata się z ch-ką filtru idealnego. Stromy filtr wymaga okna o stromym listku głównym. Filtr o dużym tłumieniu wymaga okna o dużym tłumieniu.
c. napisz c16_kais i wciśnij klawisz Enter; wybierz wymaganą szerokość listka głównego widma okna Kaisera oraz poziom tłumienia pierwszego listka bocznego; zapisz wartość współczynnika beta oraz długość okna; sprawdź, czy wyświetlona na ekranie monitora charakterystyka częstotliwościowa okna odpowiada postawionym wymaganiom
2.3 Wygenerowanie sygnałów testowych programem c16_sygn.m.
Filtry częstotliwościowe mają za zadanie usuwać z sygnału składowe znajdujące się poza pasmem przepuszczania. Projektując filtr użytkownik musi określić jakie pasmo (częstotliwości) go interesują, a jakie nie. Sygnały testowe w ćwiczeniu mają długość ns próbek i są dyskretyzowane w czasie z częstotliwością fp . Są to następujące sygnały:
s1, s2, s3 trzy sygnały sinusoidalne o różnych amplitudach (as1, as2, as3),
fazach (ps1, ps2 i ps3) oraz częstotliwościach (fs1, fs2 i fs3)
sz05, sz10, sz15 szum o rozkładzie normalnym i odchyleniu standard 0.5, 1.0, 1.5
s12=s1+s2
s13=s1+s3
s23=s2+s3
s123 = s1 + s2 +s3
s1sz05 = s1 + sz05
s1sz10 = s1 + sz10
s1sz15 = s1 + sz15
s123sz05 = s1 + s2 + s3 + sz05
s123sz10 = s1 + s2 + s3 + sz10
s123sz15 = s1 + s2 + s3 + sz15
Zmodyfikuj zbiór par_sygn.m !edit par_sygn.m
Uruchom program c16_sygn c16_sygn
Na początku należy ustawić parametry: zapis=0, pokaz=1, windows=0, i obserwować kształt sygnałów i ich widm dla różnych parametrów. Sugerowana jest zmiana jednej z częstotliwości np. o 50 Hz i zwrócenie uwagi na jej "rozmycie" w widmie (szczególnie w skali logarytmicznej).
Widmo szumu jest rozłożone "równomiernie" w całym paśmie częstotliwościowym, ale posiada lokalne maksima, które teoretycznie mogą odpowiadać sygnałom sinusoidalnym o małej amplitudzie. W związku z tym istnieje niebezpieczeństwo błędnej interpretacji widma silnie zaszumionego sygnału.
Kończąc tą część ćwiczenia należy wybrać parametry i wygenerować sygnał (zapis=1) przeznaczony do dalszej analizy i przetwarzania.
W przypadku problemów, przeczytać podrozdział 3.2 (str. 8) i 3.6 (str.12).
2.4 Zaprojektowanie filtru odseparowywującego poszczególne sygnały z ich sumy (filtr dolnoprzepustowy, górnoprzepustowy, pasmowoprzepustowy i pasmowozaporowy).
a. programem c16_filt zaprojektować filtry wydzielające sygnały s1, s2 i s3 z sygnału s123 (odpowiednio filtr dolnoprzepustowy, pasmowoprzepustowy i górnoprzepustowy);
maksymalny błąd w paśmie przepuszczanym: 0.5 dB
wymagane minimalne tłumienie pozostałych składowych: 60 dB
należy wykorzystać tablicę 2 oraz wzór (9) z podrozdziału 4.7 (strona 19)
Na szczególną uwagę zasługują:
liniowość ch-ki częstotliwościowo-fazowej filtru w paśmie przepustowym,
rośnięcie stromości filtru wraz z jego długością niezależnie od typu zastosowanego okna;
b. jakość projektów zweryfikować programem c16_test metodą symulacji komputerowej;
zwrócić uwagę na parametry pokazywane na końcu programu (odległość sygnału odseparowanego od oryginału);
powtórzyć projekt (pkt. 2.4a) w przypadku niesatysfakcjonujących wyników (maksymalny błąd absolutny pomiędzy sygnałem odfiltrowany a oryginałem > 0.01)
c. zaprojektować filtr usuwający sygnał s2 z sygnału s123
Zmodyfikuj zbiór par_filt.m !edit par_filt.m
Uruchom program c16_filt c16_filt
Zmodyfikuj zbiór par_test.m !edit par_test.m
Uruchom program c16_filt c16_test
Zapamiętaj dane wynikowe dla Matlaba !copy filtr.pc nazwa.pc
Zapamiętaj dane wynikowe dla DSP !copy filtr.dsp nazwa.dsp
W przypadku problemów, przeczytać podrozdział 3.3 (str. 9), 3.4 (str.10) i 3.6 (str.12).
2.5 Zaprojektowanie filtrów redukujących szum
a. programem c16_filt zaprojektować filtr odzyskujący sygnał s1 z zaszumionego sygnału s1sz05 (dolnoprzpustowy lub pasmowoprzepustowy);
b. sprawdzić jego skuteczność na sygnałach s1sz05, s1sz10 i s1sz15 programem c16_test;
odchylenie standardowe pomiędzy sygnałem odzyskanym a oryginałem nie powinno być większe od 0.1; zwrócić uwagę na maksymalną wartość błędu oraz stosunek sygnału do szumu przed i po filtracją.
c. powtórzyć pkt 2.5a. i 2.5b. dla sygnałów s123sz05, s123sz10 i s123sz15; w tym przypadku należy się starać pozostawić tylko sygnał s2.
Wywołania programów jak w pkt. 2.4
W przypadku problemów, przeczytać podrozdział 3.3 (str. 9), 3.4 (str.10) i 3.6 (str.12).
2.6 Filtracja i analiza widmowa sygnałów rzeczywistych.
uruchomienie odtwarzania płyty CD |
!CD_start (potem "" + Enter) |
podstawienie uprzednio zapamiętanych parametrów filtrów do zbioru danych procesora sygnałowego DSP56002 |
!copy stare.dsp filtr.dsp |
wejście na wyjście bez zmian |
!dsp_wewy |
wejście filtrowane i podawane na wyjście |
!dsp_fi |
widmo wejścia na monitor lub oscyloskop |
!dsp_wi |
widmo filtrowanego wejścia na monitor lub oscyloskop |
!dsp_wifi |
W przypadku kiedy wejściem jest sygnał sinusoidalny z generatora można go zmieniać od zera do połowy częstotliwości próbkowania.
W przypadku problemów, przeczytać podrozdział 3.5 (str. 11).
2.7 Zaprojektowanie i przetestowanie na karcie z procesorem sygnałowym DSP56002 filtru pasmowoprzepustowego wycinającego jedną z harmonicznych sygnału prostokątnego.
a. Ustawić na generatorze przebieg prostokątny.
b. Porównać widmo tego sygnału (!dsp_wi) dla różnych częstotliwość.
c. Ustawić częstotliwość równą ok. 4000 Hz
d. Zaprojektować filtr wycinający jedną z harmonicznych (np. drugą równą ok. 8000 Hz):
!edit par_filt.m + c16_filt
e. Sprawdzić działanie filtru w czasie rzeczywistym:
!dsp_fi + !dsp_fiwi
W przypadku problemów, przeczytać podrozdział 3.5 (str. 11).
3. Informacja ogólna o oprogramowaniu
3.1 Opis całego systemu
W programie dokonuje się obliczeń i symulacji komputerowych w programie MATLAB firmy MathWorks Inc. Wszystkie zbiory potrzebne do ćwiczenia znajdują się w katalogu c:\student\cwicz_16 i wszystkie programy się uruchamia oraz modyfikuje z programu MATLAB. Aby go uruchomić należy wejść do tego katalogu c:\student\cwicz_16, napisać matlab i nacisnąć klawisz Enter. Następnie wywołuje się następujące funkcje
CZYNNOŚĆ PROGRAM WYWOŁANIE
Wstępne sprzątanie po sobie lub kolegach c16_init.m c16_init
Okna czasowe porównuje się programem c16_okno.m c16_okno
Okno Kaisera projektuje się programem c16_kais.m c16_kais
Sygnały testowe generuje program c16_sygn.m c16_sygn
który czyta parametry ze zbioru par_sygn.m !edit par_sygn.m
Wagi filtru projektuje się programem c16_filt.m c16_filt
który czyta parametry ze zbioru par_filt.m !edit par_filt.m
Działanie filtru sprawdza się programem c16_test.m c16_test
który czyta parametry ze zbioru par_test.m !edit par_test.m
Uruchomienie napędu CD CD_start.bat !CD_start ( i Enter)
Procesor DSP wejście --> wyjście bez zmian dsp_wewy.bat !dsp_wewy
Filtr na procesorze sygnałowym DSP dsp_fi.bat !dsp_fi
Widmo na procesorze sygnałowym DSP dsp_wi.bat !dsp_wi
Widmo sygnału przefiltrowanego na proc DSP dsp_wifi.m !dsp_wifi
Wyjście z programu MATLAB quit
Po każdej komendzie wywołania zaznaczonej w powyższej tabeli należy ją zakończyć naciśnięciem klawisza Enter.
W ćwiczeniu nazwy zbiorów z danymi są STAŁE:
wagi filtru: filtr.pc i filtr.dsp
sygnały testowe: sinusoidy s1, s2, s3,
szum sz05, sz10, sz15 (odchylenie standardowe=0.5, 1.0, 1.5)
złożone s12=s1+s2, s13=s1+s3, s23=s2+s3
s123 = s1 + s2 +s3,
s1sz05=s1+sz05, s1sz10, s1sz15
s123sz05=s123+sz05, s123sz10, s123sz15
Zbiory sygnałów testowych mają na dysku rozszerzenie syg (np. s1.syg, s1sz05.syg).
Po każdym uruchomieniu programu generującego dane, zbiory z nimi mają aktualizowane wartości. W celu zachowania wartościowych wyników (np. wag filtrów), należy je przed ponownym uruchomieniem programu skopiować do zbioru o nazwie innej niż standardowa:
skopiowanie zbioru !copy aktualna nowa np. !copy filtr.pc kopia.pc
3.2 Generowanie sygnałów testowych
Program c16_sygn - GENEROWANIE SYGNAŁÓW TESTOWYCH
Program czyta parametry ze zbioru par_sygn.m, który ma następującą postać:
% PARAMETRY GENERATORA SYGNAŁÓW TESTOWYCH =============================
zapis = [ 1 ]; % 0=zapisz na dysku, 1=nie zapisuj
pokaz = [ 1 ]; % 0=nie wyświetlaj na ekranie, 1=wyświetlaj
windows = [ 0 ]; % 0=DOS, 1=Ms Windows
%
ns = [ 1024 ]; % długość sygnału testowego (ilość próbek); maksymalnie 1024
fp = [ 48000 ]; % częstotliwość próbkowania w [Hz]: 48000, 32000, 16000, 8000
%
fs1 = [ 4687.5 ]; % częstotliwość sinusoidy 1 w [Hz]
fs2 = [ 9375 ]; % częstotliwość sinusoidy 2 w [Hz]
fs3 = [ 18750 ]; % częstotliwość sinusoidy 3 w [Hz]
%
as1 = [ 0.75 ]; % amplituda sinusoidy 1
as2 = [ 0.5 ]; % amplituda sinusoidy 2
as3 = [ 1.0 ]; % amplituda sinusoidy 3
%
ps1 = [ 90 ]; % faza sinusoidy 1 w stopniach
ps2 = [ -45 ]; % faza sinusoidy 2 w stopniach
ps3 = [ 180 ]; % faza sinusoidy 3 w stopniach
===========================================================================
Modyfikuje się w nim tylko wartości w nawiasach kwadratowych. Wszystko znajdujące się za znakiem % oznacza komentarz.
Wygenerowane sygnały zapisywane są zawsze do zbiorów (z rozszerzeniem .syg):
Sygnały sinusoidalne: s1, s2, s3
Szum (std = 0.5, 1.0, 1.5): sz05, sz10, sz15
Kombinacje: s12=s1+s2;
s13=s1+s3;
s23=s2+s3;
s123=s1+s2+s3,
s1sz05=s1+sz05,
s1sz10=s1+sz10,
s1sz15=s1+sz15
s123sz05=s123+sz05,
s123sz10=s123+sz10,
s123sz15=s123+sz15
Generowany szum ma rozkład normalny. std oznacza jego zadane odchylenie standardowe.
3.3 Projektowanie filtru cyfrowego
Program c16_filt - PROJEKTOWANIE FILTRA
Program czyta parametry ze zbioru par_filt.m, który ma następującą postać:
% PARAMETRY PROJEKTOWANEGO FILTRA %==========================================================================
typ = [3] % 1=dolno, 2=górno, 3=pasmowo-przepustowy, 4=pasmowo-zaporowy
fprobk = [48000] % częstotliwość próbkowania w [Hz]
% 48000, 32000, 16000, 8000
fdol = [8400] % dolna częstotliwość graniczna w [Hz] :
% 0 <= fdol < fprob/2
fgora = [10400] % górna częstotliwość graniczna w [Hz] :
% fdol < fgora <= fprob/2
ilewag = [29] % liczba współczynników wagowych POŁOWY FILTRA (cały=2*ilewag-1)
% maksymalna wartość ilewag = 99
okno = [8] % rodzaj okna :
% 1 = Prostokąt, 2 = Trójkąt, 3 = Hanning, 4 = Hamming
% 5 = Blackmann, 6 = Szyper, 7 = Czebyszew 8 = Kaiser
% 9 = Metoda Remeza
riples = [60.]; % parametr okna CZEBYSZEWA (poziom tłumienia w dB, np. 60.)
betka = [8.2]; % parametr okna KAISERA (1. betka 20.)
%==========================================================================
Modyfikuje się w nim tylko wartości w nawiasach kwadratowych. Wszystko znajdujące się za znakiem % oznacza komentarz.
Wynikowe współczynniki wagowe filtra zapisywane są zawsze do zbiorów:
filtr.pc - dla MATLABA
filtr.dsp - dla procesora DSP56002 firmy Motorola
Zapamiętywane aktualnego zbioru: !copy filtr.pc stare.pc
!copy filtr.dsp stare.dsp
Odtworzenie zapamiętanego zbioru: !copy stare.pc filtr.pc
!copy stare.dsp filtr.dsp
Pierwszy zbiór jest skopiowany na drugi, ale sam pozostaje na dysku.
Możemy w ten sposób utworzyć bibliotekę różnych filtrów i je potem zbiorczo testować programami:
c16_test - MATLAB
dsp_fi - procesor DSP
dsp_wifi - procesor DSP
3.4 Testowanie filtru na komputerze PC
Program c16_test - TESTOWANIE DZIAŁANIA FILTRU SYGNAŁAMI TESTOWYMI
Program czyta parametry ze zbioru par_test.m, który ma następującą postać:
function par_test()
% podstawienie parametrów do testowania zaprojektowanego filtru
fp = [ 48000 ]; % <--- częstotliwość próbkowania w [Hz]: 48000, 32000, 16000, 8000
%
load s123sz10.syg; % <--- nazwa 1 zbioru z sygnałem do filtracji
sygnal = s123sz10; % <--- nazwa 1 zbioru z sygnałem do filtracji
%
load s2.syg; % <--- nazwa 2 zbioru z sygnałem wzorowym
wzorzec = s2; % <--- nazwa 2 zbioru z sygnałem wzorowym
%
load filtr.pc; % <--- nazwa 3 zbioru ze współczynnikami wagowymi filtru
h = filtr; % <--- nazwa 3 zbioru ze współczynnikami wagowymi filtru
W powyższym programie zmieniane są tylko nazwy zaznaczone pogrubionym drukiem, występujące przed znakiem %.
BARDZO WAŻNE
Nazwy odpowiednich zbiorów muszą być zmienione w dwóch miejscach
3.5 Testowanie filtru na procesorze sygnałowym
FILTRACJA I ANALIZA WIDMOWA SYGNAŁÓW RZECZYWISTYCH
Z WYKORZYSTANIEM PROCESORA SYGNAŁOWEGO MOTOROLA DSP56002
Programy:
dsp_wewy - podaj wejście na wyjście bez zmian
dsp_fi - podawaj na wyjście przefiltrowane wejście
dsp_wi - podawaj na monitor moduł widma częstotliwościowego wejścia
dsp_wifi - podawaj na monitor moduł widma częstotliwościowego przefiltrowanego wejścia
CD_start - uruchom napęd CD w komputerze (dodatkowo strzałka w prawo i Enter)
Programy dsp_fi i dsp_wifi czytają parametry z aktualnego zbioru filtr.dsp (częstotliwość próbkowania, ilość współczynników wagowych, współczynniki wagowe).
Zapamiętywane aktualnego zbioru parametrów: !copy filtr.dsp moj.dsp
Odtworzenie zapamiętanego zbioru parametrów: !copy moj.dsp filtr.dsp
Schemat ideowy układu:
Sygnały wejściowe: 1. generator
2. napęd CD
Sygnały wyjściowe: 1. oscyloskop
2. słuchawki (głośniki)
3. monitor
3.6 Edytor tekstu
Aby wywołać wybraną funkcję edytora należy nacisnąć:
klawisz Alt + pierwsza litera komendy z górnej linii
Na przykład:
Alt - O (output) - zapis zmodyfikowanego zbioru parametrów
Alt - Q (quit) - wyjście
Alt - E (exit) - wyjście
Podczas edycji należy wykorzystywać klawisze:
strałki prawo, lewo, góra, dół - poruszanie się po tekście
Insert - przełączenie trybów wstawiania tekstu:
"rozsuwające" (insert) lub "nakładkowe" (overlay)
Delete - kasowanie za kursorem
Backspace - kasowanie przed kursorem
4. Podstawy teoretyczne
4.1 Oznaczenia
- sygnał ciągły
- sygnał ciągły zdyskretyzowany w czasie;
- numer próbki,
- okres próbkowania
- częstotliwość próbkowania sygnału ciągłego (ilość próbek na sekundę)
- wyniki przekształcenia Fouriera sygnałów
;
- pulsacje
- zdyskretyzowane wyniki przekształcenia Fouriera sygnałów
4.2 Rodzaje transformat Fouriera
I. Ciągły czas "t" [s]- ciągła pulsacja "" [rad/s] (
, gdzie f - częstotliwość w [Hz]):
II. Dyskretny czas "
" [s] - unormowana ciągła pulsacja "" [rad] (
:, gdzie
;
;
)
III. Ciągły czas "t" [s] - dyskretna pulsacja "
" [rad/s] (T - okres sygnału; k=..-2,-1,0,1,2,..)
IV. Dyskretny czas "
" [s]- unormowana dyskretna pulsacja "
" [rad] :
4.3 Splot sygnałów analogowych - filtracja analogowa
- wyjściowy sygnał ciągły po filtrze
- ciągła odpowiedź impulsowa filtru
- wejściowy sygnał ciągły przed filtrem
,
,
- odpowiednie transformaty Fouriera typu I (ciągła-ciągła)
4.4 Splot sygnałów cyfrowych - filtracja cyfrowa
- wyjściowy sygnał dyskretny po filtrze
- dyskretna (spróbkowana) odpowiedź impulsowa filtru
- wejściowy sygnał dyskretny przed filtrem
- odpowiednie transformaty Fouriera typu IV (dyskretna-dyskretna)
Transmitancja filtru SOI (skończona odpowiedź impulsowa)
(z - zmienna zespolona)
Charakterystyka częstotliwościowa filtru SOI:
ponieważ:
,
,
gdzie
- pulsacja unormowana,
f - częstotliwość unormowana,
fHz - częstotliwość nieunormowana w [Hz],
fp - częstotliwość próbkowania w [Hz].
4.5 Wymnożenie dwóch sygnałów cyfrowych
- sygnał dyskretny
- dyskretne okno czasowe o długości N (
)
- transformaty Fouriera typu II (dyskretna-ciągła)
4.6 Okna czasowe - widmowe
Okno prostokątne:
Stała wysokość pierwszego listka bocznego widma.
Szerokość listka głównego malejąca wraz ze wzrostem długości okna
Okno Kaisera:
gdzie
- zmodyfikowana funkcja Bessela zerowego rzędu. Dla =0, okno prostokątne.
Wybór parametrów: i N. Wpływają one na:
1. szerokość listka głównego widma ("zerowego") - jakie
?
2. tłumienie pierwszego listka bocznego widma w dB - jakie
?
Parametr decyduje o wysokości pierwszego listka bocznego widma.
Długość N decyduje o szerokości listka głównego widma. Kiedy N rośnie, szerokość maleje.
4.7 Projektowanie filtrów czasowych typu SOI metodą okien
a. zadanie pożądanej ch-ki częstotliwościowej filtru (rys. 1, 2, 3, 4):
,
,
(1)
f - częstotliwość unormowana,
fHz - częstotliwość nieunormowana w Hz,
fp - częstotliwość próbkowania w Hz.
b. wyznaczenie odpowiedzi impulsowej filtru:
(2)
c. ograniczenie odpowiedzi impulsowej filtru oknem czasowym:
, gdzie
- okno czasowe ograniczające długość
(3)
transmitancja wynikowego filtru:
Bardzo duży wpływ własności okna
i jego widma
na wynikową ch-kę częstotliwościową filtru.
ad. 5a) Ch-ki częstotliwościowe filtrów idealnych -
Rys.1. Filtr dolnoprzepustowy Rys.2. Filtr górnoprzepustowy
Rys.3. Filtr pasmowoprzepustowy Rys.4. Filtr pasmowozaporowy
ad. 5b) Teoretyczna odpowiedź impulsowa filtru z wzoru (2):
filtr dolnoprzepustowy
(4)
filtr górnoprzepustowy
(5)
filtr pasmowoprzepustowy
(6)
filtr pasmowozaporowy
(7)
Tablica 1. Przykłady okien czasowych
okno |
funkcja |
prostokątne |
1 |
trójkątne (Bartletta) |
1-2(|n|/N) |
Hanninga |
0.5+0.5cos(2n/N) |
Hamminga |
0.54+0.46cos(2n/N) |
Blackmana |
0.42+0.5cos(2n/N)+0.08cos(4n/N) |
Kaisera |
Io[(1-(2n/(N-1))2]0.5/Io(), Io()-funkcja .Bessela |
Tablica 2. Wybór rodzaju okna
okno |
tłumienie w paśmie zaporowym w dB*) |
współczynnik K |
prostokątne |
21 |
2.00 |
trójkątne (Bartletta) |
25 |
4.00 |
Hanninga |
44 |
4.00 |
Hamminga |
53 |
4.00 |
Blackmana |
74 |
6.00 |
Kaisera (=2.12) |
30 |
1.54 |
Kaisera (=4.54) |
50 |
2.93 |
Kaisera (=7.76) |
70 |
4.32 |
Kaisera (=8.96) |
90 |
5.71 |
*) wysokość pierwszego listka głównego
Wybór długości okna
Najmniejsza nieparzysta liczba całkowita spełniająca równanie:
(9)
gdzie:
- współczynnik z tabeli powyżej
- szerokość pasma przejściowego, wyrażona w Hz
- częstotliwość próbkowania wyrażona w Hz
dla filtru dolnoprzepustowego
dla filtru górnoprzepustowego
dla filtru pasmowoprzepustowego
dla filtru pasmowozaporowego
5. Wykaz aparatury
1. komputer IBM PC/AT z napędem CD
2. karta z procesorem sygnałowym Motorola DSP56002
3. oscyloskop
4. generator
5. zestaw głośnikowy
6. słuchawki
Ćwiczenie nr 16
Cyfrowe przetwarzanie sygnałów pomiarowych
Ćwiczenie nr 16
Cyfrowe przetwarzanie sygnałów pomiarowych
Program ćwiczenia:
1. Zapoznanie się z programem demonstracyjnym.
2. Zaprojektowanie (wybranie) okna czasowego o wybranych własnościach. Zapoznanie się z kształtem różnych okien oraz ich widmami częstotliwościowymi.
3. Wygenerowanie sygnałów testowych - trzy sinusoidy o różnych amplitudach, fazach i częstotliwościach, ich suma oraz ich zaszumiona suma. Obserwacja widm częstotliwościowych sygnałów.
4. Zaprojektowanie filtru o zadanych własnościach, odseparowywującego poszczególne sygnały z ich sumy oraz zaszumionej sumy (filtr dolnoprzepustowy, górnoprzepustowy, pasmowoprzepustowy i pasmowozaporowy).
5. Sprawdzenie jakości zaprojektowanego filtru metodą filtracji sygnałów testowych (zbiory w komputerze PC).
6. Sprawdzenie jakości zaprojektowanego filtru metodą filtracji sygnałów rzeczywistych (z generatora lub płyty CD) na karcie z procesorem sygnałowym Motorola DSP56002. Obserwacja kształtu sygnałów i ich widm częstotliwościowych na oscyloskopie i monitorze komputera PC. Odsłuch przefiltrowanych sygnałów akustycznych na słuchawkach lub głośnikach.
7. Powtórzenie operacji 46 według zaleceń pracownika prowadzącego ćwiczenie.
8. Zaprojektowanie i przetestowanie na karcie z procesorem sygnałowym DSP56002 filtru pasmowoprzepustowego wycinającego jedną z harmonicznych sygnału prostokątnego.
Zakres wymaganych wiadomości:
1. sygnały analogowe - splot całkowy dwóch sygnałów, całkowe przekształcenie Fouriera i jego własności, przekształcenie Fouriera splotu, przekształcenie Laplace'a, transmitancja operatorowa filtra analogowego, zera i bieguny transmitancji, widmo częstotliwościowe sygnału prostokątnego
2. sygnały cyfrowe - dyskretyzacja w czasie, kwantyzacja w poziomie, kodowanie (np. liczba-znak, kod uzupełnień do dwóch), splot sygnałów dyskretnych, dyskretne przekształcenie Fouriera, transformata Z, transmitancja operatorowa filtra cyfrowego, okna czasowe i ich widma częstotliwościowe, projektowanie filtrów cyfrowych o skończonej odpowiedzi impulsowej (SOI) metodą okien czasowych
Literatura:
1. K. Steiglitz: "Wstęp do systemów dyskretnych", WNT, 1977.
2. J. Szabatin: "Podstawy teorii sygnałów", WKŁ, 1982 i 1990.
3. K.G. Beauchamp: "Przetwarzanie sygnałów metodami analogowymi i cyfrowymi", 1978.
4. W. Borodziewicz, K. Jaszczak: "Cyfrowe przetwarzanie sygnałów", WNT, 1987.
5. A. Wojtkiewicz: "Elementy syntezy filtrów cyfrowych", WNT, 1987.
6. A.V. Oppenheim, R.W. Schafer: "Cyfrowe przetwarzanie sygnałów", WKŁ, 1979.
7. A.V. Oppenheim: "Sygnały cyfrowe, przetwarzanie i zastosowania", WNT, 1982.
8. R.K. Otnes, L. Enochson: "Analiza numeryczna szeregów czasowych", WNT, 1978.
9. G.T. Temes, S.K. Mitra: "Teoria i projektowanie filtrów", WNT, 1978.
CZYNNOŚĆ PROGRAM WYWOŁANIE
Wstępne sprzątanie po sobie lub kolegach c16_init.m c16_init
Okna czasowe porównuje się programem c16_okno.m c16_okno
Okno Kaisera projektuje się programem c16_kais.m c16_kais
Sygnały testowe generuje program c16_sygn.m c16_sygn
który czyta parametry ze zbioru par_sygn.m !edit par_sygn.m
Wagi filtru projektuje się programem c16_filt.m c16_filt
który czyta parametry ze zbioru par_filt.m !edit par_filt.m
Działanie filtru sprawdza się programem c16_test.m c16_test
który czyta parametry ze zbioru par_test.m !edit par_test.m
Uruchomienie napędu CD CD_start.bat !CD_start ( i Enter)
Procesor DSP wejście --> wyjście bez zmian dsp_wewy.bat !dsp_wewy
Filtr na procesorze sygnałowym DSP dsp_fi.bat !dsp_fi
Widmo na procesorze sygnałowym DSP dsp_wi.bat !dsp_wi
Widmo sygnału przefiltrowanego na proc DSP dsp_wifi.m !dsp_wifi
Wyjście z programu MATLAB quit
Czyszczenie pamięci jeśli brak pamięci clear
Po każdej komendzie wywołania zaznaczonej w powyższej tabeli należy ją zakończyć naciśnięciem klawisza Enter. Po każdym rysunku należy nacisnąć klawisz Enter.
OZNACZENIA
wagi filtru: filtr.pc i filtr.dsp
sygnały testowe: sinusoidy s1, s2, s3, szum sz05, sz10, sz15
złożone s12=s1+s2, s13=s1+s3, s23=s2+s3
s123 = s1 + s2 +s3,
s1sz05=s1+sz05, s1sz10, s1sz15
s123sz05=s123+sz05, s123sz10, s123sz15
Zbiory sygnałów testowych mają na dysku rozszerzenie syg (np. s1.syg, s1sz05.syg).
Po każdym uruchomieniu programu generującego dane, zbiory z nimi mają aktualizowane wartości. W celu zachowania wartościowych wyników (np. wag filtrów), należy je przed ponownym uruchomieniem programu skopiować do zbioru o nazwie innej niż standardowo przyjęta.
skopiowanie zbioru !copy aktualna nowa np. !copy filtr.pc kopia.pc
EDYTOR TEKSTU
klawisz Alt + pierwsza litera komendy z górnej linii
Alt - O (output) - zapis zmodyfikowanego zbioru parametrów
Alt - Q (quit) - wyjście (powrót do MATLABA)
Alt - E (exit) - wyjście (powrót do MATLABA)
strałki prawo, lewo, góra, dół - poruszanie się po tekście
Insert - przełączenie trybów wstawiania tekstu:
"rozsuwające" (insert) lub "nakładkowe" (overlay)
Delete - kasowanie za kursorem
Backspace - kasowanie przed kursorem
Metodologia projektowania i testowania filtru cyfrowego
Schemat ideowy układu pomiarowego
3