实验八 利用快速傅里叶变换(FFT)实现快速卷积(精选、)
快速傅立叶变换(FFT)算法实验

实验二快速傅立叶变换(FFT)算法实验一.实验目的1.加深对DFT算法原理和基本性质的理解;2.熟悉FFT算法原理和FFT子程序的应用;3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二.For personal use only in study and research; not for commercial use三.四.实验设备计算机,CCS 2.0 版软件,实验箱,DSP仿真器,短接块,导线。
五.基本原理1.For personal use only in study and research; not for commercial use2.3.离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。
4.FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N步,极大的提高了运算的速度。
5.旋转因子的变化规律。
6.蝶形运算规律。
7.基2FFT算法。
六.实验步骤1.复习DFT的定义、性质和用DFT作谱分析的有关内容;2.复习FFT算法原理与编程思想,并对照DIT-FFT运算流程图和程序框图,了解本实验提供的FFT子程序;3.阅读本实验所提供的样例子程序;4.运行CCS软件,对样例程序进行跟踪,分析结果;记录必要的参数。
5.填写实验报告。
6.提供样例程序实验操作说明1)实验前的准备“语音处理单元”的拨码开关设置:在信号源单元中,设置左路信号源产生低频正弦波信号,右路产生高频正弦波信号。
实验箱上电,用示波器分别观测OUT1和OUT2输出的模拟信号,并调节电位器直至低频正弦波信号为100Hz/1V左右;高频正弦波信号为6KHz/1V左右;将S3中的拨码开关2打到ON,用示波器观测OUT1输出的混叠信号波形。
用导线连接“信号源单元”中2号孔接口OUT1和语音处理单元中的2号孔接口“IN”;正确完成计算机、DSP仿真器和实验箱的连接后,系统上电.2)实验过程启动CCS 2.0,用Project/Open打开“ExpFFT01.pjt”工程文件;双击“ExpFFT01.pjt”及“Source”可查看各源程序;加载“ExpFFT01.out”;至断点处停止;用View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为0x3000h和0x3080h,长度为128的单元中数值的变化,数值类型为16位有符号整型变量,这两段存储单元中分别存放的是经A/D转换后的输入信号和对该信号进行FFT变换后的结果;单击“Animate”运行程序,或按F10运行;调整观察窗口并观察变换结果;单击“Halt”暂停程序运行,关闭窗口,本实验结束;实验结果:在CCS2.0环境,同步观察输入信号波形及其FFT变换结果;七.思考题1.对于不同的N,幅频特性会相同吗?为什么?2.FFT进行谱分析,可以应用的什么方面?八.实验报告要求1.简述实验原理及目的;2.结合实验中所给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。
编程实现快速傅里叶变换(fft)

一、概述傅里叶变换是信号处理和数据压缩中常用的数学工具,它可以将时域信号转换为频域信号,从而便于分析和处理。
而快速傅里叶变换(FFT)则是一种高效的计算傅里叶变换的方法,可以大大提高计算效率,广泛应用于信号处理、图像处理、通信系统等领域。
二、傅里叶变换原理傅里叶变换的基本思想是将一个时域信号分解为不同频率的正弦和余弦函数的叠加,从而得到该信号的频谱图。
具体来说,对于一个连续信号x(t),它的傅里叶变换X(ω)定义为:X(ω) = ∫[0,∞]x(t)e^(-jωt)dt其中,ω为频率变量,X(ω)表示在频率ω处的信号能量。
而对于离散信号x[n],它的傅里叶变换X[k]则定义为:X[k] = ∑[n=0,N-1]x[n]e^(-j2πkn/N)其中,N为信号的采样点数,k为频率域的序号。
上述公式称为离散傅里叶变换(DFT),计算复杂度为O(N^2)。
而快速傅里叶变换则通过巧妙的算法设计,将计算复杂度降低到O(NlogN)。
三、快速傅里叶变换算法概述快速傅里叶变换的算法最早由Cooley和Tukey在1965年提出,它的基本思想是将一个长度为N的DFT分解为两个长度为N/2的DFT的组合,通过递归地分解和合并,最终实现对整个信号的快速计算。
下面我们来介绍一种常用的快速傅里叶变换算法:递归式分治法。
四、递归式分治法递归式分治法是一种高效的计算DFT的方法,它的基本思想是将长度为N的DFT分解为两个长度为N/2的DFT,并通过递归地调用自身,最终实现对整个信号的傅里叶变换。
具体来说,假设有一个长度为N的信号x[n],对其进行快速傅里叶变换的过程可以分为如下几个步骤:1. 将长度为N的信号x[n]分为长度为N/2的偶数序号和奇数序号的两个子信号x_even[n]和x_odd[n];2. 对子信号x_even[n]和x_odd[n]分别进行快速傅里叶变换,得到它们的频域表示X_even[k]和X_odd[k];3. 结合X_even[k]和X_odd[k],计算原信号的频域表示X[k]。
数字信号处理课程设计--用fft实现快速卷积--大学毕业设计论文

