资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
.专业整理.数字信号处理课程设计 题目:频谱分析仪模拟仿真 专业:电子信息工程 班级: 姓名: 日期:2015-03-26 目录1. 设计目的-12. 程序流程-23. 软件设计-34. 心得体会-45. 参考文献-5一、设计目的1、通过对频谱分析仪的模拟掌握其基本原理和基本功能;2、学习掌握用计算机输出基波包括:方波、正弦波、余弦波等;3、掌握倒位序、离散傅里叶变换(DFT)、快速傅里叶变换(FFT)的原理及算法;4、分别用DFT和FFT分析比较32位方波序列对比,体会快速算法的意义;5、学会用turbo c编程软件并且对c语言编程算法进行实践,加深理解。二、软件设计1、方波8位加DFT抽样#include #include #define N 8#define PI 3.1415926int sam8;void sample() int i,j; printf(抽样结果:n); for(i=0;iN;i+) if(i=N/2) j=-1; sami=j; printf(sam%d=%d ,i,j); printf(n);void DFT()int k,n,a;float sum1=0,sum2=0; float xiN,xjN,xkN;printf(DFT变换结果:n);for(k=0;kN;k+) for(n=0;nN;n+)xin=samn*cos(-(2*PI/N)*k*n);sum1+=xin;xjn=samn*sin(-(2*PI/N)*k*n);sum2+=xjn; xkk=sqrt(sum1*sum1+sum2*sum2);sum1=0;sum2=0;for(a=0;aN;a+)printf(X%d=%f ,a,xka); printf(n);void main() sample(); DFT();截图2、方波32位程序#include void main() int i,a,N; N=32; for(i=0;iN/2;i+) a=1; printf(%d ,a); for(i=N/2;iN;i+) A=-1printf(%d ,a);system(pause);软件截图 2、DFT程序#include#includevoid main()float t,re=0,im=0,sum,mod,P=3.1415926;int n,k,N=32,*x;for(n=0;nN/2;n+)xn=1;for(n=N/2;nN;n+)xn=-1;for(k=0;kN;k+)for(n=0;nN;n+)t=(-2*P/N)*n*k;re+=xn*cos(t);for(n=0;nN;n+)t=(-2*P/N)*n*k;im+=xn*sin(t);sum=re*re+im*im;mod=sqrt(sum);printf(x%d=%f,n,k,mod);re=0,im=0;sum=0;mod=0;软件截图3、倒位序程序#include#include#define N 32void main()int nv2,nm1,i,k,j=0,x100,t;nv2=N/2;nm1=N-1;printf(请输入自然序:n);for(i=0;iN;i+)scanf(%d,&xi);for(i=0;inm1;i+)if(ij)t=xj;xj=xi;xi=t;k=nv2;while(k=j)j=j-k;k=k/2;j=j+k;printf(输出倒位序:n);for(j=0;jN;j+)printf(%d ,xj);printf(n);软件截图4、FFT程序#include #include struct cmplexfloat r;float i;struct cmplex ss(struct cmplex a1,struct cmplex a2)struct cmplex c;c.r=a1.r*a2.r-a1.i*a2.i;c.i=a1.r*a2.i+a1.i*a2.r;return(c);void main()int i,k,N=32,nv,nm,j=0,m,le,le0,ip;float pai=3.1415926,tmp,sum,*a;struct cmplex u,w,t,x32;for(i=0;iN;i+)xi.r=1;xi.i=0;for(i=N/2;iN;i+)xi.r=-1;xi.i=0;nv=N/2;nm=N-1;for(i=0;inm;i+)if(ij)t=xj;xj=xi;xi=t;k=nv;while(k=j)j-=k;k=k/2;j+=k;for(m=1;m=5;m+)le=pow(2,m);le0=le/2;u.r=1;u.i=0;tmp=pai/le0; w.r=cos(-tmp);w.i=sin(-tmp);for(j=0;jle0;j+)for(i=j;iN;i+=le)ip=i+le0;t=ss(xip,u);xip.r=xi.r-t.r; xip.i=xi.i-t.i;xi.r+=t.r; xi.i+=t.i;u=ss(u,w);printf(n);for(i=0;iN;i+)sum=xi.r*xi.r+xi.i*xi.i;ai=sqrt(sum);printf(a%d=%fn,i,ai);软件截图三、心得体会 该实验巩固了我们上学期所学的数字信号处理和信号与系统知识,通过C语言上机操作仿真信号,不仅能够加深我们对各种信号抽样和变换的认识,也能让我们真真切切体会到计算机仿真系统带给我们学生和技术人员的巨大便利。总而言之,本次DSP仿真为我们以后在信号领域的探索和研究打下了良好的基础。四、参考文献 1、程佩清数字信号处理教程清华大学出版社 2013 第四版 2、王宝祥信号与系统哈尔滨工业大学出版社(修订版) 3、谭浩强C语言程序设计清华大学出版社 2008 第二版 .学习帮手.
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号