ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:144.42KB ,
资源ID:18460886      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18460886.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字信号处理课程设计Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字信号处理课程设计Word文件下载.docx

1、DFT使计算机在频域处理信号成为可能,但是当N很大时,直接计算N点DFT的计算量非常大。快速傅里叶变换(FFT,Fast Fourier Transform)可使实现DFT的运算量下降几个数量级,从而使数字信号处理的速度大大提高,工程应用成为可能。人们已经研究出多种FFT算法,它们的复杂度和运算效率各不相同。快速傅里叶变换就是不断地将长序列的DFT分解为短序列的DFT,并利用 的周期性和对称性及其一些特殊值来减少DFT运算量的快速算法。FFT算法分类:1.时间抽选法 DIT:Decimation-In-Time2.频率抽选法 DIF:Decimation-In-Frequency时间域抽取:基

2、2时间抽取(Decimation in time)DIT-FFT算法频率域抽取:基2频率抽取(Decimation in frequency)DIF-FFT算法第二章 基2 DIT-FFT算法2.1 按时间抽取的基2 DIT-FFT算法:1、按时间抽取的基2 DIT-FFT算法原理先设序列点数为N=2M,M为整数。如果不满足这个条件,可以人为地加上若干零值点,使之达到这一要求。这种N为2的整数幂的FFT称基-2 FFT。设输入序列长度为N=2M (M为正整数) ,将该序列按时间顺序的奇偶分解为越来越短的子序列,称为按时间抽取(DIT )的FFT算法。 序列x(n)的N点DFT为 将上面的和式按

3、n的奇偶性分解为 令x1(l)=x(2l),x2(l)=x(2l+1),因为 ,所以上式可写成上式说明,按n的奇偶性将x(n)分解为两个N/2长的序列x1(l)和x2(l),则N点DFT可分解为两个N/2点DFT来计算。用X1(k)和X2(k)分别表示x1(l)和x2(l)的N/2点DFT,即有上述公式,及X1(k)、X2(k)的隐含周期性得到:这样,就将N点DFT的计算分解为计算两个N/2点离散傅里叶变换X1(k)和X2(k),再计算上式。蝶形图:2、 按时间抽选的FFT算法的特点:(1)原位运算由图4.2.4可以看出,DIT-FFT的运算过程很有规律。N=2M点的FFT共进行M级运算,每级

4、由N/2个蝶形运算组成。同一级中,每个蝶形的两个输入数据只对计算本蝶形有用,而且每个蝶形的输入、输出数据结点又同在一条水平线上,这就意味着计算完一个蝶形后,所得输出数据可立即存入原输入数据所占用的存储单元。这样,经过M级运算后,原来存放输入序列数据的N个存储单元中便依次存放 的N个值。这种利用同一存储单元存储蝶形计算输入、输出数据的方法称为原位计算。原位计算可节省大量内存,从而使设备成本降低。(2)倒序规律按原位计算时,FFT的输出 是按正常顺序排列在存储单元中,但是这时输入x(n)却不是、按自然顺序存储的,而是按x(0),x(4),x(7)的顺序存入存储单元,看起来好象是“混乱无序”的,实际

5、上是有规律的,我们称之为倒序。第三章 基于C语言设计16点基2DFT-FFT程序及运行结果设计参数及要求:本次试验要求利用C语言设计16点基2DIT-FFT程序,并对如下程序进行分析,给出输出结果并画出信号的幅值图和相位谱。n12345678910X(n)1.222.232.85 2.982.601.760.62-0.62-1.76-2.601112131415-2.98-2.85-2.23-1.223.1 按时间抽取的基2DFT-FFT程序:/*时间抽选基2 FFT算法C语言实现*/#include math.hstdlib.hconio.h#define N 1000#include/*定

