我想用Java编写一个使用快速傅里叶变换的程序。 程序每隔5毫秒从传感器读取数据,并且应该根据最近5秒的数据每200毫秒对数据执行一次操作。Java中的傅立叶变换的实时计算
在Java中是否有一个好的库,它提供了一种方法来进行傅立叶变换,而不必每次重新计算全部5秒?
我想用Java编写一个使用快速傅里叶变换的程序。 程序每隔5毫秒从传感器读取数据,并且应该根据最近5秒的数据每200毫秒对数据执行一次操作。Java中的傅立叶变换的实时计算
在Java中是否有一个好的库,它提供了一种方法来进行傅立叶变换,而不必每次重新计算全部5秒?
硬实时问题不是Java的正确应用。有太多的变量,如垃圾收集和线程不能保证在给定的时间间隔内发生,以使这成为可能。如果足够接近是可以接受的,它会起作用就时序而言,软件的性能还取决于您使用的操作系统和硬件以及该盒上还运行着哪些其他程序。
有一个Real Time Java,对于我上面提到的问题,它有一个特殊的API。你不表示你正在使用它。它在很多方面都比普通Java还是一个不同的动物。
如果数据是动态的,您会希望重新计算傅立叶变换。您可以让程序等待195毫秒,然后开始收集傅里叶变换的数据,以便在200毫秒后可以在最后5毫秒内完成。 – MrFox 2010-08-14 16:20:55
我不是该领域的专家,但从我对FFT的理解中,我不认为增量方法是可行的。 FFT相对较快 - 您是否知道在滑动窗口上重新计算FFT速度不够快? – mdma 2010-08-14 16:35:12
他们不是说过早优化是万恶之源;) 也许我应该先用标准的FFT实现它。 – Christian 2010-08-14 18:09:39