序言:
我正在为我的小型潜艇游戏设计一个声音模型。模型在服务器上运行,我想向客户展示来自他的水听器的单通道 wav 流(20kHz 离散化就足够了,我的目标是 20Hz-10kHz 频段)。我希望这个信号是相对现实的。具体来说,我需要考虑到水消散高频的速度要快得多这一事实。
声音模型:
我计划从它的强度谱中预生成(在一些 RNG 和 IFFT 的帮助下)原始螺旋桨时域声音样本。然后我计划用换档轴转速 x 螺旋桨叶片计数正弦波对其进行幅度调制,以获得螺旋桨节拍。此时我需要在玩家的传感器上实现该信号。它可能涉及两个过滤器:
- 一些过滤器(即有问题的过滤器)将考虑水耗散信号能量。
- 带通滤波器,对应于这个特定传感器的灵敏度带。
- 简单的幅度乘法以考虑范围、传感器方向性等。
根据 RJ Urik“水下声音原理”,在距目标r米的距离上,这种声音的频率 bin f中的频带电平 (dB)可以使用以下公式近似:
[1]:ResultBL = SourceBL - 10 * log10(r * r) - r * F(f)
或没有波前扩展项(这是微不足道的):
[2]:ResultBL = SourceBL - r * F(f)
其中 F(f) 是频率的一些平滑单调函数(具有多个平方频率和常数的大自由基)。
问题(所有关于这个过滤器,或缺乏):
- 是否可以为给定范围r设计一个时域数字滤波器,实现\近似信号失真 [2]?
- 你会推荐什么类型的过滤器?问题不是实时的,但计算应该很快。我不限于因果过滤器,所以我感觉到非因果 IIR 之类的东西?
- 什么算法适用于这个问题。
- 如果这种算法涉及传递函数,我应该如何在其中转换\近似 F(f) 项?
- 会很快吗?哪些因素会影响它的速度?
- 这种滤波器在整个频段(20Hz-10kHz)都能正常工作吗?
- 这种滤波器在强度水平变化较大的情况下是否能很好地工作,例如非常弱和非常强的信号?
- 这种合成计算成本高吗?
谢谢你。