洛阳理工学院课程设计报告课程名称数字信号处理课程设计设计题目用FFT实现快速卷积专业通信工程班级学号姓名完成日期2015.06.15课程设计任务书设计题目:用FFT实现快速卷积设计内容与要求:FFT的出现,使DFT在数字通信、语音信号处理、图像处理、功率谱估计、系统分析与仿真、雷达信号处理、光学、地震及数值分析等各个领域都得到广泛应用。
然而,各种应用一般都以卷积和相关运算为依据。
在实际应用中,为了分析时域离散LTI系统或者序列滤波时,需要计算两个序列的线性卷积。
为了提高运算速度,可以利用FFT来实现。
要求:参考课本上第90页的内容(3.4.1 用DFT计算线性卷积),设计并编写程序来实现重叠相加法计算线性卷积。
课程设计评语成绩:指导教师:_______________年月日目录第1章概述 (1)1.1Matlab简介 (1)1.2设计目的 (2)1.3设计原理 (2)1.3.1算法产生背景 (2)1.3.2算法基本思想 (2)第2章程序设计 (5)第3章分析与测试 (7)3.1循环卷积设计 (7)3.2 线性卷积设计 (9)3.3 设计结果 (11)第4章心得体会 (12)参考文献 (13)第1章概述随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。
任意一个信号都具有时域与频域特性,信号的频谱完全代表了信号,因而研究信号的频谱就等于研究信号本身。
通常从频域角度对信号进行分析与处理,容易从信号的特性获得更加深入的了解。
因此,信号的频谱分析是数字信号处理技术中一种较为重要的工具。
1.1 Matlab简介Matlab语言是当今国际上科学界最具影响力、也是最有活力的软件。
它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。
它是由美国Math Works 公司于1982年推出的软件产品,取名来源于Matrix Laboratory,简称“Matlab”。
快速傅里叶变换(含详细实验过程分析)

一、实验目的1、掌握FFT 算法和卷积运算的基本原理;2、掌握用C 语言编写DSP 程序的方法;3、了解利用FFT 算法在数字信号处理中的应用。
二、实验设备 1. 一台装有CCS 软件的计算机; 2. DSP 实验箱的TMS320C5410主控板; 3. DSP 硬件仿真器。
三、实验原理 (一)快速傅里叶变换傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工具。
离散傅里叶变换(DFT )是傅里叶变换在离散系统中的表示形式。
但是DFT 的计算量非常大, FFT 就是DFT 的一种快速算法, FFT 将DFT 的N 2步运算减少至 ( N/2 )log 2N 步。
离散信号x(n)的傅里叶变换可以表示为∑=-=10][)(N N nk N W n x k X , Nj N e W /2π-=式中的W N 称为蝶形因子,利用它的对称性和周期性可以减少运算量。
一般而言,FFT 算法分为时间抽取(DIT )和频率抽取(DIF )两大类。
两者的区别是蝶形因子出现的位置不同,前者中蝶形因子出现在输入端,后者中出现在输出端。
本实验以时间抽取方法为例。
时间抽取FFT 是将N 点输入序列x(n) 按照偶数项和奇数项分解为偶序列和奇序列。
偶序列为:x(0), x(2), x(4),…, x(N-2);奇序列为:x(1), x(3), x(5),…, x(N-1)。
这样x(n) 的N 点DFT 可写成:()()∑++∑=-=+-=12/0)12(12/02122)(N n kn NN n nkNW n x Wn x k X考虑到W N 的性质,即2/)2//(22/)2(2][N N j N j N W e e W ===--ππ因此有:()()∑++∑=-=-=12/02/12/02/122)(N n nkN k NN n nkN W n x WWn x k X或者写成:()()12()kN X k X k W X k =+由于X 1(k) 与X 2(k) 的周期为N/2,并且利用W N 的对称性和周期性,即:k N N k N W W -=+2/可得:()()12(/2)kN X k N X k W X k +=-对X 1(k) 与X 2(k)继续以同样的方式分解下去,就可以使一个N 点的DFT 最终用一组2点的DFT 来计算。
快速傅立叶变换(FFT)算法_DSP实验

