Cyfrowe przetwarzanie sygnałów
Transkrypt
Cyfrowe przetwarzanie sygnałów
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 ∞ X(f) = − j 2πft dt (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). X (m) = ∑ x(n)e − j 2πnm / N N −1 (2) n =0 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): x(t ) = 1 + 4 cos(ω t ) + 3 sin( ω t ) + 2 cos(5ω t ) − 1sin( 5ω t ) + 5 cos(10ω t ) − 5 sin(10ω t ) (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). 3. Przedstawić na wykresie rozkład harmonicznych w funkcji częstotliwości. 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'); ylabel('amplitudy harmonicznych'); W wyniku otrzymujemy: 15 x(t) xm(t) 10 x(t), xm(t) 5 0 -5 -10 -15 0 0.01 0.02 0.03 0.04 0.05 t 0.06 0.07 0.08 0.09 0.1 Rys. 1 Porównanie przebiegów x(t) oraz aproksymowanego xm(t) 8 7 amplitudy harmonicznych 6 5 4 3 2 1 0 0 10 20 30 40 50 f 60 70 80 90 100 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 2 k −1 < N < 2 k , 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 ( X (m) = X 2 real (m) + X 2 imag (m) ) należy podzielić przez czynnik skalujący N/2. 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: Y ( jω ) F{y (t )} = , (4) U ( jω ) F{u (t )} gdzie F{ } oznacza przekształcenie Fouriera dla zarejestrowanych przebiegów u(t), y(t). K ( jω ) = 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 u(t) Rys. 4 Schemat układu RC C y(t) Równania różniczkowe potrzebne do określenia przebiegu y(t) są następujące: u (t ) = iR + y (t ) dy (t ) i=C dt (5) (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 Przeprowadzić analizę przy zmianie tych parametrów. ilości próbek). 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), - wnioski końcowe z przeprowadzonego ćwiczenia.