实验三 FFT算法的应用
更新时间:2024-01-05 09:41: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算法的应用01-05
易地扶贫搬迁拆旧复垦工作进展情况、 亮点做法及存在的困难问题08-02
小学暑假生活手抄报:我最喜欢夏天02-16
英07《英语口译》H-504-05
某医药集团公司商业计划书05-04
2018 - 2019学年高中物理第十章热力学定律第3节热力学第一定律能量守恒定律课后课时精练新人教版选01-05
营养土制作方法 花卉植物营养添加剂配方05-28
松坎小学中长期发展规划 -10-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 算法
- 实验
- 应用
- FFT
- 2018-2019年初级会计师初级会计实务 会计概述检测试题含答案考点及解析
- OPPO营销推广案例分析
- MRI引导下经皮肝脏肿瘤冷冻消融治疗初步经验总结2 - 图文
- 遥感图像处理实习指导手册(ENVI软件平台)
- 几点建议,教你如何嫁个好男人
- 材料力学考试资料
- 重庆市市情
- 中国铝合金标样市场发展研究及投资前景报告(目录) - 图文
- 慢跳频通信系统的仿真
- 工程造价毕业论文任务书(成人教育)
- 政协关于贯彻落实上级会议精神的情况汇报
- 八年级语文上册第六单元28《观潮》(第1课时)教案新人教版
- 河北省2018年上半年保险高管考试试题
- 21世纪课堂评价结业作业数学
- 社会主义核心价值观主题班会
- 稽核试题
- 2014年普通高等学校招生全国统一考试理综物理试题(新课标,含答案)
- Tuxedo - linux安装
- 英国翠欧TRIO
- 当代大学生消费行为分析报告doc