频谱分析仪模拟仿真.docVIP

  • 37
  • 0
  • 约3.61千字
  • 约 10页
  • 2017-01-12 发布于重庆
  • 举报
频谱分析仪模拟仿真

数字信号处理课程设计 题目:频谱分析仪模拟仿真 专业:电子信息工程 班级: 姓名: 日期:2015-03-26 目录 设计目的------------------------------------------------------------------------1 程序流程------------------------------------------------------------------------2 软件设计------------------------------------------------------------------------3 心得体会------------------------------------------------------------------------4 参考文献------------------------------------------------------------------------5 一、设计目的 1、通过对频谱分析仪的模拟掌握其基本原理和基本功能; 2、学习掌握用计算机输出基波包括:方波、正弦波、余弦波等; 3、掌握倒位序、离散傅里叶变换(DFT)、快速傅里叶变换(FFT)的原理及算法; 4、分别用DFT和FFT分析比较32位方波序列对比,体会快速算法的意义; 5、学会用turbo c编程软件并且对c语言编程算法进行实践,加深理解。 二、软件设计 1、方波8位加DFT抽样 #include stdio.h #include math.h #define N 8 #define PI 3.1415926 int sam[8]; void sample() { int i,j; printf(抽样结果:\n); for(i=0;iN;i++) { if(iN/2) { j=1; sam[i]=j; printf(sam[%d]=%d ,i,j); } if(i=N/2) { j=-1; sam[i]=j; printf(sam[%d]=%d ,i,j); } } printf(\n); } void DFT() { int k,n,a; float sum1=0,sum2=0; float xi[N],xj[N],xk[N]; printf(DFT变换结果:\n); for(k=0;kN;k++) { for(n=0;nN;n++) { xi[n]=sam[n]*cos(-(2*PI/N)*k*n); sum1+=xi[n]; xj[n]=sam[n]*sin(-(2*PI/N)*k*n); sum2+=xj[n]; } xk[k]=sqrt(sum1*sum1+sum2*sum2); sum1=0; sum2=0; } for(a=0;aN;a++) { printf(X[%d]=%f ,a,xk[a]); } printf(\n); } void main() { sample(); DFT(); } 截图 2、方波32位程序 #include stdio.h 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=-1 printf(%d ,a); } system(pause); } 软件截图 2、DFT程序 #includestdio.h #includemath.h void main() { float t,re=0,im=0,sum,mod,P=3.1415926; int n,k,N=32,*x; for(n=0;nN/2;n++) { x[n]=1; } for(n=N/2;nN;n++) {x[n]=-1;} for(k=0;kN;k++)

文档评论(0)

1亿VIP精品文档

相关文档