数字信号处理实验五课案.docx
- 文档编号:24866019
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:13
- 大小:284.43KB
数字信号处理实验五课案.docx
《数字信号处理实验五课案.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验五课案.docx(13页珍藏版)》请在冰豆网上搜索。
数字信号处理实验五课案
实验报告
课程名称:
数字信号处理
实验四:
利用DFT分析离散信号频谱
班级:
通信1403
学生姓名:
强亚倩
学号:
1141210319
指导教师:
范杰清
华北电力大学(北京)
一、实验目的
应用离散傅里叶变换(DFT),分析离散信号x[k]。
深刻理解利用DFT分析离散信号频谱的原理,掌握改善分析过程中产生的误差的方法。
二、实验原理
根据信号傅里叶变换建立的时域与频域之间的对应关系,可以得到有限长序列的离散傅里叶变换(DFT)与四种确定信号傅里叶变换的之间的关系,实现由DFT分析其频谱。
三、实验内容
三、实验内容
1.利用FFT分析信号的频谱;
(1)确定DFT计算的参数;
(2)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。
函数代码:
N=32;k=0:
N-1;
x=cos(3*pi/8.*k);
X=fft(x,N);
subplot(2,1,1);
stem(k-N/2,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k-N/2,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)’);
2.利用FFT分析信号
的频谱;
(1)确定DFT计算的参数;
(2)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。
函数代码为:
k=0:
30;
x=0.5.^k;
subplot(2,1,1);
stem(k,x);
subplot(2,1,2);
w=k-15;
plot(w,abs(fftshift(fft(x))));
3.有限长脉冲序列
,利用FFT分析其频谱,并绘出其幅度谱与相位谱。
函数代码为:
k=0:
5;
x=[2,3,3,1,0,5];
X=fft(x);
subplot(2,1,1);
stem(k,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)');
4.某周期序列由3个频率组成:
,
利用FFT分析其频谱。
如何选取FFT的点数N?
此3个频率分别对应FFT计算结果X[m]中的哪些点?
若选取的N不合适,FFT计算出的频谱X[m]会出现什么情况?
N取三个因子的最小公倍数为32
函数代码为:
N=32;k=0:
N-1;
x=cos(7*pi/16.*k)+cos(9*pi/16.*k)+cos(pi/2.*k);
X=fft(x,N);
subplot(2,1,1);
stem(k-N/2,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k-N/2,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)');
5.某离散序列由3个频率组成:
利用FFT分析其频谱。
(1)对x[k]做64点FFT,绘出信号频谱,能分辨出其中的两个频率吗?
答:
函数代码为N=64;k=0:
N-1;
x=cos(2*pi/15.*k)+0.75*cos(2.3*pi/15.*k);
X=fft(x,N);
subplot(2,1,1);
stem(k-N/2,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k-N/2,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)');
(2)对x[k]补零到256点后计算FFT,能分辨出其中的两个频率吗?
答:
函数代码为:
N=256;k=0:
N-1;
x=cos(2*pi/15.*k)+0.75*cos(2.3*pi/15.*k);
X=fft(x,N);
subplot(2,1,1);
stem(k-N/2,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k-N/2,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)');
分辨得出其中的两个频率
(3)选用非矩形窗计算FFT,能够分辨出其中的两个频率吗?
要看情况,若用汉明窗,则可改善频率泄露的情况,因为汉明窗的幅频特性是旁瓣衰减较大,主瓣峰值与第一个旁瓣峰值衰减可达40db。
因此可以分辨出两个频率
(4)若不能够很好地分辨出其中的两个频谱,应采取哪些措施?
答:
应当增大n值,并且使得其为因子周期的公倍数。
6.已知序列
利用FFT分析下列信号的幅频特性,频率范围为
,N=500点。
(1)
函数代码为:
N=101;k=-50:
50;
x=exp(-(0.2.*k).^2/2);
X=fft(x,N);
subplot(2,1,1);
stem(k,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)');
(2)
函数代码为:
N=101;k=-50:
50;
x=exp(-(0.4.*k).^2/2);
X=fft(x,N);
subplot(2,1,1);
stem(k,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)');
(3)若将上述x[k]乘以cos(pk/2),重做
(1)和
(2)。
答:
函数代码为:
N=101;k=-50:
50;
x=exp(-(0.2.*k).^2/2).*cos(pi.*k/2);
X=fft(x,N);
subplot(2,1,1);
stem(k,abs(fftshift(X)));
ylabel('Magnitude');
xlabel('Frequency(rad)');
subplot(2,1,2);
stem(k,angle(fftshift(X)));
ylabel('Phase');
xlabel('Frequency(rad)’)
四.实验思考题
1.既然可直接由DTFT定义计算序列DTFT,为何利用DFT分析序列的频谱?
答:
离散序列的DTFT是连续的周期函数,不适合计算机进行计算,而序列的DFT本身是一个序列,因此特别适合计算机进行计算。
除此之外还存在着计算DFT的快速算法FFT。
这又大大的提高了计算的快速性。
2.若序列持续时间无限长,且无解析表达式,如何利用DFT分析其频谱?
答:
频域有限频谱分布将造成时域持续时间的无穷长度。
显然,应用DFT是不可能对时域无穷长度的信号进行分析的。
为利用DFT,必须把时间函数截断,取一有限时间范围,此截断过程可以理解为待分析信号
与一矩形脉冲
相乘,矩形脉冲
称为窗函数。
将
与
相乘,就好象通过一个矩形窗口拍摄
,取出窗口内
的图形。
3.在利用DFT分析离散信号频谱时,会出现哪些误差?
如何克服或改善?
答:
频谱混叠,频率泄漏。
可以通过增加抽样点数N,选择合适的窗函数来加以解决。
4.在利用DFT分析离散信号频谱时,如何选择窗函数?
答:
尽量宽,不要突变。
5.序列补零和增加序列长度都可以提高频谱分辨率吗?
两者有何本质区别?
答:
信号长度N决定了分辨率的高低,N一定无论补零多少,分辨率不变;N一定时增加补零点,只会使频谱变密,可以更多的显示出频谱中的细节。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 五课案
![提示](https://static.bdocx.com/images/bang_tan.gif)