2514


Przemysław Paturaj 184135 29.11.2011

Paweł Korab 187967

Wydział Elektroniki, AiR

Prowadzący : Dr inż. Paweł Biernacki

TP Wtorek 7:30

Sprawozdanie nr 2

Temat : Dyskretna transformata Fouriera DFT.

Zadanie 1.

DFT dla funkcji sinus :

a) całkowita liczba okresów

0x01 graphic

b) niecałkowita liczba okresów

0x01 graphic

Niepełna liczba okresów (ograniczona długość sygnału) wpływa na rozdzielczość widma rozciągając go. W dziedzinie częstotliwości występuje przeciek widma (Widmo się powiela i nakładają się na siebie wykresy).

Zadanie 2.

Zbadać fazy sygnału : sinus i cosinus

a) sinus

0x01 graphic

b) cosinus

0x01 graphic

Zadanie 3.

Zbadać sygnał prostokąta, wyświetlić wartość rzeczywistą i zespoloną

a) sygnał pierwotny

0x01 graphic

b) rzeczywisty

0x01 graphic

c) zespolony

0x01 graphic

Zadanie 4.

Zbadać sygnał nagrania .wav :

a) policzyć transformate fouriera, czym różnią się dwie wersje ?

wersja 1 :

0x01 graphic

wersja 2:

0x01 graphic

Nagrania po transformacie różnią się minimalnie amplitudami na początku i końcu badanego sygnału.

b) czym różnią się DFT o dwóch różnych "N" ?

Zwiększenie ilości próbek sygnału pozytywnie wpływa na poprawę jakości DFT , redukcję przecieku widma. Również okienkowanie zmniejsza przeciek DFT przez zminimalizowanie amplitudy listków bocznych funkcji . Im okno jest bardziej ciągłe, tym amplituda listków bocznych jest mniejsza, a tym samy redukowany jest przeciek. Przeciek widma jest jedną z cech charakterystycznych DFT. Powoduje on, że wyniki DFT stanowią jedynie aproksymację rzeczywistych widm oryginalnych sygnałów poddanych próbkowaniu.

0x01 graphic

0x01 graphic

Skrypty :

[t,x]=prostokat_dobry(10,2,100,2,0,0.3);

y=fft(x);

fp=100;

f=(0:length(y)-1)*fp/length(y);

yre=real(y);

yim=imag(y);

subplot(2,1,1)

plot(f,yre)

semilogy(f,yre)

title('Sygnał rzeczywisty');

xlabel('Częstotliwość [Hz]');

subplot(2,1,2)

plot(f,yim)

semilogy(f,yim)

title('Sygnał zespolony');

xlabel('Częstotliwość [Hz]');

semilogy(f,abs(y))

title('Sygnał pierwotny');

xlabel('Częstotliwość [Hz]');

function faza(s, fp)

N = length(s);

df = fftshift(fft(s));

dff = abs(df);

gff = (unwrap(angle(df)));

F = fp*[0:N-1]/N;

plot(F, gff);

grid on;

title('Faza sygnalu');

ylabel('Faza sygnalu phi');

xlabel('Czestotliwosc sygnalu f');

subplot(2,2,1)

[x,fp]=wavread('3ver1.wav');

N=length(x);

t=0:1/fp:(N-1)/fp;

y=abs(fft(x));

plot(t,x); %sygnal oryginalny

title('3ver1-sygnal oryginalny');

xlabel('Częstotliwość [Hz]');

subplot(2,2,2)

plot(t,y); %sygnal fft

title('3ver1-po transformacie');

xlabel('Częstotliwość [Hz]');

subplot(2,2,3);

[s,fp]=wavread('3ver2.wav');

N1=length(s);

t=0:1/fp:(N1-1)/fp;

y1=abs(fft(s));

plot(t,s); %sygnal oryginalny

title('3ver2-sygnal oryginalny');

xlabel('Częstotliwość [Hz]');

subplot(2,2,4);

plot(t,y1); %sygnal fft

title('3ver2-po transformacie');

xlabel('Częstotliwość [Hz]');

figure

hold on;

grid on;

xp=abs(fft(x(1:100)));

xnp=abs(fft(x));

Subplot(2,1,1)

plot(xp)

title('Pełna liczba okresów');

xlabel('Częstotliwość [Hz]');

Subplot(2,1,2)

plot(xnp)

title('Niepełna liczba okresów');

xlabel('Częstotliwość [Hz]');

function [t,x]=sinus1(A,f,fp,T,faza)

t=zeros(1,T*fp);

x=t;

k=1;

for i=0:1/fp:T

t(k)=i;

x(k)=A*cos(2*pi*f*i+(faza*pi)/180);

k=k+1;

end;

function [t,x]=prostokat_dobry (A,f,fp, T, faza, w)

t=zeros (1, T*fp);

x=t;

proz=floor(w*fp/f);

prz=floor((1-w)*fp/f);

k=1;

i=0;

while k <=(T*fp)

for j=i: proz

t(k)=i;

x(k)=A;

k=k+1;

i=i+1/fp;

end;

for j=1: prz

x(k)=0;

t(k)=i;

k=k+1;

i=i+1/fp;

end;

end;

fp=100;

t=0:1/fp:1;

f=400/140; % mniejsze : 400/16

x=0.5*sin(2*pi*f*t);

X=fft(x);

X_mag=abs(X);

stem(X_mag);

title('Większe "N"'); %title('Większe "N"');

xlabel('Częstotliwość [Hz]');



Wyszukiwarka

Podobne podstrony:
2514
2514
2514
2514
2514
2514
2514
2514
2514
2514
2514

więcej podobnych podstron