#define inline _inline
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "libavcodec/fft.h"
int main()
{
float a[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
FFTComplex *tab;
FFTContext s;
int i;
int do_inverse = 0;
int fft_nbits = 3, fft_size;
fft_size = 1 << fft_nbits;
tab = av_malloc_array(fft_size, sizeof(FFTComplex));
if (!(tab))
goto cleanup;
ff_fft_init(&s, fft_nbits, do_inverse);
for (i = 0; i < fft_size; i++) {
tab[i].re = a[i];
tab[i].im = 0;
}
s.fft_permute(&s, tab);
s.fft_calc(&s, tab);
ff_fft_end(&s);
for (i = 0; i < fft_size; i++)
{
printf("%f %fi\n", tab[i].re, tab[i].im);
}
cleanup:
av_free(tab);
return 0;
}
ffmpeg做fft
最新推荐文章于 2023-02-22 13:37:47 发布