【发布时间】:2017-09-04 15:30:07
【问题描述】:
免责声明:我不是信号处理专家。
我正在编写一个函数,该函数采用一维数组并对其执行快速傅立叶变换。以下是它的工作原理:
- 如果数组的大小不是 2 的幂,则在末尾用 0 填充,使其大小变为 2 的幂。
- 对填充数组执行 FFT 并将结果存储在数组
x中。 - 对复数数组
x进行下采样,以匹配原始未填充数组的长度。 - 返回
x。
第 3 步有问题。如果我省略第 3 步并对函数调用的结果执行逆 FFT,我会得到初始填充数组,这意味着函数成功执行了第 1 步和第 2 步。
我尝试通过使用线性插值进行下采样来实现步骤 3,但是当我使用 MatLab 对最终结果执行傅里叶逆变换时,我得到的结果与原始数组不等价。我需要使用的编程语言不是 MatLab,我只是使用MatLab来验证结果的正确性。
我可以使用哪些技术来执行第 3 步,同时仍然能够在逆 FFT 后取回原始的未填充数组?
【问题讨论】:
标签: signal-processing fft time-frequency