我目前正在嘗試在我的cortex m3 PSoC 5lp芯片上使用ARM CMSIS DSP庫。
我遇到了一些使用某些功能的問題,我對使用函數arm_cfft_q15
(或任何arm_cfft_***
函數)有疑問。ARM CMSIS DSP fft功能的正確FFT長度
說我有
q15_t ADC_samples[1024];
q15_t MAG_of_fft[1024];
,我跑
arm_cfft_q15(1024pt_fft, ADC_samples, sample_length);
這樣做的變換 '到位'。現在正因爲如此,由於FFT返回了實數值和虛數值,實際上它只能返回 長度爲fft的512或1024個FFT採樣中的512個? 獲得FFT後,我做
arm_cmplx_mag_q15(ADC_samples, MAG_of_fft, fftlength);
其中fftlength
是1024
這將返回MAG_of_fft
,當我繪製它,它確實似乎是,我期待看到形狀,但我不因爲我不知道FFT的確切時間,所以知道如何解釋結果。我告訴它我正在做一個1024pt FFT,但它似乎只返回一個512pt FFT,或者只有一個1024pt FFT的一半,其中一個或另一個。
那麼我是否正確?這意味着ADC_samples
數組必須是其中數據的兩倍,才能獲得1024點FFT?然後我可以通過告訴它FFT的長度是1024來計算使用該2048陣列的FFT的大小?
有人可以向我解釋如何正確解釋這些函數和我應該期望什麼長度的FFT?
請注意,我故意避免通過過多地使用'arm_rfft'來避免複雜化,這似乎不是您問題的對象(如果需要,我可以在單獨的問題中詳細說明)。 – SleuthEye
好的,我認爲這清除了我對數組輸入函數大小的困惑。我還會研究arm_rfft家族,如果我有任何疑問,我肯定會問他們。謝謝。 – scarlso9