Documente Academic
Documente Profesional
Documente Cultură
LAB # 5 HANDOUT
1. FAST FOURIER TRANSFORM
X 1 (k ) = X 11 (k ) + W Nk X 12 (k ) k=0,.....,7
k=0,1,2,3 k=0,1,2,3
X 11 (k ) = X 21 (k ) + W Nk / 2 X 22 (k ) X 12 (k ) = X 23 (k ) + W Nk / 2 X 24 (k )
X 11 (0 ) = X 21 (0 ) + X 22 (0 ) X 12 (0 ) = X 23 (0 ) + X 24 (0 )
X 11 (1) = X 21 (1) jX 22 (1) X 12 (1) = X 23 (1) jX 24 (1)
X 11 (2 ) = X 21 (0 ) X 22 (0 ) X 12 (2 ) = X 23 (0 ) X 24 (0 )
X 11 (3) = X 21 (1) + jX 22 (1) X 12 (3) = X 23 (1) + jX 24 (1)
In command window:
>> x=[ 1 1 0 0 0 0 1 1]
x =
1 1 0 0 0 0 1 1
>> fft(x)
ans =
Columns 1 through 8
4.0000 2.4142+1.0000i 0 -0.4142-1.0000i 0 -
0.4142+1.0000i 0 2.4142-1.0000i
>> ifft(ans)
ans =
1.0000 1.0000 0 0 0.0000 0
1.0000 1.0000
1
EEE420 Lab Handout
2. THE BUTTERFLY
X22(0)
W80 X11(2) = X21(0) - W80 X22(0)
FFT Butterflies
X21(1) X11(1) = X21(1) + W82 X22(1)
x0 X21(0) X1(0)
X11(0)
x1 X23(0) W80
X12(0) X1(4)
0
W81
x5 X23(1) W 8 X12(1) X1(5)
2
x3 X24(0) X12(2) W8 X1(6)
W82
x7 X12(3) W83 X1(7)
X24(1)
2
EEE420 Lab Handout
x[n]= Xa(n,T)
T=sampling interval
Fs=sampling rate, sampling frequency= 1/T
M-file:
3
EEE420 Lab Handout
0.5
Amplitude
0
-0.5
-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Time, msec
Discrete-time signal x[n]
1
0.5
Amplitude
-0.5
-1
0 1 2 3 4 5 6 7 8 9 10
Time index n
Xa(t ) = x(n).sinc[Fs(t nTs)]
n =
4
EEE420 Lab Handout
M-file:
clf;
clear all;
T = 0.1;
f = 13;
n = (0:T:1)';
xs = cos(2*pi*f*n);
%------------------------------------------------------
%linspace(x1,x2,N) generates N points between x1 and x2.
%for N<2, linspace returns x2.
%------------------------------------------------------
t = linspace(-0.5,1.5,500)';
%------------------------------------------------------
%reconstruction formula is shown below.
%------------------------------------------------------
ya = sinc((1/T)*t(:,ones(size(n))) -
(1/T)*n(:,ones(size(t)))')*xs;
plot(n,xs,'o',t,ya);grid;
xlabel('Time index n');
ylabel('Amplitude');
title('Reconstructed continuous-time signal y_{a}(t)');
axis([0 1 -1.2 1.2])
Reconstructed continuous-time signal y a(t)
0.8
0.6
0.4
0.2
Amplitude
-0.2
-0.4
-0.6
-0.8
-1
5
EEE420 Lab Handout
6
EEE420 Lab Handout
%--------------------------------------------------------
% H=freqz(B,A,W) returns the frequency response at
% frequencies designated in vector W.
%--------------------------------------------------------
Hd = freqz(xs,1,wd);
plot(wd/(T*pi),T*abs(Hd));grid;
xlabel('Frequency, KHz'); ylabel('Amplitude');
title('|X(e^{j\Omega})|');
axis([0 1/T 0 2]);
0.6 1.5
Amplitude
Amplitude
0.4 1
0.2 0.5
0 0
0 5 10 0 0.5 1 1.5
Time, msec Frequency, KHz
Discrete-time signal x[n] |X(ej )|
0.8 2
0.6 1.5
Amplitude
Amplitude
0.4 1
0.2 0.5
0 0
0 5 10 0 0.5 1
Time index n Frequency, KHz