2014-02-21 83 views
0

我正在尝试FFT并提取智能手机上的高频功能。对智能手机上的44100HZ采样数据执行完整的FFT后,结果太慢,但由于奈奎斯特定理,下采样会杀死高频信息。有没有办法在保持较高频率的同时加快FFT?从FFT中仅提取高频率

+1

原生ARM代码中的FFT(使用Android上的NDK)应该能够在大多数当前智能手​​机上轻松实现44.1kHz采样率,仅使用一小部分CPU。 – hotpaw2

+1

您使用的是什么分段大小?你使用重叠添加的过滤器实现?对于较短的高通滤波器,您也可以直接实现卷积。 – LutzL

+0

即使在纯Java中,除非你的窗口很大,否则你应该能够跟上。 –

回答

0

目前还不清楚您是否想要使用FFT信息,或者它只是一种实现某种滤波器的方法。

对于第一种情况,您可以对数据进行二次采样,即运行高通滤波器,然后压缩(下采样)序列。是的,会出现混叠,但您仍然可以将FFT中的特定频率映射回原始的较高频率。

如果是过滤,在应用基于变换的过滤器获得任何好处之前,过滤器应该是合理的。此外,如果你这样做,请确保你阅读了重叠叠加和重叠保存滤波,并且不要全部使用普通的“让我们把FFT,multipliy与'理想'的响应,然后IFFT”。这通常不会给出预期的结果(除非您期望具有随时间变化且与“理想”不同的传递函数)。