pobierz instrukcję - Politechnika Wrocławska

Transkrypt

pobierz instrukcję - Politechnika Wrocławska
Politechnika Wrocławska
Wydział Elektroniki Mikrosystemów i Fotoniki
Przetwarzanie sygnałów – laboratorium
ETD5067L
Ćwiczenie 3.
Właściwości przekształcenia Fouriera
1. Podstawowe właściwości przekształcenia Fouriera
Omówione w ramach niniejszego ćwiczenia właściwości dotyczą m.in. DFT, DTFT.
Niech w dalszej części instrukcji zapis
X=FT{x }
oznacza przekształcenie Fouriera, natomiast zapis
x=FT−1{X}
odwrotne przekształcenie Fouriera.
Zbiór funkcji bazowych DFT jest zbiorem skończonym (k=0,.., N −1), jak również same
funkcje bazowe są funkcjami zdefiniowanymi dla skończonej liczby próbek (n=0, ..., N–1).
Te dwie właściwości sprawiają, że zarówno ilość operacji niezbędnych do wykonania
obliczeń DFT, jak i ilość potrzebnej pamięci są liczbą skończoną. Dyskretne przekształcenie
Fouriera DFT jest zatem jedynym przekształceniem, które można obliczyć za pomocą
układów cyfrowych.
W niniejszym ćwiczeniu badane będą właściwości wszystkich przekształceń Fouriera, jak
również unikalne właściwości DFT. W niniejszym ćwiczeniu transformowane będą sygnały
rzeczywiste. Oznacza to, że obserwowana będzie symetria amplitudy i antysymetria fazy
względem składowej o częstotliwości 0 Hz (składowej stałej) przekształceń Fouriera dla
częstotliwości ujemnych.
W przypadku transformat sygnałów dyskretnych (DFT i DTFT) występuje dodatkowo
okresowość widm (X[k+pN]=X[k] dla DFT i X(+p2)=X() dla DTFT, gdzie p jest liczbą
całkowitą). Konsekwencją okresowości i symetrii względem 0 jest symetria i antysymetria
względem częstotliwości równej połowie częstotliwości próbkowania( k=N/2 dla DFT i 
dla DTFT).
Rys. 1. Widmo amplitudowe sygnału dyskretnego (widmo DFT jest dyskretne, widmo DTFT jest ciągłe)
1.1. Homogeniczność
Wszystkie przekształcenia Fouriera są homogeniczne, tzn. k-krotna zmiana amplitudy
sygnału spowoduje k-krotną zmianę amplitudy transformaty:
a X=FT {a x} .
Podobną zależnością charakteryzuje się przekształcenie odwrotne:
a x=FT−1 {a X } .
1.2. Addytywność
Każde przekształcenie Fouriera jest addytywne, tzn. transformata sumy sygnałów jest
równa sumie transformat tych sygnałów:
FT{x1+x2}=FT {x1}+FT {x2} .
Addytywne jest również odwrotne przekształcenie Fouriera:
FT−1 {X1+X2}=FT−1{X1}+FT−1{X2} .
Homogeniczność i addytywność świadczą o liniowości przekształceń Fouriera, a można je
udowodnić, korzystając bezpośrednio z definicji transformacji Fouriera .
1.3. Kompresja i ekspansja sygnału
Kompresja sygnału w jednej dziedzinie powoduje jego ekspansję w drugiej dziedzinie,
np. zwężenie sygnału w dziedzinie czasu („przyspieszenie”) spowoduje poszerzenie widma
częstotliwościowego (wystąpienie większych częstotliwości). Dla a=const możemy zapisać:
1 k 
FT xan  X  
a a
Właściwość ta jest prawdziwa dla wszystkich przekształceń Fouriera.
1.4. Właściwości fazowe przekształcenia Fouriera
1.4.1. Wpływ przesunięcia sygnału w dziedzinie czasu na fazę transformaty
Przesunięcie sygnału w czasie nie zmienia amplitudy jego transformaty. Ma natomiast
wpływ na jej fazę – jeśli sygnał zostanie w dziedzinie czasu przesunięty o s próbek, faza
transformaty zmieni się o 2ks/N :
2ks
x2 n  x1 n  s    X 2 k    X1 k  
N
gdzie k=0..N-1 jest indeksem składowej DFT. X1 i X2 są widmami fazowymi sygnałów x1 i
x2.
1.4.2. Rozwinięcie fazy
Kąt fazowy liczby zespolonej jest liczbą z przedziału   ;  (albo 0; 2  ). Niemniej przy
analizie fazy (widma fazowego) transformaty Fouriera przydatne jest często, aby – ze
względu na zachowanie ciągłości widma fazowego – przeciwdziedzina była zbiorem
większym. W tym celu stosuje się rozwijanie fazy (ang. phase unwrapping), polegające na
dodawaniu całkowitych wielokrotności 2 do obliczonych kątów. Dąży się przy tym do tego,
żeby różnica fazy między kolejnymi punktami transformaty była jak najmniejsza (patrz
rys. 2).
Rys. 2. Widmo fazowe transformaty Fouriera sygnału przesuniętej w czasie delty Kroneckera
(dyskretne dla DFT, ciągłe dla DTFT).
Technika ta jest np. wykorzystywana przy pomiarach interferometrycznych (do pomiarów
odległości większych niż połowa długości fali).
1.5. Przeciek widma
To właściwość dotycząca tylko DFT. Jest związana z faktem, że zbiór funkcji bazowych
DFT jest zbiorem skończonym. W jego skład wchodzą funkcje sinusoidalne i kosinusoidalne
o całkowitej liczbie okresów. Przeciek widma DFT obserwujemy w przypadku, gdy
transformujemy dyskretne funkcje. Problem wynika z faktu, że DFT traktuje transformowany
sygnał jak sygnał okresowy. Jeżeli chcemy transformować sygnały nieokresowe musimy
odpowiednio dobrać długość okresu, czyli liczbę punktów DFT. Można łatwo zauważyć, że
gdy liczba punktów DFT dąży do nieskończoności to DFT przekształca się w transformację
DTFT. Zwiększenie liczby punktów DFT może odbywać się na dwa sposoby.
Można zwiększyć długość analizowanego sygnału. Jeżeli jest to sygnał o nieskończonym
czasie trwania ale asymptotycznie zmierzający do zera, to wyniki DFT będą coraz bardziej
zbieżne z wynikami DTFT. Długość wtedy uzależnia się od założonej dokładności
aproksymacji.
Drugim rozwiązaniem jest dopisanie na końcu sygnału odpowiedniej liczby zer. Jeżeli
sygnał jest sygnałem o ograniczonym czasie trwania, to taki zabieg nie zmienia w sposób
istotny jego właściwości (bo jego wartości w tym czasie są i tak równe zero), a zwiększa
rozdzielczość DFT. Tak zmiana ilości punktów DFT sprawia, że wynik DFT aproksymuje
wynik DTFT.
Ostatnią klasą sygnałów, w przypadku których ujawnia się przeciek DFT, są sygnały
harmoniczne (sygnały sinusoidalne), których częstotliwości nie pokrywają się z
częstotliwościami funkcji bazowych DFT. W DFT częstotliwości f funkcji bazowych
określane są przez numer składowej k i liczbę punktów DFT N za pomocą równania f=k/N.
Jeżeli k=0..N-1, to widać wyraźnie, że nie wyczerpuje to wszystkich możliwych
częstotliwości sygnałów harmonicznych. Jeżeli używamy DFT do analizy jednego sygnału
harmonicznego, to można tak dobrać liczbę próbek DFT, aby częstotliwość tego sygnału była
jedną z tych ściśle zdefiniowanych częstotliwości (np. f=0.3 to można użyć 1000 punktowej
DFT, wtedy dla k=300 będziemy mieli częstotliwość f=k/N=0.3). Większy problem pojawia
się kiedy analizujemy sygnał składający się z kilku sygnałów harmonicznych. Wtedy dużo
trudniej dobrać liczbę próbek DFT tak, aby w pełni uniknąć zjawiska przecieku (zobacz
rys. 3). Maksymalny przeciek w przypadku sygnałów harmonicznych występuje wtedy, gdy
częstotliwość sygnału znajduje się dokładnie pośrodku między sąsiednimi częstotliwościami
składowych DFT.
Rys. 3. Ilustracja zjawiska przecieku widma DFT. Sygnał x(t) składa się z dwóch sygnałów
harmonicznych. Częstotliwość pierwszego wynosi częstotliwości f1=3/128 Hz, a częstotliwość
drugiego f2=65/256 Hz. Ponieważ użyto 128 punktowej DFT, a częstotliwość próbkowania fs
wynosi 1 Hz, to zjawisko przecieku obserwujemy tylko dla drugiego sygnału harmonicznego.
W takim przypadku stosuje się tzw. okienkowanie, które jest operacją mnożenia sygnału
przez specjalnie zdefiniowaną funkcję okna. Okno ma za zadanie zmienić charakter (nie da
się go wyeliminować) przecieku widma w taki sposób, aby pomiar amplitudy sygnałów
harmonicznych był pomiarem bardziej dokładnym. Dokładność pomiaru amplitudy odbywa
się kosztem rozdzielczości częstotliwościowej widma. Zastosowanie funkcji okna zostanie
omówione dokładniej przy zagadnieniu filtracji SOI w ćwiczeniu 4.
1.6. Modulacja amplitudowa – mnożenie sygnałów
1.6.1. Splot
Splotem sygnałów nazywamy działanie, którego argumentami są dwa sygnały i które
zdefiniowane jest dla sygnałów ciągłych następującym wzorem:

