哈工大数字信号处理实验报告实验一.docx
- 文档编号:30159499
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:14
- 大小:114.82KB
哈工大数字信号处理实验报告实验一.docx
《哈工大数字信号处理实验报告实验一.docx》由会员分享,可在线阅读,更多相关《哈工大数字信号处理实验报告实验一.docx(14页珍藏版)》请在冰豆网上搜索。
哈工大数字信号处理实验报告实验一
HarbinInstituteofTechnology
数字信号处理
实验报告
学生姓名
:
学号
:
班级
:
专业
:
任课教师
:
所在院系
:
2015年12月
实验一:
用FFT作谱分析
一、实验目的
(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
(2)熟悉FFT算法原理和FFT子程序的应用。
(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二、实验内容
(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。
(2)复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图。
(3)编制信号产生子程序,产生以下典型信号供谱分析用:
,
,
,其它
,
,
1,其它
三.程序框图
下图给出了主程序框图,供参考。
本实验提供FFT子程序和通用绘图子程序。
四、实验过程
(1)画出步骤二中所给出的信号,并逐个进行谱分析。
下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的采样频率fs,供实验时参考。
x1(n),x2(n),x3(n),x4(n),x5(n):
N=8,16
x6(t):
fs=64(Hz),N=16,32,64(n=0:
1:
69)
(2)令x7(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换,
X(k)=DFT[x(n)]
(3)令x8(n)=x4(n)+jx5(n),重复
(2)
直接运行程序,按照实验内容及程序提示键入1~8,分别对及x1(n)~x6(n)、x7(n)=x4(n)+x5(n),x8(n)=x4(n)+jx5(n)进行谱分析。
输出的波形x1(n)~x5(n)及其8点DFT和16点DFT,x6(n)的16点、32点和64点采样序列及其DFT。
五、实验结果及分析
1.
及其8点和16点DFT
2.
及其8点和16点DFT
3.
及其8点和16点DFT
4.
的8点和16点波形及其DFT
5.
的8点和16点波形及其DFT
6.
的16点、32点和64点采样序列波形及其DFT
7.
的8、16点DFT
8.
的8点和16点DFT
9.
的8点和16点DFT
六、实验源程序
第一问:
functiondisplay1
fori=1:
6
figure(i);
display1_6(i);
end
functiondft1_6(i,N)
ifi<=3
str1=['x','_',num2str(i),'(n)','的',num2str(N),'点DFT'];
[x,n]=xn(i,N);
X=abs((fft(x,N)));
stem(0:
N-1,X);
title(str1);
else
str1=['x','_',num2str(i),'(n)','的',num2str(N),'点DFT'];
[x,n]=xn(i,N);
X=abs((fft(x(:
1:
N),N)));
stem(0:
N-1,X);
title(str1);
end
functionshiyu1_6(i,N)
ifi<6
str=['x','_',num2str(i),'(n)'];
[x,n]=xn(i,N);
stem(0:
N-1,x(1:
N));
title(['x_',num2str(i),'(n)'])
else
t=0:
0.01:
1;
x=cos(8*pi*t)+cos(16*pi*t)+cos(20*pi*t);
plot(t,x);
title('x_6(t)')
end
functiontest_x6()
fori=1:
3
str4=['x_6(n)的',num2str(8*2^i),'点DFT'];
subplot(2,2,i+1);
n=0:
1:
(8*2^i-1);
x=cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);
X=abs((fft(x,8*2^i)));
stem(0:
1:
(8*2^i-1),X);
title(str4);
end
functiondisplay1_6(i)
ifi<=5
fori1=1:
2
subplot(2,2,i1);
shiyu1_6(i,8*i1);
end
fori2=1:
2
subplot(2,2,i2+2);
dft1_6(i,8*i2);
end
else
subplot(2,2,1);
shiyu1_6(i,8);
test_x6();
end
第二问:
[x1,n1]=xn(4,8);
[x2,n2]=xn(5,8);
x=x1+x2;
fori=1:
2
X=abs((fft(x,8*i)));
str2=['x_7的',num2str(8*i),'点DFT'];
subplot(2,1,i);
stem(0:
8*i-1,X);
title(str2);
end
第三问:
[x1,n1]=xn(4,8);
[x2,n2]=xn(5,8);
x3=x2*j;
x=x1+x3;
fori=1:
2
X=abs((fft(x,8*i)));
str3=['x_8的',num2str(8*i),'点DFT'];
subplot(2,1,i);
stem(0:
8*i-1,X);
title(str3);
end
[x1,n1]=xn(4,8);
n2=0:
19;
x2=sin(pi/4*n2);
x3=x2*j;
x=x1+x3;
fori=1:
2
str4=['x_9的',num2str(8*i),'点DFT'];
X=abs((fft(x,8*i)));
subplot(2,1,i);
stem(0:
8*i-1,X);
title(str3);
end
七、思考题
1.在N=8时,
和
的幅频特性会相同吗?
为什么?
N=16呢?
答:
N=8时两个的幅频特性相同,因为二者互为循环时移的结果。
N=16时两个的幅频特性不相同,因为3零以后无法通过平移得到。
2.如果周期信号的周期预先不知道,如何用FFT进行谱分析?
答:
周期信号的周期预先不知道时,可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求
八、实验总结与体会
在实验中我发现一个序列的DFT如果点数不同,其结果可能有很大的差别,比如本实验中的
的8点DFT和16点DFT的差别很大。
其原因是
只有一个频率分量w=π/8,8点DFT的分辨率为2π/8=π/4,16点DFT的分辨率为2π/16=π/8,因此用8点的DFT分辨率不够,会发生频谱泄露,而16点DFT分辨率刚好够用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 数字信号 处理 实验 报告