- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
王捷张福宝宋杰
电子信息工程系,山东烟台
264001
、容易实现的优点,非常适用于数字信号处理课程的实
Matlab 实验教学的完整设计方案,体现了Matlab 在实验教学中的优势。根。
作者简介:关成斌,男,安徽淮北人,硕士,讲师。主要研究方向:数字信号处理教学与研究。基金项目:国家自然科学基金资助项目,项目编号60972159。
要的专业基础课,其内容抽象、公式繁多、理论性强,常常使学生感觉到枯燥乏味、
抽象难学。为了提高学习效果,为后续专业课程的学习打下坚实的基础,数字信号处理课程的实验环节就显的尤其重要[1~2]。
数字信号处理的实验可用有不同的方法来实现。比如有的公司开发了DSP 实验箱,可以应用于数字信号处理的实验教学中[3]。但DSP 实验箱一般需要向DSP 芯片中写程序,这种编程比较复杂,而且程序的可读性较差,因此虽然现象直观但是对原理的理解不是那么直接。目前数字信号处理实验较多采用Matlab 语言来实现。Matlab 语言以矩阵运算为基础,具有可靠的数值计算功能和符号计算功能、强大的绘图和图形用户界面可视化功能[4-6],具有丰富的数字信号处理函数[7]等特点,将其用于数字信号处理实验,使问题变得简单、明晰,因此它在数字信号处理实验环节中发挥了越来越重要的作用。
2.基于Matlab 的数字信号处理实验示例
对信号进行频域分析是数字信号处理中非常重要的内容,DFT 是分析序列离散谱的重要工具,并且DFT 在其它许多领域都有广泛的应用
[1~2]
。但是直接计算DFT 的运算量太
大,运算速度太慢。FFT 是DFT 的快速算法,可提高运算速度,在资源的占用以及处理的实时性上要优越得多。本文以DFT 和FFT 算法的比较为例设计如下实验教学方案。
2.1实验目的
进一步加深对DFT 算法原理和基本性质的理解;掌握FFT 算法原理和编程实现方法;通过对实验结果的分析比较,加深对DFT 和FFT 运算量不同的认识。
2.2实验原理DFT 表达式为:X(k=N-1
n =0Σx(nW kn N
(1
其中,N 为DFT
运算的点数;W N =e -j 2π
N
,为旋转因子。
FFT 正是利用旋转因子的对称性和周期性等,通过一定的数学方法降低运算量。目前,最常用FFT 算法有基
2DIT-FFT 和基2DIF-FFT 、分裂基FFT 、离散哈特莱变换等。本实验以研究基2DIT-FFT 的软件实现方法为例,其蝶形运算流图如图1所示。
图1基2DIT-FFT 碟形运算流图
2.3程序流程图
DFT 运算的程序框图如图2所示。基2DIT-FFT 的程序框图如图3所示。
2.4程序代码clear all;close all;clc;
%%%-----输入序列------%%%开始M=12;%基2FFT 幂次数N=2^M;
%采样点数
f=30;Um=5;%基准频率、幅度delta_t=1/(f*N;%采样间隔n=0:N-1;t=n*delta_t;
x=Um*sin(2*f*pi*t+Um*sin(2*30*f*pi*t+randn(size(t;%序列
figure(1stem(n,x
%序列图
%%%-----输入序列------%%%结束%%%-----DFT 运算-----%%%开始tic
WN=exp(-j*2*pi/N;%求WN for k=1:N
%对应于X(k的每一点
38--
图2DFT运算程序框图图3基2DIT-FFT运算程序框图
WNk=WN^(k-1;%求WNk
X(k=0;%初始化X(k
for n=1:N
WNkn=WNk^(n-1;%求WNkn
X(k=X(k+x(n*WNkn;%迭加运算
end
end
t=toc
figure(2
k=1:N;
stem(k-1,abs(X(k;
%%%-----DFT运算-----%%%结束
%%%-----FFT运算------%%%开始
tic
nxd=bin2dec(fliplr(dec2bin([1:N]-1,M+1;%求1:2^M数列序号的倒序
X=x(nxd;%将x倒序排列作为y的初始值
WN=exp(-i*2*pi/N;
for L=1:M
B=2^(L-1;%第L级中,两个输入数据相距B个点,有B个不同的旋转因子
for J=0:(B-1%J代表了不同的旋转因子
for
end
end
end
t=toc
figure(3
k=1:N;
stem(k-1,abs(X(k;
%%%-----FFT运算-----%%%结束
2.5实验结果
原始序列为对式(2所示信号的一个周期进行4096次等间隔采样得到的序列。序列如图4所示,图5为对该序列进行局部放大的效果。
x=5sin(60πt+5sin(1800π+
文档评论(0)