- 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)