找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2298|回复: 0
打印 上一主题 下一主题
收起左侧

快速FFT变换C语言程序

[复制链接]
跳转到指定楼层
楼主
ID:551867 发表于 2019-5-31 15:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
快速FFT变换源程序
  1. #include <stdio.h>
  2. #include <math.h>

  3. typedef struct                                                                                        //定义复数结构体变量
  4. {
  5.         double real;
  6.         double imag;
  7. }complex;

  8. #define N 5

  9. #define PI 3.1514926535897932384626433832795028841971        //定义圆周率

  10. void c_plus(complex, complex, complex *);                                //复数加运算
  11. void c_sub(complex, complex, complex *);                                //复数减运算o
  12. void c_mul(complex, complex, complex *);                                //复数乘运算
  13. void Wn_i(int, int, complex *);                                                    //旋转因子

  14. int main()
  15. {
  16.         complex f[N] = { 1, 2, 2, 3 };
  17.         complex wn;
  18.         Wn_i(8, 3, &wn);
  19.         c_mul(f[0], wn, &f[2]);
  20.         c_sub(f[1], f[2], &(f[3]));
  21.         c_plus(f[1], f[2], &(f[4]));
  22.         printf("f[%d]为:%lf + %lf        \n", 2, f[2].real, f[2].imag);
  23.         printf("f[%d]为:%lf + %lf        \n", 3, f[3].real, f[3].imag);
  24.         printf("f[%d]为:%lf + %lf        \n", 4, f[4].real, f[4].imag);
  25.         return 0;
  26. }

  27. void c_plus(complex a, complex b, complex *c)                        //复数加法
  28. {
  29.         c->real = a.real + b.real;
  30.         c->imag = a.imag + b.imag;
  31. }
  32. void c_sub(complex a, complex b, complex *c)                        //复数减法
  33. {
  34.         c->real = a.real - b.real;
  35.         c->imag = a.imag - b.imag;
  36. }
  37. void c_mul(complex a, complex b, complex *c)                        //复数乘法
  38. {
  39.         c->real = a.real*b.real - a.imag*b.imag;
  40.         c->imag = a.real*b.imag + a.imag*b.real;
  41. }

  42. void Wn_i(int n1, int i, complex *Wn)                                        //定义旋转因子
  43. {
  44.         Wn->real = cos(2 * PI*i / n1);
  45.         Wn->imag = -sin(2 * PI*i / n1);
  46. }
复制代码

全部资料51hei下载地址:
fft.zip (699 Bytes, 下载次数: 42)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表