博客
关于我
Objective-C实现快速傅里叶变换FFT(附完整源码)
阅读量:796 次
发布时间:2023-02-20

本文共 2319 字,大约阅读时间需要 7 分钟。

Objective-C?????????FFT

????????FFT????????????????DFT??????????FFT???????????????????????Objective-C??FFT???????????

??Objective-C??

????Xcode???????macOS??????Command Line Tool???????????????Objective-C????????FFTObjectiveC??

??FFT??

?main.m?????FFT??????????????????

#import 

??????FFT????????????????

int main(int argc, const char *argv) {
int n = 8; // ?????????8
int m = 1; // ?????????1
// ????
int *x = (int *)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
x[i] = sin(i * M_PI / 180); // ?????????
}
// FFT??
// ???FFT?????????
// ...
// ????
printf("FFT??!\n");
free(x);
return 0;
}

??????????????????FFT??????????????????????FFT?????

#include 
#include
#include
// ??????
typedef struct {
int real;
int imag;
} Complex;
// FFT????
Complex *fft(Complex *input, int n) {
Complex *output = malloc(sizeof(Complex) * n);
// ???FFT????????
for (int i = 0; i < n; i++) {
output[i] = input[i];
}
return output;
}
int main(int argc, const char *argv) {
int n = 8; // ??????
int m = 1; // ??????
// ??????
Complex *x = malloc(n * sizeof(Complex));
for (int i = 0; i < n; i++) {
x[i].real = sin(i * M_PI / 180);
x[i].imag = 0;
}
// FFT??
Complex *y = fft(x, n);
// ??????
printf("FFT????????%d\n", y[0].real);
free(x);
free(y);
return 0;
}

??????????FFT?????FFT????????????????????????????????????FFT????????????????FFT?

  • FFTW: ??????FFT?????????????
  • Accelerate??: Apple???Accelerate?????FFT???
  • Numerix: ??Objective-C??FFT???

???????

?????????????????????????FFT???????????????? frameworks?

??????????????????

  • ?????????: ?????????2????
  • FFT????: ??FFT???????????????FFT?????
  • ????: ???????FFT??????????FFTW?Accelerate???
  • ????

    ??????????FFT??????

    // ????
    int n = 8;
    Complex *x = malloc(n * sizeof(Complex));
    for (int i = 0; i < n; i++) {
    x[i].real = sin(i * M_PI / 180);
    x[i].imag = 0;
    }
    // FFT??
    Complex *y = fft(x, n);
    // ?FFT??
    Complex *z = fft(y, n);
    // ??????
    for (int i = 0; i < n; i++) {
    printf("%f\n", z[i].real);
    }

    ????????????FFT???????????????????

    ??

    ???????????Objective-C??????????FFT?FFT?????????????????????????????????????????????????????FFT???

    转载地址:http://jlifk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现使用 ziggurat() 作为 OpenMP 并行程序中的随机数生成器 (RNG)(附完整源码)
    查看>>
    Objective-C实现使用数组实现约瑟夫环(附完整源码)
    查看>>
    Objective-C实现使用管道重定向进程输入输出(附完整源码)
    查看>>
    Objective-C实现倒计时(附完整源码)
    查看>>
    Objective-C实现借记款项功能(附完整源码)
    查看>>
    Objective-C实现八进制转十进制算法(附完整源码)
    查看>>
    Objective-C实现关系矩阵A和B的乘积(附完整源码)
    查看>>
    Objective-C实现关系矩阵乘法(附完整源码)
    查看>>
    Objective-C实现关系矩阵乘法(附完整源码)
    查看>>
    Objective-C实现关键字移位字母表密码算法(附完整源码)
    查看>>
    Objective-C实现内存映射文件(附完整源码)
    查看>>
    Objective-C实现内存泄露检查(附完整源码)
    查看>>
    Objective-C实现内格尔·施雷肯伯格算法(附完整源码)
    查看>>
    Objective-C实现几何级数的总和算法 (附完整源码)
    查看>>
    Objective-C实现凯撒密码算法(附完整源码)
    查看>>
    Objective-C实现凸多边形的凸包问题算法(附完整源码)
    查看>>
    Objective-C实现分块查找算法(附完整源码)
    查看>>
    Objective-C实现分块查找算法(附完整源码)
    查看>>
    Objective-C实现分水岭算法(附完整源码)
    查看>>
    Objective-C实现分解质因数(附完整源码)
    查看>>