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.