目前项目中需要对一个3.8KHz的波形进行FFT,我的采样频率是500KHz,FFT size是512,则每个bin对应500000/512=976.5625,但3800/976.625=3.8912,不知道基波频率在幅值输出数组中什么位置?貌似经过尝试在Demo中,如果输入波形频率无法整除bin之间的频率差则最终计算的RFFTmagBuff数组数据有误,不知道该如何解决这个问题?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
目前项目中需要对一个3.8KHz的波形进行FFT,我的采样频率是500KHz,FFT size是512,则每个bin对应500000/512=976.5625,但3800/976.625=3.8912,不知道基波频率在幅值输出数组中什么位置?貌似经过尝试在Demo中,如果输入波形频率无法整除bin之间的频率差则最终计算的RFFTmagBuff数组数据有误,不知道该如何解决这个问题?
bin不对应于单个频率,应该将它们视为“频率宽度(frequency width)”。 所以 bin 0 代表频率 0 ~ 976.5625 Hz,bin 1 代表从那里到976.5625 ~ 1953.125 Hz 的频率等等。 因此 3.8 kHz 的波会落入 bin 3。
您好,也就是说bin0对应数组的数值为0~976.5625Hz这个频宽内的所有谐波幅值对吗?在这种情况下是不是无法提取出某个频次的谐波幅值,只能通过数组知道某个频宽内的所有谐波幅值?
抱歉漏贴了
1、是的。 该范围内的所有频率分量都表示在 bin0 中。
2、是的。因为根据采样频率和FFT大小,这就是你的分辨率。如果要提高分辨率,请将FFT大小增加到512、1024,以此类推。