云南师范大学DSP数字信号处理实验报告4Word文档格式.docx
《云南师范大学DSP数字信号处理实验报告4Word文档格式.docx》由会员分享,可在线阅读,更多相关《云南师范大学DSP数字信号处理实验报告4Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
![云南师范大学DSP数字信号处理实验报告4Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/26/21c948f1-ec1d-4c16-becc-360d35b948d5/21c948f1-ec1d-4c16-becc-360d35b948d51.gif)
2014年4月2
实验室
云南师范大学同析3栋数字信号处理实验室
一.实验预习
1.实验目的
应用离散傅里叶变换(DFT),分析离散信号x[k]的频谱。
深刻理解DFT分析离散信号频谱的原理,掌握改善分析过程中产生的误差的方法。
2.实验原理、实验流程或装置示意图
根据信号傅里叶变换建立的时域与频域之间的对应关系,可以得到有限长序列的离散傅里叶变换(DFT)与四种确定信号傅里叶变换的之间的关系,实现由DFT分析其频谱。
信号的傅里叶变换建立了信号的时域与频域之间的一一对应关系,如果信号在时域存在某种联系,则在其频谱函数之间必然存在联系。
若离散非周期信号x[k]是连续非周期信号x(t)的等间隔抽样序列,则信号x[k]的频谱函数是信号x(t)的频谱函数的周期化;
若离散周期信号是离散非周期信号x[k]的周期化,则信号的频谱函数是信号的频谱函数的离散化。
Matlab中提供了fft函数,FFT是DFT的快速算法:
X=fft(x):
用于计算序列x的离散傅里叶变换(DFT)
X=fft(x,n):
对序列x补零或截短至n点的离散傅里叶变换。
当x的长度小于n时,在x的尾部补零使x的长度达到n点;
当x的长度大于n时,将x截短使x的长度成n点;
x=ifft(X)和x=ifft(X,n)是相应的离散傅里叶反变换。
fftshift(x)将fft计算输出的零频移到输出的中心位置。
利用DFT计算离散周期信号x[k]的频谱
分析步骤为:
(1)确定离散周期序列的基本周期N;
(2)利用fft函数求其一个周期的DFT,得到X[m];
(3)
利用DFT计算离散非周期信号x[k]的频谱
分析步骤为:
(1)确定序列的长度M及窗函数的类型。
当序列为无限长时,需要根据能量分布,进行截短。
(2)确定作FFT的点数N;
根据频域取样定理,为使时域波形不产生混叠,必须取
。
(3)使用fft函数作N点FFT计算X[m]。
3.实验设备及材料
一台带matlab软件的计算机。
4.实验方法步骤及注意事项
实验方法步骤:
(1)打开MATLAB软件
(2)根据题目要求编写程序
(3)运行程序
(4)分析实验结果
(5)关闭计算机
注意事项:
(1)对于实验电脑要爱惜,遵守实验的规则。
(2)程序运行前要检查程序是否正确。
⏹在使用matlab编程时,应该养成良好的编写习惯,新建一个flies编写。
⏹一些快捷键的使用,能提高编程效率。
⏹Help能查询到不懂使用的函数使用方法,比如这个用到的fft和fftshift等函数。
如下界面:
二、实验内容
【例1.4.1】
已知一个周期系列x[k]=cos(pi/8*k+pi/3)+o.5*cos(7*pi*k/8),利用FFT计算其频谱并与理论分析相比较。
%Example1_4_1……
clc,clear,closeall
N=16;
k=0:
N-1;
x=cos(pi/8*k+pi/3)+0.5*cos(7*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)));
Phase'
【例1.4.2】
利用DFT分析系列x[k]=0.8^k*u[k]的频谱。
%Example1_4_2……
30;
x=0.8.^k;
stem(k,x);
w=k-15;
plot(w,abs(fftshift(fft(x))));
1.利用FFT分析信号
的频谱;
(1)确定DFT计算的参数;
(2)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。
%4_1.....参考例1_4_1
N=32;
x=cos(pi*3/8*k);
Frequency(rad)'
2.利用FFT分析信号
(2)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。
%4_2.....参考例1_4_1(当k>
0时,u(k)为1)
x=(1/2).^k;
3.有限长脉冲序列
,利用FFT分析其频谱,并绘出其幅度谱与相位谱。
%4_3.....参考例1_4_1……
N=6;
%k=0,1,2,3,4,5
k=0:
x=[2,3,3,1,0,5];
X=fft(x,N);
4.某周期序列由3个频率组成:
,利用FFT分析其频谱。
如何选取FFT的点数N?
此3个频率分别对应FFT计算结果X[m]中的哪些点?
若选取的N不合适,FFT计算出的频谱X[m]会出现什么情况?
%4_4.....参考例1_4_1……
N=32;
x=cos(7*pi*k/16)+cos(9*pi*k/16)+cos(pi*k/2);
subplot(2,2,1);
Frequency(rad)(N=32)'
subplot(2,2,2);
N=64;
subplot(2,2,3);
Frequency(rad)(N=64)'
subplot(2,2,4);
5.某离散序列
,利用FFT分析其频谱。
(1)对x[k]做64点FFT,绘出信号频谱,能分辨出其中的两个频率吗?
%4_5.....参考例1_4_1……
x=cos(2*pi*k/15)+0.75*cos(2.3*pi*k/15);
Frequency(rad)(N=64)'
(2)对x[k]补零到256点后计算FFT,能分辨出其中的两个频率吗?
N=256;
x=cos(pi*2*k/15)+0.75*cos(2.3*pi*k/15);
Frequency(rad)N=256'
2.对实验现象、实验结果的分析及其结论
通过本次实验,我学会应用离散傅里叶变换(DFT),分析离散信号x[k]的频谱。
带限信号即是带宽有限的信号,采样定理要求采样频率必须是信号最高频率的2倍以上,否则会出现频率混叠。
通过本实验更加了解的matlab的使用。
经验:
学习使用matlab快捷键很重要,能大大提高编程效率。
比方向键的上键能快速输入上次的内容;
ctrl+r键全部注释,ctrl+t键取消全部注释(选中的部分);
内外,每次编写之前都写一句:
clc,clear,closeall,清除工作空间及面板,这样不会受上一次的操作影响等,使用matlab的help能查找到不熟悉的函数使用方法。
另外,截图时采用Figure中的Edit->
CopyFigure以减少图片所占容量,便于编辑。
还可以通过File->
SaveAs…保存不同格式的figure图片,便于其他地方其他格式时使用。
教师评语及评分:
签名:
年月日