计算机频谱仪仿真,频谱分析仪模拟仿真.doc

该博客详细介绍了频谱分析仪的模拟仿真过程,旨在掌握其基本原理和功能。作者通过C语言编程实现了8位和32位方波的生成,并运用DFT和FFT算法进行分析,探讨了快速傅里叶变换的效率优势。此外,还分享了使用Turboc编程软件的心得体会。
摘要由CSDN通过智能技术生成

频谱分析仪模拟仿真

数字信号处理课程设计

题目:频谱分析仪模拟仿真

专业:电子信息工程

班级:

姓名:

日期: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

#include

#define N 8

#define PI 3.1415926

int sam[8];

void sample()

{

int i,j;

printf("抽样结果:\n");

for(i=0;i

{

if(i

{

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;k

{

for(n=0;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;a

{

printf("X[%d]=%f ",a,xk[a]);

}

printf("\n");

}

void main()

{

sample();

DFT();

}

截图

2、方波32位程序

#include

void main()

{

int i,a,N;

N=32;

for(i=0;i

{

a=1;

printf("%d ",a);

}

for(i=N/2;i

{

A=-1

printf("%d ",a);

}

system("pause");

}

软件截图

2、DFT程序

#include

#include

void main()

{

float t,re=0,im=0,sum,mod,P=3.1415926;

int n,k,N=32,*x;

for(n=0;n

{

x[n]=1;

}

for(n=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值