現在、cortex m3 PSoC 5lp チップで ARM CMSIS DSP ライブラリを使用しようとしています。
一部の関数を使用していくつかの問題に遭遇し、関数arm_cfft_q15
(または関数のいずれかarm_cfft_***
) の使用について質問があります。
私が持っていると言う
q15_t ADC_samples[1024];
q15_t MAG_of_fft[1024];
そして私は走る
arm_cfft_q15(1024pt_fft, ADC_samples, sample_length);
これにより、「その場で」変換が行われます。そのため、FFT は実数値と虚数値の両方を返すため、実際には長さ 512 の fft しか返せないのでしょうか、それとも 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 pt の FFT を取得するには、配列がデータの 2 倍の長さでなければならないことを意味しますか? そして、FFTの長さが1024であることを伝えることで、その2048配列を使用してFFTの大きさを計算できますか?
これらの関数を適切に解釈する方法と、予想されるFFTの長さを誰かが説明してくれますか?