CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera) I. Wprowadzenie do ćwiczenia
Ogólnie termin przetwarzanie sygnałów odnosi się do nauki analizowania zmiennych w czasie procesów fizycznych. Rozróżniamy analogowe i cyfrowe przetwarzanie sygnałów. Analogowe przetwarzanie dotyczy sygnałów ciągłych w czasie, które mogą przyjmować ciągły zakres wartości amplitudy. Zatem cyfrowe przetwarzanie sygnałów dotyczy sygnałów o czasie dyskretnym (kwantowanej osi czasu) oraz dyskretnych wartościach. W literaturze technicznej przyjmuje się określenie sygnał cyfrowy w przypadku kwantowania zarówno osi czasu jak i osi wartości.
Podstawowa różnica pomiędzy sposobem, w jaki jest reprezentowany czas w systemach ciągłych i dyskretnych związany jest z częstotliwością. Ponieważ częstotliwość sinusoidy stanowi odwrotność okresu, w systemach dyskretnych pojawia się problem odstępów (szybkości) próbkowania. W cyfrowym przetwarzaniu sygnałów bardzo pomocne jest określenie składowych częstotliwościowych sygnałów dyskretnych w dziedzinie czasu.
Jedną z najbardziej wydajnych metod przetwarzania sygnałów z dziedziny czasu na dziedzinę częstotliwości jest przekształcenie Fouriera, które w postaci ciągłej zdefiniowane jest jako:
∫
∞ ∞ − − = x t e dt f X( ) ( ) j2πft (1)gdzie: x(t) jest pewnym sygnałem ciągłym w dziedzinie czasu.
W dziedzinie cyfrowego przetwarzania sygnałów stosuje się dyskretne przekształcenie
Fouriera DFT (2) oraz jego modyfikację FFT (szybkie przekształcenie Fouriera).
∑
− = − = 1 0 / 2 ) ( ) ( N n N nm j e n x m X π (2)gdzie: x(n) - jest dyskretnym ciągiem spróbkowanych wartości w dziedzinie czasu sygnału
ciągłego x(t).
II. Szybka transformata Fouriera FFT – procedura fft w MATLABie
Przykład Dla przebiegu x(t): ) 10 sin( 5 ) 10 cos( 5 ) 5 sin( 1 ) 5 cos( 2 ) sin( 3 ) cos( 4 1 ) (t t t t t t t x = + ω + ω + ω − ω + ω − ω (3)
1. Wyznaczyć rozkład harmoniczny Fouriera.
2. Korzystając z współczynników ai, bi rozkładu Fouriera dokonać porównania przebiegu
aproksymowanego z przebiegiem wzorcowym x(t).
Zadanie to realizuje przedstawiony m-plik. % dydaktyka 2006
% matlab cw 2 % analiza fouriera
T=0.1;n=2047; % okres i ilosc probek w okresie
% uwaga! ilosc probek ma wpływ na dokladnosc odwzorowania t=0:T/n:T;n=length(t);
w=2*pi/T; % pulsacja x0=ones(1,n);
m=10; % największa harmoniczna w sygnale uzytecznym
x1=4*cos(w*t)+3*sin(w*t); x2=2*cos(5*w*t)-1*sin(5*w*t); x3=5*cos(m*w*t)-5*sin(m*w*t);
x=x0+x1+x2+x3; % przebieg x(t) do analizy widmowej widmo=fft(x); % szybka transformata fouriera
sp=widmo; % do wyznaczenia rozkladu harmonicznych
C=widmo(1:m+1);widmo=[]; % redukujemy widmo do zakresu: (sklada stala -:- m harmoniczna)
C=C*2/n;
C(1)=C(1)/2; % skladowa stala
A=real(C),B= -imag(C) % wspolczynniki wielomianu trygonometrycznego xx=zeros(1,n);
for k=0:m
xx=xx+A(k+1)*cos(k*w*t)+B(k+1)*sin(k*w*t); end;
% aproksymacja wielomianem trygonometrycznym figure(1)
plot(t,x,'g',t,xx,'r-.') xlabel('t');
ylabel('x(t), xm(t)'); Legend('x(t)','xm(t)');
% sprawdzenie, oba wykresy powinny sie pokrywac grid on
% ---tworzenie wykresu harmonicznych --- figure;
p_w=sqrt(sp.*conj(sp))/(n/2); % przeskalowanie amplitudy przez czynnik (n/2)
f=n/2*(0:n/2)/(n/2); % ograniczenie zakresu do częstotliwości dodatnich
%p_w(2:n/2)=2*p_w(2:n/2); przeniesienie mocy częstotliwości ujemnych na
%czętotliwości dodatnie (nalezy zastosować w przypadku gdy p_w/n)
p_w(n/2+2:n)=[]; p_w(1)=p_w(1)/2;
bar(f(1:(m+1))/T,p_w(1:(m+1)),0.1); %przeskalowanie wykresu na częstotliwość rzeczywistą
grid; xlabel('f');
W wyniku otrzymujemy: 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 -15 -10 -5 0 5 10 15 t x (t ), x m (t ) x(t) xm(t)
Rys. 1 Porównanie przebiegów x(t) oraz aproksymowanego xm(t)
0 10 20 30 40 50 60 70 80 90 100 0 1 2 3 4 5 6 7 8 f a m p lit u d y h a rm o n ic z n y c h
Rys.2 Rozkład harmonicznych w funkcji częstotliwości
Uwagi do przykładu
Przetwarzanie wstępne danych czasowych przed wyznaczeniem FFT
Używając algorytmu FFT o podstawie 2 należy dążyć do tego by liczba próbek była równa
wielokrotności liczby dwa. Jeżeli dysponujemy liczbą próbek z zakresu 2k−1 < N <2k, należy
uzupełnić liczę próbek do wartości 2k za pomocą zer, a nie odrzucać do wartości 2k-1.
Należy pamiętać, że korzystając z algorytmu FFT otrzymujemy po transformacji próbki
zespolone X(m)=Xreal(m)+jXimag(m). Aby wyznaczyć prawdziwą wartość amplitudy
z dziedziny czasu na podstawie wyników widmowych należy podzielić wartości przez
czynnik skalujący N. W przypadku rzeczywistych próbek amplitudowych FFT
III. Opis zadania laboratoryjnego
1. Przeprowadzić analizę Fouriera przebiegu piłokształtnego. Wyznaczyć współczynniki
rozkładu ai, bi,. Liczbę harmonicznych ograniczyć do pięciu najbardziej znaczących.
Porównać przebieg wzorcowy x(t) z przebiegiem aproksymowanym xm(t). Przedstawić
rozkład częstotliwościowy amplitud harmonicznych na wykresie.
2. Dokonać identyfikacji modelu ciągłego na podstawie charakterystyk widmowych
Metodę tę stosuje się, gdy trudno jest zrealizować wymuszenie skokowe i sinusoidalne. Dla
wybranego sygnału wejściowego u(t) rejestruje się odpowiedź sygnału wyjściowego y(t).
Dokonuje się przekształcenia Fouriera sygnałów u(t) i y(t) (za pomocą algorytmu FFT).
Określenie charakterystyki częstotliwościowej polega na wyznaczeniu wyrażenia:
{ }
{ }
( ) F ) ( F ) ( ) ( ) ( t u t y j U j Y j K = = ω ω ω , (4)gdzie F
{ }
oznacza przekształcenie Fouriera dla zarejestrowanych przebiegów u(t), y(t).Sygnał pobudzający u(t) przyjmuje tylko dwie wartości +a oraz -a przy czym zmiana tych
wartości występuje przypadkowo, w chwilach będących wielokrotnościami okresu
próbkowania Tp (rys. 3). u(t) a t - a
Rys. 3 Wykres sygnału binarnego losowego
Przeprowadzić identyfikację układu przedstawionego na rys. 4.
R
C
u(t) y(t)
Równania różniczkowe potrzebne do określenia przebiegu y(t) są następujące: ) ( ) (t iR y t u = + (5) dt t dy C i= ( ) (6) Przebieg ćwiczenia
W części pierwszej należy napisać m-plik funkcyjny pozwalający wyznaczyć współczynniki
rozkładu Fouriera dla dowolnego przebiegu x(t). Dobrać okres T przebiegu piłokształtnego
oraz częstotliwość próbkowania (realizowane za pomocą doboru ilości próbek).
Przeprowadzić analizę przy zmianie tych parametrów.
W części drugiej wyznaczyć przebieg y(t). Należy skorzystać z m-plików służących do
rozwiązywania równań różniczkowych (poprzednie zadanie laboratoryjne). Następnie
wyznaczyć rozkład harmoniczny Fouriera dla przebiegów u(t) oraz y(t). W końcowym etapie
określić transmitancje widmową K(jω).
W sprawozdaniu należy przedstawić między innymi:
- najważniejszą część skryptów m-plików funkcyjnych, dla części pierwszej i drugiej,
- wykres przebiegów sygnału wzorcowego x(t) i sygnału aproksymowanego xm(t),
- wykres rozkładu częstotliwościowego harmonicznych dla przebiegu piłokształtnego,
- przebieg napięcia na kondensatorze y(t) (rys.4),
- charakterystykę widmową K(jω) (wzór 4),