云南师范大学DSP数字信号处理实验报告4.docx

上传人:b****5 文档编号:7848744 上传时间:2023-01-26 格式:DOCX 页数:13 大小:117.03KB
下载 相关 举报
云南师范大学DSP数字信号处理实验报告4.docx_第1页
第1页 / 共13页
云南师范大学DSP数字信号处理实验报告4.docx_第2页
第2页 / 共13页
云南师范大学DSP数字信号处理实验报告4.docx_第3页
第3页 / 共13页
云南师范大学DSP数字信号处理实验报告4.docx_第4页
第4页 / 共13页
云南师范大学DSP数字信号处理实验报告4.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

云南师范大学DSP数字信号处理实验报告4.docx

《云南师范大学DSP数字信号处理实验报告4.docx》由会员分享,可在线阅读,更多相关《云南师范大学DSP数字信号处理实验报告4.docx(13页珍藏版)》请在冰豆网上搜索。

云南师范大学DSP数字信号处理实验报告4.docx

云南师范大学DSP数字信号处理实验报告4

 

本科学生实验报告

 

学号114090395姓名李华福

学院物电学院专业、班级11电子

实验课程名称数字信号处理(实验)

教师及职称李宏宁

开课学期第三至第四学年下学期

填报时间2014年4月2日

 

云南师范大学教务处编印

实验序号

04

实验名称

利用DFT分析离散信号频谱

实验时间

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)));

ylabel('Phase');

xlabel('Frequency(rad)');

【例1.4.2】

利用DFT分析系列x[k]=0.8^k*u[k]的频谱。

%Example1_4_2……

clc,clear,closeall

k=0:

30;

x=0.8.^k;

subplot(2,1,1);

stem(k,x);

subplot(2,1,2);

w=k-15;

plot(w,abs(fftshift(fft(x))));

1.利用FFT分析信号

的频谱;

(1)确定DFT计算的参数;

(2)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。

%4_1.....参考例1_4_1

clc,clear,closeall

N=32;

k=0:

N-1;

x=cos(pi*3/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)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。

%4_2.....参考例1_4_1(当k>0时,u(k)为1)

clc,clear,closeall

N=32;

k=0:

N-1;

x=(1/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)');

 

3.有限长脉冲序列

,利用FFT分析其频谱,并绘出其幅度谱与相位谱。

%4_3.....参考例1_4_1……

clc,clear,closeall

N=6;%k=0,1,2,3,4,5

k=0:

N-1;

x=[2,3,3,1,0,5];

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)');

 

4.某周期序列由3个频率组成:

,利用FFT分析其频谱。

如何选取FFT的点数N?

此3个频率分别对应FFT计算结果X[m]中的哪些点?

若选取的N不合适,FFT计算出的频谱X[m]会出现什么情况?

%4_4.....参考例1_4_1……

clc,clear,closeall

N=32;

k=0:

N-1;

x=cos(7*pi*k/16)+cos(9*pi*k/16)+cos(pi*k/2);

X=fft(x,N);

subplot(2,2,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency(rad)(N=32)');

subplot(2,2,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency(rad)(N=32)');

N=64;

k=0:

N-1;

x=cos(7*pi*k/16)+cos(9*pi*k/16)+cos(pi*k/2);

X=fft(x,N);

subplot(2,2,3);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency(rad)(N=64)');

subplot(2,2,4);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency(rad)(N=64)');

5.某离散序列

,利用FFT分析其频谱。

(1)对x[k]做64点FFT,绘出信号频谱,能分辨出其中的两个频率吗?

%4_5.....参考例1_4_1……

clc,clear,closeall

N=64;

k=0:

N-1;

x=cos(2*pi*k/15)+0.75*cos(2.3*pi*k/15);

X=fft(x,N);

subplot(2,1,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency(rad)(N=64)');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency(rad)(N=64)');

(2)对x[k]补零到256点后计算FFT,能分辨出其中的两个频率吗?

%4_5.....参考例1_4_1……

clc,clear,closeall

N=256;

k=0:

N-1;

x=cos(pi*2*k/15)+0.75*cos(2.3*pi*k/15);

X=fft(x,N);

subplot(2,1,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency(rad)N=256');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency(rad)N=256');

2.对实验现象、实验结果的分析及其结论

通过本次实验,我学会应用离散傅里叶变换(DFT),分析离散信号x[k]的频谱。

深刻理解DFT分析离散信号频谱的原理,掌握改善分析过程中产生的误差的方法。

带限信号即是带宽有限的信号,采样定理要求采样频率必须是信号最高频率的2倍以上,否则会出现频率混叠。

通过本实验更加了解的matlab的使用。

经验:

学习使用matlab快捷键很重要,能大大提高编程效率。

比方向键的上键能快速输入上次的内容;ctrl+r键全部注释,ctrl+t键取消全部注释(选中的部分);内外,每次编写之前都写一句:

clc,clear,closeall,清除工作空间及面板,这样不会受上一次的操作影响等,使用matlab的help能查找到不熟悉的函数使用方法。

另外,截图时采用Figure中的Edit->CopyFigure以减少图片所占容量,便于编辑。

还可以通过File->SaveAs…保存不同格式的figure图片,便于其他地方其他格式时使用。

教师评语及评分:

 

签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1