Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅从FFT中提取高频_Android_Signal Processing_Fft - Fatal编程技术网

Android 仅从FFT中提取高频

Android 仅从FFT中提取高频,android,signal-processing,fft,Android,Signal Processing,Fft,我正在尝试做FFT和提取智能手机的高频特征。事实证明,在智能手机上对44100HZ采样数据进行完整FFT太慢了,但由于奈奎斯特定理,降低采样频率会扼杀高频信息。有没有办法在保持较高频率的同时加快FFT的速度?不清楚您是想使用FFT信息,还是只是为了实现某些滤波器 对于第一种情况,您可以对数据进行二次采样,即运行高通滤波器,然后压缩(下采样)序列。是的,会有混叠,但您仍然可以将特定频率从FFT映射回原始的更高频率 如果是过滤,那么在应用基于变换的过滤之前,过滤应该是合理的。此外,若您这样做,请确保

我正在尝试做FFT和提取智能手机的高频特征。事实证明,在智能手机上对44100HZ采样数据进行完整FFT太慢了,但由于奈奎斯特定理,降低采样频率会扼杀高频信息。有没有办法在保持较高频率的同时加快FFT的速度?

不清楚您是想使用FFT信息,还是只是为了实现某些滤波器

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


如果是过滤,那么在应用基于变换的过滤之前,过滤应该是合理的。此外,若您这样做,请确保您阅读了重叠添加和重叠保存过滤,并且不要使用“让我们进行FFT,使用“理想”响应进行乘法,然后使用IFFT”。这通常不会给出预期的结果(除非您期望传递函数随时间变化且不同于“理想值”)。

本机ARM代码中的FFT(在Android上使用NDK)应能轻松跟上大多数当前智能手机上44.1kHz的采样率,仅使用CPU的一小部分。您使用的段大小是多少?您是否在过滤器实现中使用重叠添加?对于较短的高通滤波器,您也可以直接实现卷积。即使在纯Java中,您也应该能够跟上,除非您的窗口很大。如果您希望进行滤波,请完全避免FFT,并进行时域滤波。