Я пытаюсь реализовать поцелуй FFT реальные вычисления.Как использовать настоящий kiss_fft для аудиоанализатора?
Как я уверен, все знают, что я не первый человек, спрашивающий о поцелуе FFT здесь, а не о kiss_fftr. Я довольно новичок в FFT, но получил большинство основ, и теперь я пытаюсь реализовать его в анализаторе аудиочастот в ATxmega192A3.
Вот базовый код, который я скопировал и модифицировал, пытаясь ввести 512 8-битных АЦП-образцов в БПФ, чтобы получить 256 выходов выходной частоты.
int size = 512;
int isinverse = 1;
kiss_fft_scalar zero;
memset(&zero,0,sizeof(zero));
kiss_fft_cpx fft_in[size];
kiss_fft_cpx fft_out[size];
kiss_fftr_cfg fft = kiss_fftr_alloc(size*2,0,0,0);
//load 512 samples from ADC into fft_in[].r and zero out fft_in[].i, fft_out[].i, and fft_out[].r
kiss_fftr(fft, (kiss_fft_scalar*) fft_in, fft_out);
Вот мои вопросы:
Есть ли перекрытие в мусорное ведро? Смысл, если я смотрю .. скажем, 12-гигабайтный выезд, показывающий ТОЛЬКО 12 Гц, а не округление в 12,1 Гц частично (я знаю, что звук не совсем точен, так что будут остаточные физические эффекты, вызывающие помехи)?
Мне сложно определить, как использовать kiss_fftr_cfg. Я не уверен в том, где все параметры помечены как использующие его с 8-битными int (или 16 бит, но не означает, что все мои входные образцы должны быть 16 бит? Все в предыдущем коде до и включая Объявление cfg Я не понимаю за пределами первых двух объявлений int, которые он сделал, и не уверен, почему он использовал memset вместо того, чтобы позволить kiss_fftr выделять пространство. Где я могу найти дополнительную информацию? Я просмотрел большую часть включенных файлы с kiss_fft, и, кажется, не найти много полезной информации рытье через код за счет часов и часов.
Пожалуйста, прочтите справку-> тур, особенно часть о «no chit-chat» – Anthon