实验五 快速傅里叶变换

合集下载

快速傅里叶变换(FFT)实验说明概要

快速傅里叶变换(FFT)实验说明概要

算法验证原理:为了验证该 FFT 的频谱分析能力,故对一段合成信号进行 FFT 。

方波的傅里叶级数展开公式如下:根据以上公式各次谐波与基波之间的谐波频率与谐波幅度的关系, 我们可以使用 sin 函数合成任意次的方波。

这里,我们选取三次谐波合成方波。

以下是例程中的合成三次谐波信号:Input[i]=sin(2*pi*5*i/(NL-1+sin(2*pi*i*5*3/(NL-1/3+sin(2*pi*i*5*5/(NL-1/5;基波角频率 =2*pi*5, NL 为将连续信号离散化的点数,在2π的周期上均匀分割为 NL 个离散点。

这一步代替了 AD 采样的功能。

离散点存放在数组 Input[i]里面,长度为 NL 。

例程里面 NL=256。

加载程序并运行,点击 view->Graph->Time/Frequency,设置如下:点击 OK ,出现如下图所示的波形:这是合成信号的时域波形, 根据吉布斯效应,如果谐次增加, 高电平两个尖峰之间的震荡幅度将会减小变密,但是两边的尖峰不会削减。

接着我们设置如下:点击 OK ,我们将看到如下波形:上图为对该合成信号的 256点 FFT 频谱图,在三个频率分量处有幅度分布。

由于 FFT 是在2π上的分析, 而且将复数进行了取模运算, 所以频谱图是关于π(采样值为点 127的对称图形。

将鼠标点击到尖峰处,分别得到点数与幅度的值为:第一尖峰:(5, 0.99 第二尖峰:(15, 0.32 , 第三尖峰:(25, 0.19 。

采样点数关系为 5,15,25,满足 1:3:5的频率关系;量化的幅度关系为 0.99:0.32:0.19,满足 1:1/3:1/5的谐波幅度关系。

因此,该 FFT 算法能够准确的对信号进行频谱计算。

快速傅立叶变换FFT 实验报告

快速傅立叶变换FFT  实验报告

快速傅立叶变换(FFT)算法实验一.实验目的1.加深对DFT算法原理和基本性质的理解;2.熟悉FFT算法原理和FFT子程序的应用;3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。

二.实验设备计算机,CCS 3.1 版软件,E300实验箱,DSP仿真器,导线三.基本原理1.离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。

2.FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N步,极大的提高了运算的速度。

3.旋转因子的变化规律。

4.蝶形运算规律。

5.基2FFT算法。

四.实验步骤1.E300底板的开关SW4的第1位置ON,其余置OFF。

其余开关不用具体设置。

2.E300板子上的SW7开关的第1位置OFF,其余位置ON3.阅读本实验所提供的样例子程序;4.运行CCS软件,对样例程序进行跟踪,分析结果;记录必要的参数。

5.填写实验报告。

6.提供样例程序实验操作说明A.实验前准备用导线连接“Signal expansion Unit”中2号孔接口“SIN”和“A/D单元”的2号孔接口“AD_IN0”。

(实验采用的是外部的AD模块)B.实验1.正确完成计算机、DSP仿真器和实验箱的连接后,系统上电。

2.启动CCS3.1,Project/Open打开“algorithm\01_fft”子目录下“fft.pjt”工程文件;双击“fft.pjt”及“Source”可查看各源程序;加载“Debug\fft.out”;3.单击“Debug\Go main”进入到主程序,在主程序“flag=0;”处设置断点;4.单击“Debug \ Run”运行程序,或按F5运行程序;程序将运行至断点处停止;5.用View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为px和pz,长度为128,数值类型为16位整型,p x:存放经A/D转换后的输入信号;p z:对该信号进行FFT变换的结果。

快速傅里叶变换(含详细实验过程分析)

快速傅里叶变换(含详细实验过程分析)

一、实验目的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算法分析实验实验报告

FFT算法分析实验实验报告

FFT算法分析实验实验报告一、实验目的快速傅里叶变换(Fast Fourier Transform,FFT)是数字信号处理中一种非常重要的算法。

本次实验的目的在于深入理解 FFT 算法的基本原理、性能特点,并通过实际编程实现和实验数据分析,掌握 FFT 算法在频谱分析中的应用。

二、实验原理FFT 算法是离散傅里叶变换(Discrete Fourier Transform,DFT)的快速计算方法。

DFT 的定义为:对于长度为 N 的序列 x(n),其 DFT 为X(k) =∑n=0 到 N-1 x(n) e^(j 2π k n / N) ,其中 j 为虚数单位。

FFT 算法基于分治法的思想,将 N 点 DFT 分解为多个较小规模的DFT,从而大大减少了计算量。

常见的 FFT 算法有基 2 算法、基 4 算法等。

三、实验环境本次实验使用的编程语言为 Python,主要依赖 numpy 库来实现 FFT 计算和相关的数据处理。

四、实验步骤1、生成测试信号首先,生成一个包含不同频率成分的正弦波叠加信号,例如100Hz、200Hz 和 300Hz 的正弦波。

设定采样频率为 1000Hz,采样时间为 1 秒,以获取足够的采样点进行分析。

2、进行 FFT 计算使用 numpy 库中的 fft 函数对生成的测试信号进行 FFT 变换。

3、频谱分析计算 FFT 结果的幅度谱和相位谱。

通过幅度谱确定信号中各个频率成分的强度。

4、误差分析与理论上的频率成分进行对比,计算误差。

五、实验结果与分析1、幅度谱分析观察到在 100Hz、200Hz 和 300Hz 附近出现明显的峰值,对应于生成信号中的频率成分。

峰值的大小反映了相应频率成分的强度。

2、相位谱分析相位谱显示了各个频率成分的相位信息。

3、误差分析计算得到的频率与理论值相比,存在一定的误差,但在可接受范围内。

误差主要来源于采样过程中的量化误差以及 FFT 算法本身的近似处理。

数字信号处理实验 快速傅里叶变换(东大)

数字信号处理实验 快速傅里叶变换(东大)

快速傅里叶变换及其应用1. 实验目的及原理1.1实验目的:(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。

(2)应用FFT对典型的信号进行频谱分析。

(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。

(4)应用FFT实现序列的线性卷积和相关。

1.2实验原理:快速傅氏变换(FFT),是离散傅里叶变换的快速算法,它是根据离散傅氏变换的奇,偶,虚,实等特性,对离散傅里叶变换的算法进行改进获得的,根据不同的情况又分为按时间抽取的FFT和频率抽取的FFT,同时还包括N为任意复合数的算法以及Chirp-z变化算法。

2. 实验步骤和内容2.1 高斯序列其他(n)中参数p=8,改变q的值,使q分别等于2、观察高斯序列的时域和幅频特性,固定信号xa4、8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,注意p等于多少时,会发生明显的泄露现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。

p=8 , q=4p=8 , q=8p=13 , q=8p=14 , q=8 结果分析:2.2衰减的正弦序列()其他(n)的时域和幅频特性,a=0.1,f=0.0625,检查谱峰出现位置是否正确,观察衰减正弦序列xb注意频谱的形状,绘出幅频特性曲线,改变f,使f分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象?说明产生现象的原因。

f=0.0625f=0.4375f=0.5625结果分析:2.3 三角波和反三角波序列三角波序列其他反三角波序列其他观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT分析信号序列xc (n)和xd(n)的幅频特性,观察两者的序列形状和频谱曲线有什么异同?绘出两序列及其幅频特性曲线。

“快速傅里叶变换的实现”实验报告

“快速傅里叶变换的实现”实验报告
软件设计主要分为四个文件,四个文件各自完成自己的功能,如下: ①FFT1_main.cpp (复数据 FFT)
3
用户复数据输入
数据顺序颠倒 (remap()函数)
逐层蝶式运算
数据输出 ②IFFT_main.cpp (复数据 IFFT) 框图与①相同,略 ③FFT2_main.cpp (实数据 FFT)
设 实 序 列 为 x(n) 。 与 二 次 的 实 函 数 一 样 , 先 把 x(n) 分 离 为 奇 数 序 列
x1(n)(0 n N) 和 偶 数 序 列 x2 (n)(0 n N) 。 再 组 成 复数 序 列
y(n) x1(n) jx2 (n)(0 n N)
3 实验设备
安装了 VC、MATLAB 软件的 PC 机
4 实验原理
①如何在 matlab 上实现与 C 语言的混编? 由于本次实验中涉及到 C 语言与 matlab 进行数据交互的问题。如果按照
实验要求给出的方案来实现的话,无疑在测试中要进行频繁的文件读写才能 把数据在 matlab 和 C 语言之间传递。这样,测试过程缓慢并且容易出现人 为导致的错误。好在 matlab 为我们考虑到了这点,可以使用在 matlab 使用 mex 命令对 C 语言进行编译,编译完成之后,就可以直接在 matlab 命令行调 用 C 语言程序了,避免了 matlab 与 C 语言交互过程带来的种种不便。准确 来讲使用 mex 命令是把 C 语言编译成 matlab 能够识别的动态链接库 (.mexw64/.mexw32)。不过使用之前,用户需要解决两个问题:
第二个问题:matlab 与 C 语言是如何进行数据的传递的。 Matlab 传进 C 语言的数据是以数组的形式存在的。对于实数,可以利用

实验五--快速傅里叶变换

实验五--快速傅里叶变换

实验五--快速傅里叶变换CENTRAL SOUTH UNIVERSITY数字信号处理实验报告题目快速傅里叶变换学生姓名学院物理与电子学院专业班级电子信息科学与技术1105班学号140411072实验五快速傅里叶变换一、实验仪器PC机一台、JQ-SOPC开发系统实验箱及辅助软件(DSP Builder、Matlab/Simulink、Quartus II、Modelsim)。

二、实验目的1、了解快速傅里叶变换的基本结构组成。

2、学习使用DSP Builder设计FFT。

三、实验原理1、FFT的原理:快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的一种高效运算方法,它大大简化了DFT 的运算过程,使运算时间缩短几个数量级。

FFT 算法可以分为按时间抽取(DIT)和按频率抽取(DIF)两类,输入也可分为实数和复数两种情况。

八点时间抽取基-2FFT算法信号流图如图1示:图1 8点基-2 DIT-FFT信号流图四、实验步骤1、将桌面的my_fft_8.mdl拷贝到“D:\Program Files\MATLAB71\work”(MATLAB安装目录下的work文件夹)处,并双击打开。

图5-1 快速傅里叶变换系统图图5-2 快速傅里叶变换子系统1图图5-3 快速傅里叶变换子系统2图图5-3 快速傅里叶变换子系统3图2、点击工具栏即可开始系统级simulink仿真,以验证该模型的正确性。

在仿真进行过程中分别将三个输入控制开关打到000、001、010、011、100以选择五组输入数据进行FFT运算。

(1)当开关打到000时选择第一组数据{2.0,2.0,4.0,7.0,3.0,5.0,5.0,8.0},其运算结果应为36、-2.41+3.84i、-4+8i、0.4219+1.844i、-8、0.4102-1.84i、-4-8i、-2.422-3.844i。

(2)当开关打到001时选择第二组数据{1.1,5.0,10.5,15.3,20.2,25.7,30.6,40.1},其运算结果应该为148.5、-16.1+52.35i、-19.8+24.7i、-22.02+12.25i、-23.7、-22.1-12.15i、-19.8-24.7i、-16.9-52.45i。

快速傅里叶变换FFT实验

快速傅里叶变换FFT实验

1.快速傅里叶变换FFT实验.1)快速傅里叶变换FFT源程序:#include"iostream.h"#include"math.h"//using namespace std#define pi 3.1415926536 //定义pai void swap(double &a,double &b) //定义交换函数swap{double t=a;a=b;b=t;}void fft(double A[],double B[],int M) //定义fft快速傅里叶函数{ long int J,I,L,LE,LE1,P,Q,R;double N,K,Wr,Wi,W1r,W1i,WTr,WTi,theta,Tr,Ti;J=0;N=pow(2,M);//雷达算法码位倒置程序for(I=0;I<N-1;I++){if(J>I){swap(A[I],A[J]);swap(B[I],B[J]);}K=N/2;//向低位进位while(K>=2&&J>=K){J-=K;K=K/2;}J+=K;}//蝶形运算程序//最外层循环由蝶形图的级数确定for(L=1;L<=M;L++){LE=pow(2,L); //各级群间隔LE1=LE/2; //输入间隔Wr=1.0; //Wn的实部Wi=0.0; //Wn的虚部theta=(-1)*pi/LE1;W1r=cos(theta);W1i=sin(theta);//中层循环由Wn的个数确定for(R=0;R<LE1;R++){//内层循环由每一级群的个数确定for(P=R;P<N-1;P+=LE){Q=P+LE1;Tr=Wr*A[Q]-Wi*B[Q];Ti=Wr*B[Q]+Wi*A[Q];A[Q]=A[P]-Tr;B[Q]=B[P]-Ti;A[P]+=Tr;B[P]+=Ti;}//计算每一级的Wn的值WTr=Wr;WTi=Wi;Wr=WTr*W1r-WTi*W1i;Wi=WTr*W1i+WTi*W1r;}}}void main(){int M;double N;cout<<"实验人的信息:姓名:张超华学号:200801000728 专业班级:电力电子0801"<<endl;cout<<"输入序列的个数N(N必须为2^M),N=";cin>>N;//判断输入N的个数是否符合2^M个while(1){double b=log10(N)/log10(2);int a=b/1;if(a-b==0){M=a;break;}else{cout<<"输入序列的个数须为2^M个,重新输入N=";cin>>N;}}double *A=new double[N]; //为序列的实部分配动态空间double *B=new double[N]; //为序列的虚部分配动态空间for(int i=0;i<N;i++){A[i]=0.0;B[i]=0.0;}// 输入序列cout<<"请在下方输入序列的实部:"<<endl;for(int j=0;j<N;j++){cin>>A[j];}cout<<"请在下方输入序列的虚部:"<<endl;for(j=0;j<N;j++){cin>>B[j];}fft(A,B,M); //调用fft函数 cout<<"经快速傅里叶变换后得到的结果为:"<<endl; //输出变换结果 for(int m=0;m<N;m++){cout<<" "<<A[m]<<"+j("<<B[m]<<")"<<endl;}//释放内存空间delete [] A;delete [] B;}2)FFT程序运行结果:(参考课本160页的‘例6-3’运行程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CENTRAL SOUTH UNIVERSITY 数字信号处理实验报告
题目快速傅里叶变换
学生姓名
学院物理与电子学院
专业班级电子信息科学与技术1105班
学号140411072
实验五快速傅里叶变换
一、实验仪器
PC机一台、JQ—SOPC开发系统实验箱及辅助软件(DSP Builder、Matlab/Simulink、QuartusII、Modelsim)。

二、实验目得
1、了解快速傅里叶变换得基本结构组成、
2、学习使用DSP Builder设计FFT。

三、实验原理
1、FFT得原理:
快速傅里叶变换(FFT)就是离散傅里叶变换(DFT)得一种高效运算方法,它大大简化了DFT得运算过程,使运算时间缩短几个数量级、FFT算法可以分为按时间抽取(DIT)与按频率抽取(DIF)两类,输入也可分为实数与复数两种情况。

八点时间抽取基—2FFT算法信号流图如图1示:
图18点基-2 DIT-FFT信号流图
四、实验步骤
1、将桌面得my_fft_8。

mdl拷贝到“D:\Program Files\MATLAB71\work”(MATLAB安装目录下得work文件夹)处,并双击打开。

图5-1快速傅里叶变换系统图
图5—2 快速傅里叶变换子系统1图
图5—3快速傅里叶变换子系统2图
图5—3 快速傅里叶变换子系统3图
2、点击工具栏即可开始系统级simulink仿真,以验证该模型得正确性、在仿真进行过程中分别将三个输入控制开关打到000、001、010、011、100以选择五组输入数据进行FFT运算。

(1)当开关打到000时选择第一组数据{2.0,2.0,4。

0,7。

0,3.0,5。

0,5、0,8.0},其运算结果应为36、-2、41+3.84i、—4+8i、0、4219+1.844i、—8、0。

4102-1、84i、-4-8i、-2、422-3.844i。

(2)当开关打到001时选择第二组数据{1。

1,5。

0,10.5,15、3,20。

2,25。

7,30、6,40。

1},其运算结果应该为148、5、-16、1+52、35i、-19.8+24、7i、-22、02+12。

25i、—23.7、-22、1-12。

15i、-19.8-24。

7i、-16.9—52、45i、
(3)当开关打到010时选择第三组数据{5.6,5、0,15、8,20.4,25、2,35、1,40、2,45。

0},其运算结果结果应该为192。

3、-23.39+63、19i、—25。

2+25、3i、-15.69+14。

49i、—18、7、-15。

81—14、39i、-25。

2-25。

3i、-23。

51-63、29i。

(4)当开关打到011选择第四组数据{10、2,15。

3,18。

1,20。

3,24.2,30、0,35.2,42、3},
其运算结果应该为195.6、—8、755+43、11i、—18。

9+17.3i、-19。

19+8、992i、-20、2、-19、25-8。

906i、-18。

9-17、3i、-8、812-43、2i。

(5)当开关打到100选择第五组数据{4。

0,10.5,15。

6,20、3,25。

2,35、7,40.5,45。

0},其运算结果应该为196、8、-21。

45+60.28i、—26。

9+19。

1i、-20。

85+10、58i、—26、2、—20、94—10、48i、—26.9-19.1i、—21、55—60、38i、3、双击模型图中得Testbench模块弹出类似如图7所示对话框。

依次单击Gener ate HDL、Run Simulink、Run Modelsim三个选项。

其中Run Modelsim选项后得Launch GUI前得选项框一定要选,这样可以观瞧modelsimRTL级仿真结果。

4、双击模型图中得SignalComplier模块弹出类似如图8所示对话框。

在parameters栏下得family选项选择cyclone II ,device选项选择默认得auto,然后点击simple下得plie,编译完后关闭该页。

5、关闭MATLAB。

在位置“D:\Program Files\MATLAB71\work\ my_fft_8_dspb uilder” (MATLAB安装目录下得work\ my_fft_8_dspbuilder)打开文件my_fft_8。

qpf。

6、工具栏中点击Assignments,选中Device,在器件family中选择CycloneⅡ,选择下拉菜单中得EP2C35F672C6、,点击finish。

7、执行Assignmets—〉AssignmentEditor,将Category设为Pin,并按照下图对Pin进行设置并保存。

图5-1管脚分配图
8、执行Tools->SignalTapⅡLogic Analyzer,在Data窗口中得空白处双击,在弹出得对话框中将Fiter设为all&registers:post fittings,点击List,将Output添加至右边得窗口中,点击【OK】确认、在右边得对话框中将Clock设为Clock信号;Sample depth设置为1K;点选Trigger in,Source设为Clock信号,Pattern设为Rising edge。

保存该文件,若弹出对话框询问就是否将文件添加至工程,选择Yes。

点击菜单栏中得,重新对工程进行编程。

9、打开实验箱,接入电源,用USBBlaster线将电脑与实验箱连接起来,选择菜单栏中得图标。

10、点击Hardware Setup,选择USB—0,点击【OK】确认。

选中my_fft_8.sof文件,点击Start,将文件下载到实验板上。

11、将实验箱上得开关SW[3]拨至高电平,SW[2]、SW[1]、SW[0]拨至低电平点击。

点击开始运行工程,10s后,点击结束运行、依次使(SW[2], SW[1], SW[0])=(0, 0,1)~(1, 1,1),重复上一步得操作,并与理论值进行比较。

五、实验结果
1、Simulink仿真波形:
(1)当开关打到000时
(2)当开关打到001时
(3)当开关打到100时
2、RTL级仿真波形
3、硬件实现波形[(SW[2], SW[1] , SW[0])=(0,0, 1)~(1, 1,1)] (1)(SW[2],SW[1],SW[0])=(0,0,1)
(2)(SW[2],SW[1],SW[0])=(0,1,0)
(3)(SW[2],SW[1],SW[0])=(0,1,1)
(4)(SW[2],SW[1],SW[0])=(1,0,0)
(5)(SW[2],SW[1],SW[0])=(1,0,1)
六、讨论分析
1、实验中遇到得问题与解决方法。

FFT实现对我们来说比较困难,FFT得算法还能瞧得懂,但就是怎么用软件实现FFT算法,我们了解得并不多,所以对这次实验得各子系统都不大明白其工作方式与功能,但就是实验时
间有限,我们暂且抛下这些不管,等以后有时间与兴趣时再去深究,直接按照实验步骤进行实验。

2、2013年美国《技术评论》评选出了10项改变世界得新技术,一种由MIT四名学生提出得比FFT快上10至100倍得稀疏傅里叶变换(SFT)算法、关于SFT您知道些什么?(SFT得内容,SFT对信息时代得意义)(原文:“Nearly Optimal Sparse FourierTr ansform")
FFT得基本原理就是,所有信号,例如录音,都可以表现为一系列不同频率与波幅得正弦与余弦波组合。

进行变换之后,对这组波得处理会相对容易些—-比方说,可以压缩一段录音或消除噪音。

20世纪60年代中期,研究人员创造出了一种利用计算机实现得算法,称之为快速傅里叶变换(FFT)。

相比未压缩得录音版本,MP3格式文件得体积之小简直令人惊叹,这让我们真正见识到了快速傅里叶变换得威力。

而利用被称为稀疏傅里叶变换(SFT)得新算法,数据流得处理速度会比快速傅里叶变换还要快上10倍至100倍。

之所以能够如此大幅地提速,就是因为我们关注得信息大多拥有大量得结构:例如音乐与不规则噪声就完全不就是一回事。

这些有意义得信号通常只能取一小部分可能值;用技术术语来表达,即这些信息就是“稀疏”得、由于稀疏傅里叶变换算法不需要对所有可能得数据流都进行处理,因此它可以使用其她算法无法做
到得某些快捷处理方式。

从理论上瞧,如果一种算法只能用来处理稀疏信号,它受到得限制会比快速傅里叶变换多得多、但正如该算法得共同发明者、电子工程与计算机科学教授卡塔比所指出得那样,“稀疏性无处不在”,“它存在于大自然中,存在于视频信号中,存在于音频信号中。

”。

相关文档
最新文档