快速傅立叶变换(FFT)算法实验摘要:FFT(Fast Fourier Transformation),即为快速傅里叶变换,是离散傅里叶变换的快速算法,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
这种算法大大减少了变换中的运算量,使得其在数字信号处理中有了广泛的运用。
本实验主要要求掌握在CCS环境下用窗函数法设计FFT快速傅里叶的原理和方法;并且熟悉FFT快速傅里叶特性;以及通过本次试验了解各种窗函数对快速傅里叶特性的影响等。
引言:快速傅里叶变换FFT是离散傅里叶变换DFT的一种快速算法。
起初DFT的计算在数字信号处理中就非常有用,但由于计算量太大,即使采用计算机也很难对问题进行实时处理,所以并没有得到真正的运用。
1965年J.W.库利和T.W.图基提出快速傅里叶变换,采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。
从此,对快速傅里叶变换(FFT)算法的研究便不断深入,数字信号处理这门新兴学科也随FFT的出现和发展而迅速发展。
根据对序列分解与选取方法的不同而产生了FFT的多种算法,基本算法是基2DIT和基2DIF。
FFT 的出现,使信号分析从时域分析向频域分析成为可能,极大地推动了信号分析在各领域的实际应用。
FFT在离散傅里叶反变换、线性卷积和线性相关等方面也有重要应用。
一、 实验原理:FFT 并不是一种新的变换,它是离散傅立叶变换(DFT )的一种快速算法。
由于我们在计算DFT 时一次复数乘法需用四次实数乘法和二次实数加法;一次复数加法则需二次实数加法。
每运算一个X (k )需要4N 次复数乘法及2N+2(N-1)=2(2N-1)次实数加法。
所以整个DFT 运算总共需要4N^2次实数乘法和N*2(2N-1)=2N(2N-1)次实数加法。
如此一来,计算时乘法次数和加法次数都是和N^2成正比的,当N 很大时,运算量是可观的,因而需要改进对DFT 的算法减少运算速度。
快速傅里叶变换fft的Matlab实现 实验报告

