实验一序列的傅立叶变换
一、 实验目的1■进一步加深理解DFS,DFT算法的原理;2.研究补零问题;3■快速傅立叶变换
(FFT )的应用。
二、 实验步骤
复习DFS和DFT的定义,性质和应用;
熟悉MATLAB语言的命令窗口、编程窗口和图形窗口的使用;利用提供的 程序例子编写实验用程序;按实验内容上机实验,并进行实验结果分析;写 出完整的实验报告,并将程序附在后面。三、 实验内容
周期方波序列的频谱试画出下面四种情况下的的幅度频谱 ,并分析补零
? ‘1,mN 兰 n 兰 mN+L—1
x(n)=丿
、0, m N + L 兰 n 兰(m +1)N —1
m = 0,_1,_2,
X (k)二 DFS [?(n)]
(1)L = 5, N = 20; (2)L = 5, N 二 40;
(3)L = 5, N = 60; (4)L = 7, N = 60
后,对信号频谱的影响。
有限长序列x(n)的DFT取x(n)(n=0:10)时,画出x(n)的频谱X(k)的幅度;将(1)中的x(n)以补零的方式,使x(n)加长到(n:0~100)时,画出
x(n) =cos(0.48「n) cos(0.52「n)
x(n)的频谱X(k)的幅度;
取x(n)(n:0~100)时,画出x(n)的频谱X(k)的幅度。利用FFT进 行谱分析3■已知:模拟信号
x(t) =2si n(4 二 t) 5cos(81)
以t=0.01n(n=0:N-1)进行采样,求N点DFT的幅值谱。
请分别画出 N=45; N=50;N=55;N=60时的幅值曲线。
4.自己编写基2 DIT-FFT的FFT函数,并用编写 MATLAB程序,利用
DFT计算所给序列的线性卷积;在程序中利用自己编写的 FFT函数。
已知 x(n)二 cos(0.48 n) cos(0.52 n), 0 乞 n 乞 10,h[n ]讥[门]={0 0勿
i0 elsewhere
求 y[n] = x[n]* h[n]
四、图
1、( 1)
DFS of SQ.wave:L=16,N=64
k
(2)
DFS of SQ.wave:L=16,N=64
15
10
0 J
-20
*
D :
-15
-10
-5
5 10
15
20
DFS of SQ.wave:L=16,N=64
15
10
0 -30
-20 -10
10 20
30
(4)
DFS of SQ.wave:L=16,N=64
signal x(n) ,0<=n<=100
0
10 20 30 40
50 60 70
80 90 100
n
freque ncy in pi un its
FFT N=45
150
100
-^1 1—
/ I
50
0
Rl 1 U±l 11 j-iriii Ia| 1IJ llEl
0 2 4 6 8
FFT N=50
150
I
100
TOC \o "1-5" \h \z 50 '
0 L _ _ ■ ■
0 2 4 6 8
150 -
100
-
50
1
,1
0 L
0
2
4
6 8
FFT N=55
FFT N=16
附录:程序
%Example1
L=5;N=20;
n=1:N;
xn=[ones(1,L),zeros(1,N-L)];
Xk=dfs(xn,N); magXk=abs([Xk(N/2+1:N) Xk(1:N/2+1)]); k=[-N/2:N/2];figure(1) subplot(2,1,1); stem(n,xn);xlabel('n');ylabel('xtide(n)'); title('DFS of SQ.wave:L=16,N=64'); subplot(2,1,2);stem(k,magXk);
axis([-N/2,N/2,0,16]); xlabel('k');ylabel('Xtide(k)');%Example2
M=100;
N=100;
n=1:M;
xn=cos(0.48*pi*n)+cos(0.52*pi*n); n1=[0:1:N-1];y1=[xn(1:1:M),zeros(1,N-M)];figure(1) subplot(2,1,1);
stem(n1,y1);xlabel('n');
title('signal x(n) ,0<=n<=100');
axis([0,N,-2.5,2.5]);
Y1=fft(y1);
magY1=abs(Y1(1:1:N/2+1));
k1=0:1:N/2;
w1=2*pi/N*k1;
subplot(2,1,2);
title('Samples of DTFT Magnitude');
stem(w1/pi,magY1);
axis([0,1,0,10]);
xlabel('frequency in pi units');
%example 3
figure(1)
subplot(2,2,1)
N=45;n=0:N-1;t=0.01*n;
q=n*2*pi/N; x=2*sin(4*pi*t)+5*cos(8*pi*t);y=fft(x,N);
plot(q,abs(y)) stem(q,abs(y)) title('FFT N=45')%
subplot(2,2,2)
N=50;n=0:N-1;t=0.01*n;
q=n*2*pi/N; x=2*sin(4*pi*t)+5*cos(8*pi*t);y=fft(x,N);
plot(q,abs(y))
title('FFT N=50')
%
subplot(2,2,3)
N=55;n=0:N-1;t=0.01*n;
q=n*2*pi/N; x=2*sin(4*pi*t)+5*cos(8*pi*t);y=fft(x,N);
plot(q,abs(y))
title('FFT N=55')
%
subplot(2,2,4)
N=16;n=0:N-1;t=0.01*n;
q=n*2*pi/N;
x=2*sin(4*pi*t)+5*cos(8*pi*t); y=fft(x,N);plot(q,abs(y))
title('FFT N=16')
function[Xk]=dfs(xn,N)
n=[0:1:N-1];
k=[0:1:N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN4nk;
Xk=xn*WNnk;
相关热词搜索: 序列 变换 实验 报告 傅里叶