加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

音频 – 带宽波形生成

发布时间:2020-12-14 17:46:20 所属栏目:Java 来源:网络整理
导读:我正在编写一个软件合成器,需要在44.1 kHz采样时实时生成带宽,别名的免费波形.锯齿波形现在可以做到,因为我可以通过将两个锯齿波混合在一起而产生脉冲波,一个反相和相移. 到目前为止,我已经尝试了以下方法: 在启动时,以不同的频带限制频率预先计算一个周期
我正在编写一个软件合成器,需要在44.1 kHz采样时实时生成带宽,别名的免费波形.锯齿波形现在可以做到,因为我可以通过将两个锯齿波混合在一起而产生脉冲波,一个反相和相移.

到目前为止,我已经尝试了以下方法:

>在启动时,以不同的频带限制频率预先计算一个周期的完美带宽波形样本,然后播放混合在一起的两个最接近的波形样本.工作好,我猜,但不觉得很优雅.需要大量的样本,或者他们之间的“差距”将被听到.内插和混合也是CPU密集型.
>集成一串直流补偿的正弦脉冲以获得锯齿波.听起来很棒,除了波浪偏离零,如果你没有得到正确的直流补偿(我发现真的很棘手).通过向积分器增加一点泄漏可以减少直流问题,但是失去低频.

所以,我的问题是:通常的做法是什么?任何建议的解决方案必须在CPU方面效率高,因为它必须实时完成,对于许多语音一次.

解决方法

有很多方法可以接近带宽波形生成.你会像往常一样最终交易计算成本与质量.

我建议你在这里看看这个网站:

http://www.musicdsp.org/

查看档案!它充满了好材料.我刚刚搜索关键字“bandlimited”.你应该持续忙碌至少一周的时候弹出的材料.

Btw – 不知道这是你想要的,但是几年前我做了别名缩减(例如,不是真正的带限制)波形生成.我刚刚计算了最后一个和当前采样位置之间的积分.对于传统的合成波形,如果将积分间隔分割成奇异点(例如,当锯齿波的复位)时,您可以轻松实现. CPU负载低,质量可以满足我的需求.

我有相同的漂移问题,但是在积分上采用非常低的截止频率的高通消除了这种影响.真正的模拟合成器不要进入亚赫兹地区,所以你不会错过太多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读