一、实验目的1在理论学习的基础上,通过本实验加深对快速傅立叶变换的理解;2熟悉并掌握按时间抽取FFT算法的程序;3了解应用FFT进行信号频谱分析过程中可能出现的问题,例如混淆、泄漏、栅栏效应等,以便在实际中正确应用FFT。
二、实验内容1仔细分析教材第六章‘时间抽取法FFT’的算法结构,编制出相应的用FFT 进行信号分析的C语言(或MATLAB语言)程序;用MATLAB语言编写的FFT源程序如下:%%输入数据f、N、T及是否补零clc;clear;f=input('输入信号频率f:');N=input('输入采样点数N:');T=input('输入采样间隔T:');C=input('信号是否补零(补零输入1,不补零输入0):');%补零则输入1,不补则输入0if(C==0)t=0:T:(N-1)*T;x=sin(2*pi*f*t);b=0;e lseb=input('输入补零的个数:');while(log2(N+b)~=fix(log2(N+b)))b=input('输入错误,请重新输入补零的个数:');endt=0:T:(N+b-1)*T;x=sin(2*pi*f*t).*(t<=(N-1)*T);end%%fft算法的实现A=bitrevorder(x);%将序列按二进制倒序N=N+b;M=log2(N);%M为蝶形算法的层数W=exp(-j*2*pi/N);for L=1:1:M%第L层蝶形算法B=2^L/2;%B为每层蝶形算法进行加减运算的两个数的间隔K=N/(2^L);%K为每层蝶形算法中独立模块的个数for k=0:1:K-1for J=0:1:B-1p=J*2^(M-L);%p是W的指数q=A(k*2^L+J+1);%用q来代替运算前面那个数A(k*2^L+J+1)=q+W^p*A(k*2^L+J+B+1);A(k*2^L+J+B+1)=q-W^p*A(k*2^L+J+B+1);endendend%%画模特性的频谱图z=abs(A);%取模z=z./max(z);%归一化hold onsubplot(2,1,1);stem(0:1:N-1,x,'DisplayName','z');title('时域信号');subplot(2,1,2);stem(0:1:N-1,z,'DisplayName','z');title('频谱图');figure(gcf)%画图2用FFT 程序计算有限长度正弦信号()sin(2),0*y t f t t N Tπ=≤<分别在以下情况下所得的DFT 结果并进行分析和讨论:a )信号频率f =50Hz ,采样点数N=32,采样间隔T=0.000625sb )信号频率f =50Hz ,采样点数N=32,采样间隔T=0.005sT=0.0046875sc)信号频率f=50Hz,采样点数N=32,采样间隔051015202530350510152025303505101520253035 e)信号频率f=50Hz,采样点数N=64,采样间隔T=0.000625sg)将c)信号后补32个0,做64点FFT三、实验分析DFT是对有限序列做傅里叶变换后在频域上进行采样,而相对应的时域以频谱上的采样频率的倒数进行周期拓展。
fft卷积计算 频域

fft卷积计算频域在信号处理中,卷积是一种重要的运算,用于分析信号的特性。
快速傅里叶变换(FFT)是一种高效计算离散傅里叶变换(DFT)和其逆变换的方法,它在频域中分析信号。
当我们讨论在频域中进行卷积时,通常是指通过快速傅里叶变换(FFT)将信号从时域转换到频域,然后在频域中进行卷积运算,最后再通过逆FFT将结果转换回时域。
以下是使用FFT在频域中进行卷积的基本步骤:1.信号的FFT变换:首先,对两个输入信号进行快速傅里叶变换(FFT),将它们从时域转换到频域。
2.频域卷积:在频域中,两个信号的卷积可以通过对应频率分量的乘积来计算。
3.逆FFT变换:最后,对卷积后的频域信号进行逆FFT变换,将其转换回时域。
在Python中,可以使用numpy库中的fft模块来实现这些操作。
以下是一个简单的示例代码:频域卷积和时域卷积的区别频域卷积和时域卷积的主要区别在于它们处理信号的方式。
在时域中,我们直接对信号进行卷积运算,而在频域中,我们首先使用FFT将信号从时域转换到频域,然后在频域中进行卷积运算。
频域卷积有一些优点,例如它可以更高效地处理长信号,因为FFT可以快速计算傅里叶变换。
此外,在频域中,信号的频率成分是分离的,这使得我们可以更容易地分析信号的频率特性。
然而,需要注意的是,频域卷积可能会引入一些问题,例如频谱泄漏和混叠。
频谱泄漏是指由于信号的傅里叶变换不是完美的,导致频域中的信号能量泄漏到其他频率分量中。
混叠则是指由于信号的频率分量太接近,导致在频域中无法区分它们,从而在时域中出现重叠。
因此,在选择使用频域卷积还是时域卷积时,需要根据具体的应用场景和需求来决定。
fpga 快速傅里叶变换实现卷积