st   x1 t * x2 t    x1 u x2 t  u du

Dla sygnałów dyskretnych x i y operację wyznaczania n-tej próbki splotu zapisać można
następująco:
zn  xn* yn 
N X 1
 yk xn  k 
k 0
Długość splotu dwóch sygnałów x, y wynosi Nx+Ny-1, gdzie Nx jest długością sygnału x a Ny
długością sygnału y. Przy obliczaniu splotu należy zwrócić uwagę na to, że kiedy indeksy
sygnałów x i y wychodzą poza dozwolony zakres, to wartości sygnału zastępuje się zerami
(patrz rys. 4).
Rys. 4. Ilustracja działania operacji splotu z=x*y. Trójkąt oznacza operację mnożenia, a koło
dodawania. Można zauważyć, że brakujące próbki sygnału x uzupełniane są zerami (sytuacja
gdy wychodzi się poza dozwolony zakres indeksów tablicy x).
1.6.2. Mnożenie sygnałów a przekształcenie Fouriera
Transformata splotu sygnałów jest iloczynem transformat tych sygnałów:
FT{x1*x2}=FT{x1}FT{x2},
natomiast transformata iloczynu sygnałów jest splotem ich transformat:
FT{x1x2}=FT {x1}*FT{x2}.
Mnożenie dwóch sygnałów jest wykorzystywane m.in. przy modulacji amplitudowej, a
mnożenie transformat przy filtracji sygnałów. Wykorzystuje się tu fakt, że sygnały
harmoniczne moją widma Fouriera w postacie impulsu Diraca (dla Przekształcenie Fouriera i
DTFT) lub impulsu Kroneckera (dla Szeregów Fouriera i DFT). Operacja splotu z impulsem
powoduje przesunięcie sygnału do pozycji impulsu. Dlatego mnożąc dowolny sygnał przez
sygnał harmoniczny o wybranej częstotliwości, przesuwamy widmo sygnału do
częstotliwości położenia impulsów). Należy pamiętać, że dla sygnałów rzeczywistych widmo
jest symetryczne. Sprawia to, że modulacji ulega zarówno część dla częstotliwości dodatnich
jak i dla częstotliwości ujemnych. Jest to szczególnie ważne, jeżeli modulowane sygnały mają
charakter sygnałów pasmowych (patrz rys. 5).
Rys. 5. Ilustracja właściwości modulacji sygnałem harmonicznym. Sygnał modulowany jest
sygnałem pasmowym i posiada dwie wstęgi odpowiadające fragmentom widma dla
częstotliwości dodatnich i dla częstotliwości ujemnych (kolor niebieski). W trakcie modulacji
obie wstęgi są przesuwane do położenia impulsów sygnału modulującego.
2. 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 wykorzystywanie funkcji
napisanych podczas wcześniejszych ćwiczeń.
Zadanie nr 1
W zadaniu pierwszym należy napisać dwie funkcje. Pierwszą w postaci:
function [t, x]=sin_t(tN, c, N)
#definicja ciała funkcji
endfunction
generującą sinusoidę. x to tablica z kolejnymi wartościami sinusoidy. t to tablica z kolejnymi
wartościami czasu, dla których obliczono wartości sinusoidy. c to częstotliwość sinusoidy w
hercach. Wartości sinusoidy mają być obliczone dla N próbek w równych odstępach czasu,
zaczynając od chwili t=0, a kończąc na chwili t=tN.
Druga funkcja powinna mieć postać:
function [fx]=freq_d(tN, N)
#definicja ciała funkcji
endfunction
i zwracać wektor fx częstotliwości składowych DFT, jeśli czas trwania sygnału wynosi tN
sekund, a sygnał po równomiernym próbkowaniu ma N próbek. Wykorzystując funkcję sin_t
i freq_d or fft, zaprezentuj zjawisko okresowości widma DFT i przecieku DFT. Funkcja fft
jest wbudowaną funkcją Octave’a do obliczania DFT zespolonego sygnału dyskretnego.
Przykład użycia:
y=fft(x);
żeby uzyskać moduł i fazę transformaty Fouriera, można posłużyć się funkcjami abs i arg. Są
to wbudowane funkcje Octave’a.
Przykład użycia
modY=abs(y);
fazaY=arg(y);
Zadanie nr 2
W zadaniu drugim należy napisać funkcję następującej postaci:
function z=sig_mul(x, y)
#definicja ciała funkcji
endfunction
wykonującą mnożenie dwóch sygnałów x[n] i y[n] ( n  0.. N  1, zn  xnyn).
Wykorzystując funkcję sig_mul należy wykonać mnożenie sygnału Gaussa
 (n  u ) 2 
 i sygnału sinusoidalnego ( y[n]  sin n ). Sygnał Gaussa można
