• 大小: 3.24KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: C/C++
  • 标签: c  

资源简介


根据网上已有的资源,经过自己的整理的快速傅里叶变换,希望能够为信号处理,信号的时域、频域转换需求的开发,研究人员带来方便。 敬请批评指正!

资源截图

代码片段和文件信息

#include“ji_2fft.h“
#include
#include
#include

/*
功能:完成序列(N=128)反转操作
参数:
*/
void BitReverse(complex_float in_buf[N])
{
int times=N/2;
/*由于N等于128,需要用七位二进制位表示*/
int x0x1x2x3x4x5x6;
x0=x1=x2=x3=x4=x5=x6=0;
for (int i=0;i {
//定义分别表示下标i对应的每一位二进制位的值
x0=i&0x01;                   //最低位的值
x1=(i/2)&0x01;               //除二右移一位 
x2=(i/4)&0x01; 
x3=(i/8)&0x01;
x4=(i/16)&0x01; 
x5=(i/32)&0x01;
x6=(i/64)&0x01;
    int xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;          //求得与i交换元素的序列位置
//进行交换
Change(&in_buf[i]&in_buf[xx]);
}
}
/*
功能:复数加法运算:a+b=c
参数:ab为加数,c为a+b的结果
*/
void add(complex_float acomplex_float bcomplex_float *c)
{
c->re=a.re+b.re;
c->im=a.im+b.im;
}

/*
功能:复数乘法运算:a*b=c
参数:ab为乘数,c为a*b的结果
*/
void mult(complex_float acomplex_float bcomplex_float *c)
{
c->re=a.re*b.re - a.im*b.im;
c->im=a.re*b.im + a.im*b.re;
}

/*
功能:复数加法运算:a-b=c
参数:a为被减数,b为减数,c为a-b的结果
*

评论

共有 条评论