6、义复数类型*/typedef struct double real; double img;complex;complex xN, *W; /*输入序列,变换核*/int size_x=0; /*输入序列的大小,在本程序中仅限2的次幂*/double PI; /*圆周率*/int z;float wN,pN;char strN;/*初始化变换核*/void initW() int i; W=(complex *)malloc(sizeof(complex) * size_x); for(i=0;ireal=a.real+b.real;img=a.img+b.img;/*乘法*/void mul

7、(complex a,complex b,complex *c)real=a.real*b.real - a.img*b.img;img=a.real*b.img + a.img*b.real;/*减法*/void sub(complex a,complex b,complex *c)real=a.real-b.real;img=a.img-b.img;/*除法*/void divi(complex a,complex b,complex *c)real=( a.real*b.real+a.img*b.img )/( b.real*b.real+b.img*b.img);img=( a.img

8、*b.real-a.real*b.img)/(b.real*b.real+b.img*b.img);/*变址计算,将x(n)码位倒置*/void change() complex temp; unsigned short i=0,j=0,k=0; double t; k=i;j=0; t=(log(size_x)/log(2); while( (t-)0 ) j=j if(ji) temp=xi; xi=xj; xj=temp;/*快速傅里叶变换*/void fft() int i=0,j=0,k=0,l=0; complex up,down,product; change(); log(si

9、ze_x)/log(2) ; /*一级蝶形运算*/ l=1i; for(j=0;jj+= 2*l ) /*一组蝶形运算*/ for(k=0;k=0.0001)printf(+%.4fjn,xi.img); else if(fabs(xi.img)0.0001)printf(n else printf(%.4fjn for( z=0;z=0) outtextxy(x-step+2,(y-(wk)*12)-10,buffera); else outtextxy(x-step+2,(y-(wk)*12)+10,buffera); getch(); cleardevice();void draw2(i

10、nt n) /* 作相位图 */ float kd; int i,j,xstep=512/n,ystep=30; char buffer10,bufferpN,bufferkdN; y=250;The Figure of phase is as follow! line(x,50,x,450); line(x-4,70,x,50); line(x,50,x+4,70); j=250; outtextxy(15,j,0 for(kd=0.5;kd outtextxy(x-step+2,(y-(pk)*60)-10,bufferp); outtextxy(x-step+2,(y-(pk)*60)+

11、5,bufferp); int main() int i,method; void fft(); /*快速傅里叶变换*/ void ifft(); void initW(); /*初始化变换核*/ void change(); /*变址*/ void add(complex ,complex ,complex *); /*复数加法*/ void mul(complex ,complex ,complex *); /*复数乘法*/ void sub(complex ,complex ,complex *); /*复数减法*/ void divi(complex ,complex ,complex

12、 *);/*复数除法*/ void output(); void output2(); /*输出结果*/ system(cls PI=atan(1)*4;Please input the size of x: scanf(%d,&size_x);Please input the data in xN:%lf%lfxi.real,&xi.img); initW();Use FFT(0) or IFFT(1)?method); if(method=0) fft(); ifft(); output();/* 画频谱图 */ draw(size_x); output2(); draw2(size_x)

13、; closegraph();3.2 程序运行结果:Please input the size of X:16Please input the data in XN:xn = 0 1.2200 2.2300 2.8500 2.9800 2.6000 1.7600 0.6200 -0.6200 -1.7600 -2.6000 -2.9800 -2.8500 -2.2300 -1.2200 04.49118667428684 - 22.5787201341516i-0.863137084989848 + 2.08379725676967i-0.708894177324789 + 1.0609351

14、1090429i-0.660000000000000 + 0.660000000000000i-0.667400913065437 + 0.445943033038161i-0.636862915010152 + 0.263797256769669i-0.634891583896613 + 0.126287787982296i-0.640000000000000-0.634891583896613 - 0.126287787982296i-0.636862915010152 - 0.263797256769669i-0.667400913065437 - 0.445943033038161i-0.660000000000000 - 0.660000000000000i-0.708894177324789 - 1.060

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1