标题:FPGA实现快速傅里叶变换加速卷积的原理与应用在当今信息时代,数字信号处理和数据处理已经成为许多领域中不可或缺的部分。
而在处理这些信号和数据时,快速傅里叶变换(FFT)和卷积运算是常用的数学工具。
在很多实际应用中,由于其高复杂度,这两个运算往往需要花费大量的时间和资源。
然而,通过利用现代的FPGA技术,我们可以实现这些运算的高效加速,本文将探讨如何利用FPGA来加速实现快速傅里叶变换卷积。
1. 背景介绍快速傅里叶变换(FFT)是一种离散傅里叶变换(DFT)的快速算法。
它不仅可以用于频域分析和信号处理,还被广泛应用于图像处理、通信、雷达和生物医学领域等。
而卷积运算则是数字信号处理和图像处理中常见的运算之一,用于实现信号的滤波、特征提取和模式识别等。
然而,这两种运算都具有较高的计算复杂度,特别是在涉及大规模数据时,传统的处理方法往往效率低下。
2. FPGA加速计算的优势FPGA(Field-Programmable Gate Array)是一种灵活可编程的数字集成电路,它通过可编程的逻辑单元和可编程的连接网络,可以实现大规模的并行计算和高速数据处理。
这使得FPGA在加速计算领域具有独特的优势。
与传统的CPU和GPU相比,FPGA可以根据具体的应用需求进行快速定制和优化,提供更高的计算密度和更低的功耗。
利用FPGA来加速实现FFT和卷积运算,可以大幅提高运算速度和效率。
3. FPGA实现快速傅里叶变换在实现FFT时,FPGA可以充分利用其并行计算的特性,通过设计合适的硬件结构和算法,实现FFT运算的高效加速。
可以采用基于蝶形运算单元(Butterfly)的并行计算结构,利用FPGA的片上资源进行数据流控制和计算单元的并行化。
通过巧妙的数据流设计和数据重用策略,还可以有效地减少时序延迟和资源消耗,进一步提高FFT算法的运行速度。
在实际应用中,基于FPGA的FFT加速器已经被广泛应用于通信系统、无线电频谱监测和图像处理等领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八 利用FFT 实现快速卷积
一、 实验目的
(1) 通过这一实验,加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT 进行数字信号处理。
(2) 进一步掌握循环卷积和线性卷积两者之间的关系。
二、 实验原理与方法
数字滤波器根据系统的单位脉冲响应h(n)是有限长还是无限长可分为有限长单位脉冲响应(Finite Impulse Response )系统(简记为FIR 系统)和无限长单位脉冲响应(Infinite Impulse Response )系统(简记为IIR 系统)。
对于FIR 滤波器来说,除了可以通过数字网络来实现外,也可以通过FFT 的变换来实现。
一个信号序列x(n)通过FIR 滤波器时,其输出应该是x(n)与h(n)的卷积:
∑+∞
-∞
=-=
=m m n h m x n h n x n y )()()(*)()(
或
∑+∞
-∞
=-=
=m m n x m h n x n h n y )
()()(*)()(
当h(n)是一个有限长序列,即h(n)是FIR 滤波器,且10-≤≤N n 时
∑-=-=1
0)
()()(N m m n x m h n y
在数字网络(见图6.1)类的FIR 滤波器中,普遍使用的横截型结构(见下图6.2
图6.1 滤波器的数字网络实现方法
图6.2 FIR 滤波器横截型结构
y(n)
y(n)
-1-1-1-1
应用FFT 实现数字滤波器实际上就是用FFT 来快速计算有限长度列间的线性卷积。
粗略地说,这种方法就是先将输入信号x(n)通过FFT 变换为它的频谱采样 值X(k),然后再和FIR 滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT )还原为时域序列,即得到输出y(n)如图6.3所示。
图6.3 数字滤波器的快速傅里叶变换实现方法
现以FFT 求有限长序列间的卷积及求有限长度列与较长序列间的卷积为例来讨论FFT 的快速卷积方法。
(1) 序列)(n x 和)(n h 的列长差不多。
设)(n x 的列长为1N ,)(n h 的列长为2N ,要求
)()(n x n y =N
∑-=-==1
)
()()(*)()(N r r n h r x n h n x n h
用FFT 完成这一卷积的具体步骤如下: i.
为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度121-+≥N N N ,若采用基2-FFT 完成卷积运
算,要求m
N 2=(m 为整数)。
ii.
用补零方法使)(n x ,)(n h 变成列长为N 的序列。
⎩⎨
⎧-≤≤-≤≤=10
10)()(11N n N N n n x n x ⎩⎨
⎧-≤≤-≤≤=10
1
0)()(22N n N N n n h n h iii.
用FFT 计算)(),(n h n x 的N 点离散傅里叶变换
)()(k X n x FFT
−−→− )()(k H n h FFT −−→−
iv. 做)(k X 和)(k H 乘积,)()()(k H k X k Y ⋅=
v.
用FFT 计算)(k Y 的离散傅里叶反变换得
y(n)
*
101
0)(*1)(1)(⎭⎬
⎫⎩⎨⎧⎥⎦⎤
⎢⎣⎡=⎥⎦⎤⎢⎣⎡=∑∑-=---N k nk x N k nk x W k Y N W k Y N n y
(2) 当x(n)长度很长时,即21N N >>,通常不允许等x(n)全部采集齐后再进行卷积,否则使输出相对于输入有较长的延时,另外,若121-+N N 太大,)(n h 要
补上太多的零点,很不经济,且FFT 的计算时间也要很长。
为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。
分段卷积方法主要有两种,即重叠相加法和重叠保留法。
具体内容请参考教材中“快速离散傅里叶变换”一章中的线性卷积的FFT 算法部分,本实验这部分不作重点要求。
三、 实验任务
(1)用FFT 实现以下两序列的线性卷积。
n=[0:1:11]; m=[0:1:5]; N1=length(n); N2=length(m);
xn=0.8.^n; hn=ones(1,N2); N=N1+N2-1; XK=fft(xn,N); HK=fft(hn,N); YK=XK.*HK; yn=ifft(YK,N);
if all(imag(xn)==0)&(all(imag(hn)==0)) yn=real(yn); end x=0:N-1; stem(x,yn,'.')
title('2015167111(1)ÏßÐÔ¾í»ý');
⎩⎨
⎧≤≤=⎩⎨
⎧≤≤=其它
其它0
501)(01108.0)(n n h n n x n
(2)数字滤波器的脉冲响应为2
2),()21
()(N n R n h N n =可自定,本实验取172=N
输入序列)(n x 可选下列几种情况
i.
)()(1n R n x N = 1N 可取16
clc
clear all n=[0:1:15]; m=[0:1:16]; N1=length(n); N2=length(m); x=ones(1,N1); h=(-1/2).^m; N=N1+N2-1; X=fft(x,N); H=fft(h,N); Y=X.*H;
y=ifft(Y,N);
if all(imag(x)==0)&(all(imag(h)==0)) y=real(y); end
x1=0:N-1; stem(x1,y);
title('2015167111(2-1)FFT 快速卷积');
ii.
16)(2cos
)(111
==N n nR N n x N π
clc
clear all n=[0:1:15]; m=[0:1:16]; N1=length(n); N2=length(m);
x=cos(2*pi*n/16); h=(-1/2).^m; N=N1+N2-1; X=fft(x,N); H=fft(h,N); Y=X.*H;
y=ifft(Y,N);
if all(imag(x)==0)&(all(imag(h)==0))
y=real(y); end
x1=0:N-1; stem(x1,y);
title('2015167111(2-2)FFT 快速卷积'); iii.
16
),()31
)((11=N n R n x N n
clc
clear all n=[0:1:15]; m=[0:1:16]; N1=length(n); N2=length(m); x=(1/3).^n; ; h=(-1/2).^m; N=N1+N2-1; X=fft(x,N); H=fft(h,N); Y=X.*H; y=ifft(Y ,N);
if all(imag(x)==0)&(all(imag(h)==0)) y=real(y); end
x1=0:N-1; stem(x1,y);
title('2015167111(2-3)FFT 快速卷积');
附:实验用MATLAB 语言工具函数简介
若序列x 1(n)、x 2(n)为长度分别为N 1、N 2的有限长序列,)()(1n x n y c =N )(2n x ,)(*)()(21n x n x n y l =。
由DFT 的性质可知:当121-+≥N N N 时有)]]([)]([[)()(21n x DFT n x DFT IDFT n y n y c l ⋅==。
序列较长时DFT 运算通常用快速
算法FFT实现。
在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅里叶变换和逆变换。
函数FFT的调用格式同实验七。
最新文件---------------- 仅供参考--------------------已改成word文本--------------------- 方便更改。