为什么有SampleRate和比特深度SampleRate? 采样率Bit depth是位深度吗? 在任何APP应用中,这两个关于数字音频的参数都是不可避免的。 网上答疑需要知道如何设置这两个参数,在什么样的使用场景中使用什么采样率和比特深度最好,但要进行数据处理,必须如何设置这两个值,特殊情况下的处理速度才能达到
简单来说,SampleRate是从模拟信号转换为数字信号时的采样频率。 根据hcdej采样定理,采样频率通常需要是采样信号最高频率的两倍。 否则会发生折返,不能从数字信号完全恢复为原来的模拟信号。 下图是从以不同采样率收集到的数字信号中恢复的模拟信号,可以比较直观地进行比较。
常用SampleRate为44.1KHz、48KHz、96KHz、176.4KHZ和192KHz。 通常,44.1KHz是音频的最低处理采样率。 这是因为人耳可听频率范围为20-22k Hz [1]
为了满足人们的听力,44.1KHz的数字音频可以恢复为带宽22KHz的模拟信号。 (如果和我一样只处理低频音频信号,44.1KHz的采样率就足够了。
在什么情况下需要使用比48KHz以上的采样率更高的采样率,就是可以恢复更高频带的模拟信号。 人们追求的HiFI道路越远,就越追求音质的损失。 也就是说,大多数听不见的声音不会被HiFI的理念抛弃。
处理信号时,较高的采样率可能会增加滤波和下变频操作的带宽,从而失去可听频带(通常影响不大,除非录制乐器的泛音和白噪声等)。
在48KHz下进行采样率转换时非常有用。 例如,如果将96KHz的主磁带转换为48KHz的发行记录,对转换系统的要求就不是很高。 将96KHz的母带转换为44.1KHz的发行记录会产生非整数关系,需要非常高的公倍数转换系数。 因此,目前48KHz的唱片非常流行。 44.1KHz是旧的CD标准,因此非常流行。
进行算法处理时,优先44.1KHz或48KHz就足够了。 如果需要调音或环绕声效果,建议使用96KHz。 为什么不选择太大的采样频率呢? 采样率越高,文件也越大,每帧的数据也越多。 在制作算法和效果时,注重实时性,处理速度越快实时性越高。 如果不是母带操作或实时处理,则可以多次播放的处理可以提高采样率。
位深度与计算机位的深度相同,通常有16,24,32位。
最高位深度通常限制到硬件,因为模拟信号是连续波且具有无限可能的振幅值,但是数字过程需要将振幅变化到一个数字量,从而增加位深度可以允许系统表达更细微的振幅变化。 如果输入信号为1(V ),则16位可以测量1/65536=1.52587890625X10e-5(V )的变化,如果信号的变化小于该值,则不能测量。
可基于测量信号的动态范围大小和所需信号的最小测量变化值确定比特深度选择。
在量化过程中,表示振幅的数据的最后一位舍入为0或1,从而产生量化噪声。 通常称为背景噪声(底部噪声),位深度越高,底部噪声的振幅越低。
但是,增加位深度会减慢ADC转换的速度。 通常,在增加位深度的同时,需要增大数据缓冲区。 否则,来不及转换,下一个数据就会到来,或者发生声音中断。 此外,系统的实时性也会降低。 如果不需要,16位处理就足够了。 (对于主动降噪的我来说,12位需要迭代,因此每帧每个sample数组只有12个数据处理速度,具有很好的实时性。
结论根据不同的需求,自己需要的采样率和位深度是正确的方式,不能一味提高采样率和位深度。 未来的趋势是朝着更高的比特深度和更高的采样率发展。 随着数字信号处理器(DSP )和FPGA的速度越来越快,采样和计算延迟大大改善,处理精度提高。
在本人处理噪声方面,使用44.1KHz和12bit深度是制作Matlab Realtime的较好参数,以后移植到VST或FPGA时可能提高到48Khz和12bit深度。
版权所有2020 byrichardyang.all权限保留。
作为参考,严禁转载。 谢谢你。