求用C语言实现FFT变换的程序(见下面)
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/31 15:19:25
求用C语言实现FFT变换的程序(见下面)
2.用FFT程序分析正 玄信号,分别在以下情况进行分析,并讨论所得的结果
a 信号频率F=50Hz,采样长N=32,采样时间T=0.000625s
b 信号频率F=50Hz,采样长N=32,采样时间T=0.005s
c 信号频率F=50Hz,采样长N=32,采样时间T=0.0046875s
d 信号频率F=50Hz,采样长N=32,采样时间T=0.004s
e 信号频率F=50Hz,采样长N=64,采样时间T=0.000625s
f 信号频率F=250Hz,采样长N=32,采样时间T=0.005s
g 将C信号后补32个0,做64点FFT
三 实验报告
1.记录下实验内容中各种情况下的X(k)值,作出频谱图,并深入讨论结果,说明参数的变化对信号频谱产生哪些影响.频谱只作模特性,模的最大值=1,全部规一化.
2.打印出用C语言编写的FFT源程序,并且在每一小段处加上详细的注释说明.
3.用C语言编写FFT编写程序时,要求采用人机界面形式:
N、T、F变量均由键盘输入;补零或不补零要求设置一开关.
2.用FFT程序分析正 玄信号,分别在以下情况进行分析,并讨论所得的结果
a 信号频率F=50Hz,采样长N=32,采样时间T=0.000625s
b 信号频率F=50Hz,采样长N=32,采样时间T=0.005s
c 信号频率F=50Hz,采样长N=32,采样时间T=0.0046875s
d 信号频率F=50Hz,采样长N=32,采样时间T=0.004s
e 信号频率F=50Hz,采样长N=64,采样时间T=0.000625s
f 信号频率F=250Hz,采样长N=32,采样时间T=0.005s
g 将C信号后补32个0,做64点FFT
三 实验报告
1.记录下实验内容中各种情况下的X(k)值,作出频谱图,并深入讨论结果,说明参数的变化对信号频谱产生哪些影响.频谱只作模特性,模的最大值=1,全部规一化.
2.打印出用C语言编写的FFT源程序,并且在每一小段处加上详细的注释说明.
3.用C语言编写FFT编写程序时,要求采用人机界面形式:
N、T、F变量均由键盘输入;补零或不补零要求设置一开关.
这是一个傅里叶变化的子函数,你可以自己做主函数传递你这里的参数验证
// 入口参数:
// l:l = 0,傅立叶变换; l = 1,逆傅立叶变换
// il:il = 0,不计算傅立叶变换或逆变换模和幅角;il = 1,计算模和幅角
// n:输入的点数,为偶数,一般为32,64,128,...,1024等
// k:满足n=2^k(k>0),实质上k是n个采样数据可以分解为偶次幂和奇次幂的次数
// pr[]:l=0时,存放N点采样数据的实部
// l=1时,存放傅立叶变换的N个实部
// pi[]:l=0时,存放N点采样数据的虚部
// l=1时,存放傅立叶变换的N个虚部
//
// 出口参数:
// fr[]:l=0,返回傅立叶变换的实部
// l=1,返回逆傅立叶变换的实部
// fi[]:l=0,返回傅立叶变换的虚部
// l=1,返回逆傅立叶变换的虚部
// pr[]:il = 1,l = 0 时,返回傅立叶变换的模
// il = 1,l = 1 时,返回逆傅立叶变换的模
// pi[]:il = 1,l = 0 时,返回傅立叶变换的辐角
// il = 1,l = 1 时,返回逆傅立叶变换的辐角
void kbfft(double *pr,double *pi,int n,int k,double *fr,double *fi,int l,int il)
{
int it,m,is,i,j,nv,l0;
double p,q,s,vr,vi,poddr,poddi;
//排序
for (it=0; it
// 入口参数:
// l:l = 0,傅立叶变换; l = 1,逆傅立叶变换
// il:il = 0,不计算傅立叶变换或逆变换模和幅角;il = 1,计算模和幅角
// n:输入的点数,为偶数,一般为32,64,128,...,1024等
// k:满足n=2^k(k>0),实质上k是n个采样数据可以分解为偶次幂和奇次幂的次数
// pr[]:l=0时,存放N点采样数据的实部
// l=1时,存放傅立叶变换的N个实部
// pi[]:l=0时,存放N点采样数据的虚部
// l=1时,存放傅立叶变换的N个虚部
//
// 出口参数:
// fr[]:l=0,返回傅立叶变换的实部
// l=1,返回逆傅立叶变换的实部
// fi[]:l=0,返回傅立叶变换的虚部
// l=1,返回逆傅立叶变换的虚部
// pr[]:il = 1,l = 0 时,返回傅立叶变换的模
// il = 1,l = 1 时,返回逆傅立叶变换的模
// pi[]:il = 1,l = 0 时,返回傅立叶变换的辐角
// il = 1,l = 1 时,返回逆傅立叶变换的辐角
void kbfft(double *pr,double *pi,int n,int k,double *fr,double *fi,int l,int il)
{
int it,m,is,i,j,nv,l0;
double p,q,s,vr,vi,poddr,poddi;
//排序
for (it=0; it
用matlab如何实现fft变换
用C语言数组编写一个程序实现求Fibonacci数列的前n个数.
用C语言设计程序实现多项式相乘的问题,
编写程序,实现两个集合的交运算(用C语言)
求1 × 2 × 3 × … ×n的值,n(1~30之间)的值由键盘输入,用for语句实现.要求:用c语言编写程序
求一个数值转换的C语言程序,能够实现整数和小数部分的转换.
C语言:用递归实现辗转相除法和辗转相减法求最大公约数和最小公倍数,下面2个程序错了,帮我改改,
数据结构的题目,用c语言编写下面的程序
编写一个函数实现两个字符串的连接(不使用库函数strcat).这个用C语言怎么写程序啊求详细解释~急!
C语言程序题:1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现
请问如何用C语言实现汉字和Unicode编码的转换 求程序
用C语言编写下面题目的程序: