为什么会有SampleRate和Bit depth
SampleRate就是采样率
Bit depth就是位深度
不管在什么应用场合,只要是关于数字音频的这两个参数必然跑不了,网上的问答多为如何设置这两个参数,在何种使用场景使用哪种采样率和位深度最好,但对做数据处理的必须知道这两个值怎么设定,才能在特殊场合提高处理速度牺牲精度或是提高精度牺牲处理速度。
SampleRate
简单来说,SampleRate就是模拟信号转为数字信号时的采样频率,根据奈奎斯特采样定理可知,通常采样频率需要为采集信号最高频率的两倍,否则会发生混叠,不能从数字信号完整的恢复为原始的模拟信号。下图为根据不同采样率采集的数字信号恢复的模拟信号,可以较为直观的做出对比。
常用标准SampleRate有44.1KHz,48KHz,96KHz,176.4KHZ,192KHz。通常来讲,44.1KHz为音频最低处理采样率,因为人耳的可听频率范围为20-22Khz[1]
为了满足人们的听力,44.1KHz的数字音频可以恢复为带宽为22KHz的模拟信号(如果你和我一样仅仅处理较低频率的音频信号,44.1KHz的采样率完全足够)。
什么情况下需要使用48KHz或更高的采样率
更高的采样率意味着可以恢复更高带宽的模拟信号,在人们追求的HiFI的路上越走越远,追求音质的无损,也就是说很多即使听不见的声音,根据HiFI的理念,也不能舍弃。
在处理信号的时候,较高的采样率可以有更多的带宽空间来进行滤波操作或者降调操作,从而可以会损失到可听频带(如果不是录制乐器泛音或者白噪声等,通常来说不会有太大影响)。 在48KHz进行采样率转换时,会提供极大的方便,譬如将96KHz的母带转为48KHz的发行唱片,对转换系统的要求就没有那么高。如果将96KHz的母带转为44.1KHz的发行唱片,为非整数关系,需要非常高的公倍数转换因数,这是为何目前48KHz的唱片非常流行。44.1KHz由于是旧的CD标准,所以也非常的流行。 在做算法处理的时候,首选44.1KHz或48KHz就足以了,如果需要做调音或是环绕效果的,建议96KHz。为什么不选太大的采样频率,越高的采样率包含的信息越多,文件也就越大,每一帧中的数据也就越多,如果是做算法或效果,讲究实时性,处理的速度越快实时性越好。母带操作或不是实时处理的时候,可以无数次回放的处理可以提高采样率。
Bit depth
这个位深度与计算机中的位是一个东西,通常有16,24,32位。
最高位深度通常受限于硬件,模拟信号是连续波,具有无限数量的可能振幅值,但要在数字处理中,我们需要将幅度变化为一个数字量,更高的位深度使得系统可以表达更细致的幅度变化。假设输入信号为1(V),那么16位可以测量1/65536=1.52587890625X10e-5(V)的变化,当信号变化小于这个值时,就无法测量。
位深选择
可以根据测量信号的动态范围大小,以及所需要的信号最小测量变化值来确定位深选择。 在量化过程中,表示幅度的数据最后一位会被舍入0或1,产生量化噪声,通常称为本底噪声(底噪:不放音乐时的沙沙声),更高的位深度会降低底噪幅值。 但更高的位深度会减慢ADC转换的速率,通常提升位深度的同时,需要增大数据缓冲区,否则会产生转换不及时,下一个数据以及到来(断音的问题)。同时也会减弱系统的实时性,如果非必要,16Bit处理已经足够,(对我做主动降噪的来说,12bit是一个比较合适的位深度,因为需要迭代,一帧中每个sample数组只有12个数据处理速度更快,实时性更好)。
结论
根据不同的需求确定,自己需要的采样率和位深度才是正确的方式,不能一味的提高速率或位深度。未来发展的趋势是向着更高的位深度和更高的采样率发展,随着数字信号处理器(DSP)和FPGA的速度越来越快,由于采样和计算产生的延时将极大的改善从而提高处理的精度。 就本人处理噪声来讲,使用44.1KHz和12bit位深度是做Matlab Realtime比较合适的一个参数,可能后面移植到VST或者是FPGA上时可以提高到48Khz和16位深度。
Copyright © 2020 by RichardYang. All rights reserved.
仅供参考,严禁转载,感谢。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181100.html原文链接:https://javaforall.cn