x[n]  exp  
2
2
2
s


otrzymać za pomocą wyrażenia: x=exp( - ( [1:N] – u ).^2/2/s^2 ). W tym wyrażeniu N
definiuje ilość próbek sygnału Gaussowskiego, u jest przesunięciem krzywej, a s jest
stopniem rozmycia. Sygnał sinusoidalny należy wygenerować za pomocą funkcji sin_t. Po
obliczeniu sygnału iloczynu, należy zaprezentować wpływ mnożenia na moduł DFT sygnału
Gaussa.
 
Zadanie nr 3
Zadanie trzecie polega na napisaniu funkcji następującej:
function [uw_fi]=unwrap_phase(fi)
#definicja ciała funkcji
endfunction
która będzie realizować rozwinięcie fazy. Funkcję należy wykorzystać do obserwacji wpływu
przesunięcia sygnału na fazę jego DFT. Przesuwanym sygnałem powinien być impuls
1 dla n  0
Kroneckera  n  
. Sygnał ten można uzyskać za pomocą wyrażenia:
0 dla n  0
delta=[1,zeros(1,N-1). N jest długością sygnału. Jeżeli chcemy przesunąć sygnał o 1 próbkę,
to można użyć funkcji shift. Przykład użycia: shift(delta,1) przesuwa jedynkę o 1 pozycję w
prawo.
Zadanie nr 4
W zadaniu czwartym należy napisać funkcję następującej postaci:
function z=sig_conv(x, y)
#definicja ciała funkcji
endfunction
która będzie realizować splot sygnałów x[n] i y[n]. Zaprezentuj wykres splotu impulsów
prostokątnego z Gaussowskim oraz wykresy modułów DFT sygnałów x i y oraz DFT sygnału
splotu z. Przed obliczeniem transformat sygnałów (z, x, y), należy zwrócić uwagę na to, żeby
wszystkie sygnały miały taką samą ilość próbek i żeby wykresy modułów transformat miały
prawidłowo wyskalowaną oś częstotliwości.
Zadanie nr 5
Do dyspozycji jest sygnał dźwiękowy Wroclaw.wav, który można wczytać do Octave’a za
pomocą wbudowanej funkcji wavread().
Przykład użycia: y=wavread(”D:\\PS\\Wroclaw.wav”). Częstotliwość próbkowania tego
sygnału wynosi 16 kHz. W ramach zadania 5. należy wykonać prawidłową modulację
amplitudową z sygnałem Wroclaw.wav jako sygnałem modulowanym. Do zaliczenia zadania
potrzebne jest wyświetlenie na wspólnym wykresie modułu transformaty Fouriera sygnału
przed i po modulacji z prawidłowo wyskalowaną osią częstotliwości.
Pytania na kartkówkę
1. Oblicz częstotliwość próbkowania sygnału, który trwa 8 sekund i składa się z 9
2.
3.
4.
5.
równomiernie rozłożonych próbek.
Dobierz częstotliwość sinusoidy spróbkowanej z częstotliwością fs=10kHz tak, aby
dla 100 punktowej DFT uniknąć zjawiska przecieku.
Dobierz częstotliwość sinusoidy spróbkowanej z częstotliwością fs=10kHz tak, aby
dla 100 punktowej DFT zaobserwować maksymalny przeciek.
Jak zmieni się faza 30 punktowej DFT sygnału x[n], jeżeli przesuniemy ten sygnał o 3
próbki w prawo?
Jaką długość będzie miał splot sygnałów o długości 10 i 30 próbek?
6. Szerokość widma 100 punktowej DFT sygnału spróbkowanego z częstotliwością 10
kHz wynosi 1 kHz. Jaka jest maksymalna częstotliwość, z jaką można cyfrowo
modulować ten sygnał?