В настоящее время я пытаюсь использовать библиотеку ARM CMSIS DSP на моем чипе PS3 5Lp cortex m3.
Я столкнулся с некоторыми проблемами, используя некоторые функции, и у меня есть вопрос об использовании функций arm_cfft_q15
(или любой из функций arm_cfft_***
).правильная длина FFT для функции ARM CMSIS DSP fft
Скажем, у меня есть
q15_t ADC_samples[1024];
q15_t MAG_of_fft[1024];
и я бегу
arm_cfft_q15(1024pt_fft, ADC_samples, sample_length);
это делает преобразований 'на месте'. Теперь из-за этого, поскольку FFT возвращает как реальные, так и мнимые значения, он фактически сможет только вернуть fft длины 512 или это 512 из 1024 образцов FFT? После получения FFT я
arm_cmplx_mag_q15(ADC_samples, MAG_of_fft, fftlength);
fftlength
где 1024.
Это возвращает MAG_of_fft
и когда я сюжет, он действительно кажется, форму, что я ожидал увидеть, но я не точно знаю, как интерпретировать результаты, поскольку я не знаю, как долго мой БПФ точно. Я говорю, что я делаю 1024-битный FFT, но похоже, что он возвращает 512FT FFT или только половину 1024-битного FFT, того или другого.
Так я получаю это право? Это означает, что массив ADC_samples
должен быть в два раза длиннее данных в нем, чтобы я мог получить БПФ 1024 pt? и затем я могу рассчитать величину БПФ, используя этот массив 2048, указав, что длина БПФ равна 1024?
Может кто-нибудь объяснить мне, как правильно интерпретировать эти функции и какую длину БПФ я должен ожидать?
Обратите внимание, что я намеренно избегал комплексирования ответа, слишком много вливаясь в 'arm_rfft', который, кажется, не является объектом вашего вопроса (я мог бы разработать отдельный вопрос, если это необходимо). – SleuthEye
Хорошо, я думаю, что это очищает мое замешательство в отношении размера ввода массива в функцию. Я также буду изучать семью arm_rfft, если у меня возникнут какие-либо вопросы, я обязательно спрошу их. Спасибо. – scarlso9