java 退出信号_Java中的信号处理库Signal processing library?[关闭]

我的第一个建议是不要用Java来实现DSP。我的第二个建议是自己用Java编写简单的DSP实现。

为什么不使用Java:

在过去的10多年里,我有很多编写DSP代码的经验。。。而且几乎没有一个DSP代码是用Java编写的。。。所以,当我犹豫是否读到有人想用Java实现DSP时,请原谅我。

如果你打算

非平凡数字信号处理器

那你就不应该用Java了。DSP在Java中实现如此痛苦的原因是,所有好的DSP实现都使用低级内存管理技巧、指针(大量指针)、大型原始数据数组等。

为什么使用Java:

如果你在做

简单的数字信号处理器

你自己的Java实现就可以实现了。像PSD和滤波这样简单的DSP都相对容易实现(容易实现,但不会很快),因为在线有很多实现示例和有很好文档记录的理论。

在我的例子中,我曾经用Java实现过一个PSD函数,因为我是在Java GUI中绘制PSD的,所以最简单的方法就是在Java中计算PSD的性能,然后绘制它。

如何实现PSD:

PSD通常只是以dB为单位显示的FFT的大小。学术界、商业界和开放源码的许多例子都说明了如何计算以dB表示的FFT的幅度。例如

Apache has a Java implementation that gives you the FFT

输出,然后你只需要转换成幅度和分贝。FFT之后的任何内容都应该根据您的需要/需要进行定制。

如何实现低通、带通滤波:

在我看来,最简单的实现(不是最有效的计算)是使用FIR滤波器和进行时域卷积。

卷积很容易实现,它是两个嵌套的for循环,网络上有数以百万计的示例代码。

如果你对滤波器的设计一无所知,那么FIR滤波器将是个棘手的部分。最简单的方法是使用Matlab生成FIR滤波器,然后将系数复制到java中。我建议使用Matlab中的firpmord()和firpm()。在阻带内衰减-30至-50分贝,在通带内波动3分贝。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值