实验三 FFT算法的应用
更新时间:2024-03-22 05:23:01 阅读量: 综合文库 文档下载
- 实验三小推荐度:
- 相关推荐
实验三 FFT算法的应用
一、实验目的
1. 2. 3.
通过实验加深对快速傅立叶变换(FFT)基本原理的理解。 掌握FFT的用于信号的谱分析; 掌握利用FFT计算卷积。
二、实验仪器设备
PC机 MATLAB软件
三、实验原理
离散傅里叶变换(DFT)和卷积是信号处理中两个最基本也是最常用的运算,它们涉及到信号、系统的分析与综合这一广泛的信号处理领域。实际上卷积与DFT之间有着互通的联系:卷积可化为DFT来实现,其它的许多算法,如相关、滤波和谱估计等都可化为DFT来实现,DFT也可化为卷积来实现。 1.MATLAB中DFT的FFT实现
对N点序列x(n),其DFT变换对定义为:
N?1?nk?X(k)??x(n)WN?n?0?N?11?nk?x(n)?X(k)WN??Nk?0?k?0,1,...,N?1,WN?n?0,1,...,N?1e?j2?/N
显然,求出N点X(k)需要N次复数乘法,N(N-1)次复数加法。众所周知,实现一次复
数乘需要四次实数乘和两次实数加,实现一次复数加则需要两次实数加。当N很大时,其计算量是相当可观的。例如,若N=1024,则需要1,048,576次复数乘法,即4,194,304次实数乘法。所需时间过长,难于“实时”实现。若是处理二维或三维图像,所需的计算量更是大得惊人。
FFT是DFT的一种快速算法。FFT算法将长序列的DFT分解为短序列的DFT。N点的DFT先分解为2个N/2点的DFT,每个N/2点的DFT又分解为2个N/4点的DFT。按照此规律,最小变换的点数即所谓的“基数(radix)”。因此,基数为2的FFT算法的最小变换(或称蝶形)是2点DFT。一般地,对N点FFT,对应于N个输入样值,有N个频域样值与之对应。
时析型FFT是将序列逐次奇偶对分,奇数号排成一子序列,偶数号排成一子序列,各子序列的长度为N/2,用同样的方法再将两个子序列又分成长度为N/4的4个子序列,依次这样分下去,最后的子序列长度为1,即一个数,而一个数的DFT就是本身。然后找出子序列的DFT与原序列DFT的关系,就可以合成原序列的DFT。
1)FFT的实现:计算矢量或矩阵的FFT:格式y=fft(x) y=fft(x,n)。其中y=fft(x)是利用FFT算法计算矢量x的离散傅立叶变换,若x为矩阵,则y是对矩阵的每一列向量进行FFT;当x的长度是2 的整数次幂时,则fft函数采用基2时析型FFT,否则采用混合基算法。而y=fft(x,n)执行n点FFT,当x的长度小于n时,在x尾部补零至n
2
点;当x的长度大于n时,则截断x使其长度为n。
2)IFFT实现:格式y=ifft(x) y=ifft(x,n)。用于计算矢量或矩阵的IFFT。 例1:MATLAB仿真程序
%*****************************************************************% %mode--信号的种类。1--正弦波;2--方波;3--锯齿波 %Nfft--FFT点数
%*****************************************************************% function [x]=ffts(mode,Nfft) n=0:Nfft-1;
if mode==1 x=sin(2*pi*n/Nfft);end if mode==2 x=square(2*pi*n/Nfft);end if mode==3 x=sawtooth(2*pi*n/Nfft);end set(gcf,'menubar',menubar); subplot(2,1,1);stem(n,x);
axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]); xlabel('Points-->');ylabel('X(n)'); y=abs(fft(x,Nfft)); subplot(2,1,2);stem(n,y);
axis([0 Nfft-1 1.1*min(y) 1.1*max(y)]); xlabel('frequency--->');ylabel('|X(k)|');
%*****************************************************************%
假设需观察正弦波信号的频谱,对正弦波信号作64点的FFT,则只需在MATLAB的命令窗口下键入:
x=ffts(1,64)
被噪声污染的信号,很难看出它包含的频率分量。通常通过FFT分析可得到其频率成分。 例2:一个50Hz和120Hz正弦信号构成的信号,受零均值随机噪声的干扰,采样频率为1khz。现分析其信号频率成分。
t=0:0.001:0.6;%采样频率为1kHz,时间间隔为0.001 x=sin(2*pi*50*t)+sin(2*pi*120*t);
y=x+1.5*randn(1,length(t));%受污染的正弦信号 subplot(2,1,1); plot(t,y);
xlabel('t');ylabel('y(t)'); Y=fft(y,512);
P=Y.*conj(Y)/512;%计算功率谱密度
f=1000*(0:255)/512;%取结果的一半 subplot(2,1,2); plot(f,P(1:256));
xlabel('f');ylabel('P(f)'); 2.利用FFT快速计算卷积
工程实际需要解决的卷积:y(n)?x(n)?h(n),但其计算量很大。
而圆卷积为:y(n)?x(n)?h(n),便于采用FFT算法, 故计算速度快。若将线卷积的两个序列用增补零的方法将长度取为一致,此时两序列的离散线卷积和圆周卷积结果是相等的,这样就则可以通过圆卷积来快速计算线卷积。
利用FFT 计算卷积的步骤
(1)设两序列原长度分别为:N和M,将长度增加到L(2)用FFT法求加长序列的DFT频谱; (3)计算两序列DFT频谱的乘积;
(4)用IFFT求DFT频谱乘积的逆变换,便得两序列的离散线卷积。 例3: 求两矩形序列的卷积:
?1,x(n)???0,0?n?4其它?N?M?1(L
为2的整数次幂);
和
?1/2,h(n)???0,0?n?5 其它x=[1 1 1 1 1 ];
h=[1/2 1/2 1/2 1/2 1/2 1/2]; L=length(x)+length(h)-1;
L=ceil(log2(L));%B = ceil(A) rounds the elements of A to the nearest integers greater than or
%equal to A. For complex A, the imaginary and real parts are rounded independently.
L=2^L;
subplot(311);stem(x,'.'); xlabel('n');ylabel('x(n)'); axis([1,L,0,1.5]); subplot(312);stem(h,'.'); xlabel('n');ylabel('h(n)'); axis([1,L,0,1.5]); X=fft(x,L); H=fft(h,L); Y=X.*H;
y=ifft(Y);
subplot(313);stem(y,'.'); xlabel('n');ylabel('h(n)') ;
上述快速卷积法适合两序列长度相当的情况,当一个序列为长序列,一个序列是短序列时,常采用分段快速卷积法。即N1??N2,通常不允许等x(n)全部采集齐后再进行卷积,否则使输出相对于输入有较长的延时,另外,若N1?N2?1太大,h(n)要补上太多的零点,很不经济,且FFT的计算时间也要很长。为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。分段卷积方法主要有两种,即重叠相加法和重叠保留法。具体内容请参考教材相应部分,本实验这部分不作重点要求。
四、实验内容
1.参考例1实现余弦信号、三角波信号的FFT。
2. 一个40Hz和100Hz正弦信号构成的信号,受零均值随机噪声的干扰,采样频率为500Hz。现分析其信号频率成分。 3.利用快速卷积法,计算x(n)???1,?0,0?n?15其它 和
?0.8n,h(n)???0,0?n?15其它的卷积。
五、实验步骤
1.启动MATLAB
2.建立新的m-file文件,输入MATLAB代码。
3.按F5或文件栏的运行,分析结果。结果图像贴入实验报告。
六、实验报告要求
在实验报告中应包含以下内容:
(1)实验目的(2)实验仪器设备,(3)实验原理,(4)实验内容和操作步骤,(5)结果和分析。
七、思考题
1. 2. 3.
DFT和信号频谱之间有什么关系?
N同时取8、16、32时,线性卷积和循环卷积的结果有何不同,为什么? 分析直接计算线性卷积和利用FFT计算线性卷积的时间。
正在阅读:
实验三 FFT算法的应用03-22
周易入门六十四卦及卦义注释08-06
元宵祝语02-19
Discuz!各版本拿Webshell04-28
斗门区职称论文发表网-高中政治课堂教提问艺术论文选题题目05-03
有效教学课题研究阶段小结05-25
行政服务中心总结汇编04-06
生态经济学复习题 - 图文03-07
学校 捐赠仪式程序12-17
视觉作品分析《告白》 - 图文04-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 实验
- 应用
- FFT
- 河北省2018年上半年保险高管考试试题
- (修正版)思想道德修养与法律基础题答案(1)
- 2014年大学生感恩节活动方案
- 材料力学考试资料
- 2级c语言上机-南开一百题
- 高考英语写作及翻译 最新汉译英练习
- 中国铝合金标样市场发展研究及投资前景报告(目录) - 图文
- 慢跳频通信系统的仿真
- 盘点抗日战争史上八大争论
- 2018-2019年初级会计师初级会计实务 会计概述检测试题含答案
- 社会主义核心价值观主题班会
- 江苏省名牌事业促进会绩效考核工作总结
- 运动控制系统课程设计任务书
- 教育人类学期末作业
- 2016年陕西省造价工程师工程计价:风险因素模拟试题
- 正安谢姓迁移居住话史
- 电大中级财务会计(二)形成性考核答案
- 提高中学音乐教学有效性的思考
- 生产业务
- 魔兽RPG-DOTA命令大全