数字信号处理实验三--用FFT
数字信号处理实验三--用FFT作谱分析
XXXX 大学实验报告
XXXX 年 XX 月 XX 日
课程名称: 数字信号处理 实验名称:用FFT 作谱分析
班级: XXXXXXXX 班 学号: XXXXXXXX 姓名: XXXX
实验三 用FFT 作谱分析
一、 实验目的
(1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一
种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质); (2) 熟悉FFT 算法的原理;
(3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法分析误差及
其原因,以便在实际中正确应用FFT 。
二、 实验内容
(1)x(n)={1 0≤n ≤5
0 其他
构造DFT 函数计算x(n)的10点DFT ,20点DFT
并画出图形;
(2)利用FFT 对下列信号逐个进行谱分析并画出图形 a 、x 1(n)=R 4(n); b 、x 2(n)=cos π
4n ; c 、x 3(n)=sin π8n
以上3个序列的FFT 变换区间N=8,16
(2)设一序列中含有两种频率成份,f1=2HZ,f2=2.05HZ,采样频率取为fs =10HZ ,即 )/2sin()/2sin()(2
1
s
s
f n f f n f n x ππ+=
要区分出这两种频率成份,必须满足N>400,
为什么?
a.取x(n)(0≤n<128)时,计算x(n)的DFT X(k)
b.将a 中的x (n )以补零方式使其加长到0≤n<512,计算X(k)
c.取x(n)( 0≤n<512),计算X(k)
(3)令)()()(32n x n x n x +=
用FFT 计算16点离散傅立叶变换并画出图形,分析DFT 的对称性 (4))()()(32n jx n x n x +=
用FFT 计算16点离散傅立叶变换并画出图形,分析DFT 的对称性 三、 实验代码 (1)1、 代码
function [Xk]=dft(xn,N)
n=[0:1:N-1];
k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk;
Xk=xn*WNnk; %离散傅立叶变换方法定义
N=10; %10点DFT n1=[0:N-1];
x1=[ones(1,6),zeros(1,N-6)]; %生成1行6列的单
位矩阵和1行N-6列的0矩阵
Xk1=dft(x1,N); %10点DFT figure(1);
subplot(2,1,1);
stem(n1,x1); %画火柴图
xlabel(‘n’);ylabel(‘x(n)’);
subplot(2,1,2);
stem(n1,abs(Xk1));
xlabel(‘n’);ylabel(‘x(n)’);
N=20;
n2=[0:N-1];
x2=[ones(1,6),zeros(1,14)];
Xk2=dft(x2,N);
figure(2);
subplot(2,1,1);
stem(n2,x2);
xlabel(‘n’);ylabel(‘x(n)’);
subplot(2,1,2);
stem(n2,abs(Xk2));
xlabel(‘n’);ylabel(‘x(n)’);
2、运行结果
图1 10点DFT
图2 20点DFT
3、结果分析
定义x(n)的N 点DFT 为
由定义知:DFT 具有隐含周期性,周期与DFT 的变换长度N 一致,这说明,变换长度不一样,DFT 的结果也不一样
(2)1、代码
1
0)()(1
0-≤≤=∑-=N k W n x k X N n nk
N
N
j
N e
W π2-=其中
N=64;
n=[0:N-1];
x1=[ones(1,4),zeros(1,N-4)];%定义
x1(n)=R4(n)
x2=cos((pi/4)*n); %定义
n
x2(n)=cosπ
4
x3=sin((pi/8)*n); %定义
n
x3(n)=sinπ
8
y1=fft(x1);
y2=fft(x2);
y3=fft(x3); %分别进行DFT
figure(1);
m1=abs(y1);
subplot(2,1,1); %绘制x1(n)的图形
stem(n,x1);
subplot(2,1,2); %绘制x1(n)的DFT图形
stem(n,m1)
figure(2);
m2=abs(y2);subplot(2,1,1);stem(n,x2); %绘制x2(n)的图形
subplot(2,1,2);stem(n,m2);
%绘制x1(n)的DFT图形
figure(3);
m3=abs(y3);subplot(2,1,1);stem(n,x3); %绘制x3(n)的图形
subplot(2,1,2);stem(n,m3); %绘制x1(n)的DFT图形
2、运行结果
图3 x1(n)的DFT前后图形
图4 x2(n)的DFT 前后图形
图 5 x3(n)的DFT前后图形
3、结果分析
由图可以看出,离散序列的DFT与对应连续函数的FT有对应关系,不同之处在于DFT的结果是离散的,而FT的结果是连续的,再者,DFT结果与DFT 的变换长度N有关。
(3)a、1、程序
N=256;
n=[0:N-1];
x=sin(2*pi*2*n/10)+sin(2*pi*2.05*n/ 10); %定义x
X=fft(x); %DFT
figure(1);
subplot(2,1,1);
stem(n,x); %绘制x
subplot(2,1,2);
plot(n,abs(X)); %绘制DFT后的图形
2、运行结果
图6 长度为256的DFT
b、1、程序
N=128;
n=[0:N-1];
n1=[0:511];
x=sin(2*pi*2*n/10)+sin(2*pi*2.05*n/10);
x1=[x,zeros(1,384)]; %以补零方式将n加长到512
X1=fft(x1);
figure();
subplot(2,1,1)
stem(n1,x1); %绘制x subplot(2,1,2);
plot(n1,abs(X1)) %绘制DFT后的图形
2、运行结果
图7 以补零方式加长到512的DFT C、1、程序
N1=512;
n2=[0:N1-1];
x2=sin(2*pi*2*n2/10)+sin(2*pi*2.05*n2/10);
%长度为512时变换
X2=fft(x2);
hold on
figure();
subplot(2,1,1);
stem(n2,x2); %绘制x subplot(2,1,2);
plot(n2,abs(X2)); %绘制DFT后的图形
2、运行结果
图8 长度为512的DFT
3、结果分析
由三种情况下的DFT结果可知,要区分信号中的两个不同频率,需要有一定个数的N,也就是说,N要足够大才可以区分开两个频率;
第一种N,N<400,因此DFT后二者频率未被区分开来;
第二种N,N以补零的方式加长到512点,大于400,则可以将二者频率区分开来;
第三种N,N>400,二者频率分开了;
也就是说,区分不同频率从DFT的角度来讲只要加长N的长度,而不管是以补零方式加长还是其他方式加长。
(4)1、程序
N=16;
n=[0:N-1];
x2=cos((pi/4)*n);x3=sin((pi/8)*n);
x=x2+x3; %定义前述的序列x2(n)、x3(n)和x(n)
y2=fft(x2);y3=fft(x3); y=fft(x); %对x2(n)、x3(n) 和x(n)进行傅立叶变换
figure(1);
m2=abs(y2);
subplot(2,1,1);
stem(n,x2); %绘制x2(n)的图形subplot(2,1,2);stem(n,m2) %绘制DFT后的x2(n)图形
figure(2);
m3=abs(y3);
subplot(2,1,1);stem(n,x3); %绘制x3(n)的图形
subplot(2,1,2);stem(n,m3); %绘制DFT后的x3(n)图形
figure(3);
m=abs(y);
subplot(2,1,1);stem(n,x); %绘制x(n)的图形
subplot(2,1,2);stem(n,m); %绘制DFT后的x(n)图形
2、运行结果
图9 x2(n)DFT前后的图形
图10 x3(n)DFT前后的图形
图11 x(n)DFT前后的图形
3、结果分析
a、x2(n)为实偶对称序列(余弦序列),也可以认为是共轭对称序列;
b、x3(n)为实奇对称序列(正弦序列),也可以认为是共轭反对称序列;
c、x(n)可以认为是一个分成了共轭对称和共轭反对称序列的实序列,则其DFT的实部对应x2(n),其虚部和j一起对应x3(n);
以上就是DFT的共轭对称性的一部分。
(5)1、程序
N=16;
n=[0:N-1];
x1=cos((pi/4)*n)+j*sin((pi/8)*n);
y1=fft(x1);
figure(1);
m1=abs(y1);
subplot(2,1,1);stem(n,x1); %绘制x1(n)的图形
subplot(2,1,2);stem(n,m1); %绘制DFT后的x1(n)图形
2、运行结果
图12 x1(n)DFT 前后的图形
3、结果分析
X1(n)可以认为是一个分成了实部和虚部的序列,则其DFT 的实部对应共轭对称序列,其虚部和j 一起对应共轭反对称序列。就是DFT 的共轭对称性的另一部分。
四、 实验小结
序列的傅立叶变换和Z 变换共同特点是:(1)适用于无限长序列;(2)变换的结果是连续函数,从计算的角度来看这是不利的。
对有限长序列可采用离散傅立叶变换(简称DFT ),它是可利用计算机进行数值计算的变换,并且存在快速算法,从而使信号的实时处理和设备的简化得以实现。 1、DFT 的定义
设x(n)是一个长度为N 的有限长序列,定义x(n)的N 点DFT 为
2、DFT 与Z 变换的关系
DFT 的物理意义:序列x(n)的N 点DFT 是x(n)的Z 变换在单位圆上的N 点等间隔采样;X(k)为x(n)的傅立叶变换X(e jw )在区间[0,2π]上的N 点等间隔采样。
3、DFT 隐含周期性
1
0)()(1
0-≤≤=∑-=N k W n x k X N n nk N
N
j
N e
W π2-=其中
在DFT变换对中,x(n)和X(k)均为有限长序列,设
nk
N
j
nk
N
e
W
π2
-
=,由于kn
N
W
的周期性,使得x(n)和X(k)隐含周期性,且周期为N。
此外,DFT的基本性质包括线性性质、循环移位性质、循环卷积定理、复共轭序列的DFT以及DFT的共轭对称性等。