免责声明:我不是信号处理专家.
我正在编写一个函数,该函数采用一维数组并对其执行快速傅立叶变换.运作方式如下:
I'm writing a function that takes a 1D array and performs Fast Fourier Transform on it. Here's how it works:
我在执行第3步时遇到问题.如果我省略第3步,并对函数调用的结果执行逆FFT,则会得到初始填充数组,这意味着该函数成功执行了第1步和第2步.
I'm having trouble with step 3. If I omit step 3 and perform inverse FFT on the result of the function call, I get the initial padded array which means the function successfully performs steps 1 and 2.
我尝试通过使用线性插值进行下采样来实现第3步,但是当我使用MatLab对最终结果执行傅立叶逆变换时,得到的结果不等于原始数组.我需要使用的编程语言不是 MatLab,我仅使用MatLab来验证结果的正确性.
I tried implementing step 3 by downsampling using linear interpolation, but when I perform inverse fourier transform on the final result using MatLab, the results I got were not equivalent to the original array. The programming language I need to use is not MatLab, I'm only using MatLab to verify correctness of the results.
我可以使用哪些技术执行第3步,同时在进行逆FFT后仍然能够取回原始的未填充数组?
推荐答案使用循环Sinc核插值计算向下采样的点.对于新的较低的下采样采样率,Sinc宽度将为低通滤波器的截止宽度,该截止值适合于抗混叠.
Use circular Sinc kernel interpolation to compute the down sampled points. The Sinc width will that of a low-pass filter with a cut-off appropriate to anti-alias for the new lower down-sampled sample rate.
更多推荐
如何对傅立叶复数值降采样?
发布评论