音频电路设计中的基本知识(-)

  模拟音频的起源在电话线路。至今很多标准里的一些数据,比如600欧姆阻抗等一些参数还是从电话线路设计中遗留下来的。趁着最近设计一个语音矩阵的项目,总结了下网上一些关于音频方面的知识。

  首先明确几个DIY发烧友们老是提到的概念。之所以提这个,是因为项目里用到的音频是跟其他设备集成的。对于其他设备其电路特性无从可知,只能从指标入手。还有就是传统电话线路遗传下来的在音响领域DIY设备时通常提到的平衡与非平衡传输的问题。最后会从音频线路阻抗匹配的角度入手,介绍一些常见的Line In/Out;Mic in/Out之间的关系,以及常见的DIY烧友关心的耳机的一些指标,以及用什么样的功放才能驱动的问题。

  我们知道衡量声音的最主要的一个参数声音的响度。初中物理就学过,单位是dB。等等。。。如果我没记错,上过大学的我记得db这个单位好像是放大倍数的意思,好像是个比值?而且好像基数有的时候是10倍,有的时候是20倍。既然是个比值,这个声音的响度是怎么回事,是谁跟谁比啊?让我们回顾一下,大学书里面的db。如果没记错,这个概念主要出现在两个地方,一个地方是模电里放大电路那块,电压放大那块,包括信号与系统里面信号的幅度响应那块,也是电压,这块的公式是:

  dB = 20 * log (U1 / U2);

  另一个地方就是功放那块,功率放大那块,这块的公式是:

  dB = 10 * log (P1/ P2)。

  发现规律了吗?凡是跟功率有关系的都是20,跟压强有关系的都是10倍基数。其实这两个公式是统一的,因为欧姆定律告诉我们,P=U2/R,利用这个式子上面2个公式就统一了。这样说并不是很难理解,难理解的是我们在看一些datasheet时,一遇到很多参数单位都是db时,就容易忽略这个问题,老是犯嘀咕。

  既然这样,那我们的声音的dB又是什么呢?我们知道声音的响度其实是个功率概念。但是要记得,这个声音多么响是客观的,但是人距离声源的距离对人耳朵来说感受是不一样的,也就是说准确的将,响度是单位空间截面积上的功率。从能量的角度,响度 = 能量 / (时间*面积)=功率 / 面积。还有一个概念,大家肯定听过叫声压。声压跟响度之间的关系类似于激励跟响应的关系。准确地讲,声强(I)与声压(P)的关系为:

  I=(P^2)/(ρv) (此时P为有效值,若P为幅值,则 I=(P^2)/(2ρv) )其中ρ-介质密度,v-声速。

  由于介质密度跟声速都是常数,因此声压跟声强其实跟功率和电压的关系类似。那么这里响应的用声压(P)表示声音强度时:

  dB = 20 * log (U1 / U2);

  用声强表示时则为:

  dB = 10 * log (I1 / I2)

  等等,我记得我们说声音,都是这么说的,你说话的分贝数太高了,一个战斗机飞过接近130dB的声音。dB不是一个相对的放大倍数吗?通常情况下,当人们说到“分贝”的时候,却指的是压强。毕竟是声波的压力压迫我们的耳鼓膜来让我们分辨出声音究竟有多“响”的。所以,我们通常所谈到的分贝应该是dBSPL(Sound Pressure Levels)。我们说的dB正是以声压作为单位时,是跟谁相比放大的呢?这个数就是0.00002 Pa,即我们平时说的

  dB=20 * log (P1 / 0.00002Pa)

  我们能忍受的最强的声压大约是20帕,你试试用分贝表示一下看看?应该如下:20 * log (20 Pa / .00002 Pa) = 120 dB。怎样,还记得物理课说过的吧?超过120分贝的声音,我们就无法忍受了,这个值就是这么算的。明白了这个问题,请试着回答以下几个问题:

  1.20dB和60dB究竟差多少?(不要回答我60-20=40(dB),我抽你呀!你告诉我40dB究竟是多响,难道用手指在峰值表上测量距离吗?)
  2.72dB和66dB的声音合在一起有多响?(停!看你的口型我就知道——138dB,对不对?拜托~这可相当于一架喷气式战斗机从你身边一米处远的距离飞过啊!Areyounuts?而我说的两个数值相当于一个鼓手和一个吉他手在一起演奏而已,你认为一个乐队演出就像空军基地里飞战斗机那么吵么?)
  3.经常听人说一些设备的各种指标,-10dBV和+4dBu,这个很熟悉吧?他们说,+4dBu的设备属于“专业级”,-10dBV属于“民用级”,你知道这是为什么吗?
  4. 为什么有些文章说数字设备不会超过0dB,而模拟设备就可以超过呢?
  5. 16bit数字音频的动态范围是多少?24bit呢?如果让你说出21bit的,你能说出来吗?
  6. 100瓦的吉他音箱能比50瓦的吉他音箱响多少?

  什么,还有这么多概念!不急,这些就都简单了。

  dBu, dBv, dBV,dBm, dBVU, dBFS这些东东的意思到底指什么呢。不过有了以上的基础,你明白这些小东西只是时间的问题,让我们先从原理开始:
  我们已经明白了分贝的含义,应当特别注意的是:分贝表示的是两个相同类型的数据之间的比(类型要相同,这一点很重要,你不能拿瓦特和伏特直接进行比较)。在这两个数据里,其中的一个我们把它叫做“参照数”,我们即是通过把测量到的数值和参照数代入公式进行计算来得到相应的分贝值的。比如之前我们已经使用过声压作为测量单位,那是我们选取的参照数是0.00002帕斯卡。我们最后得到的分贝值,我们称之为"dBSPL"。也就是说,dB后面不同的字母指示的就是我们用什么作为测量单位来得到这个分贝值的。用声压,那么就是SPL(SoundPressure Levels)。这样解释应该非常明确吧?如果你看懂了,那么我就来一个一个地解释其他和dB有关的单位。
  dBm 和 dBVU
  我们已经讨论过用功率测量得到分贝值的方法,那时我们说的是声音的功率,单位是瓦特。不过我们知道,除了声音之外,还有很多现象可以产生功率的,比如说电。
很久以前,在发光二极管和液晶显示屏尚未诞生的“古代”,工程师们依赖一种叫做VU表的设备来完成他们的工作。VU表看起来就像一个驾驶室里的速度表,用一个指针以顺时针方向指示通过此题的电流增量。VU是"VolumeUnit"的简写,意即:音量计量单位。
  VU表的问题是每一个VU表都不一样!直到上世纪30年代末,一群工程师们坐在一起决定统一一下VU表的计量规范,这个问题才得以解决。他们确定的标准是:当电流的功率为1毫瓦(1mW),VU表指示0dB。换句话说:0dBm =0dBVU。dB后面的m就代表毫瓦。dBm也是以功率为单位测量的,参照数是1mW。
  dBm = 10 * log (功率 / 1mW)
  这样,我们就可以很容易得用dBm来表示电流功率的变化了。还记得么?当测量值和参照物相等的时候,dB值总是为0吗?所以了:
  10 * log (1mW / 1mW) = 10 * log (1) = 0 dBm
  当VU表的指针指向+3dBm的时候,功率增加了一倍,怎么算的?这样:
  10 * log (2mW / 1mW) = 10 * log (2) = 3 dBm ----我说过了,至少你要准备一个科学计算器,对数是不好心算的。
  那要是指向-6dBm呢?
  10 * log (0.25mW / 1mW) = 10 * log (0.25) = -6 dBm
  dBu(也叫做dBv)和dBV
  再回忆一下高中物理吧。功率(P)还可以用电压(V)和电阻(R)之间的关系来表示:
  P = V^ / R ---- 电阻的单位是欧姆(Ω)
  刚才讨论dBm的时候,参照数是1mW。这个标准是在上个世纪三十年代设立的。在那个时候,所有音频设备的输入阻抗都是600欧姆,磁带录音机,调音台,前置功率放大器……只要有插头,那么从火线到接地之间的电阻就是600欧姆。
  那么,当电阻为600欧姆的时候,需要多大的电压才能产生1mW的功率呢?用刚才的公式计算一下:
  P = V^ / R
  0.001 W = V^ / 600 Ω[/B]
  V2 = 0.001 W * 600 Ω
  V = sqrt (0.001 W * 600 Ω) ----sqrt是开平方,我不知道怎么打这个符号。
  V = 0.775 V
  答案是0.775伏特。那么,当所有的设备的输入阻抗还是600欧姆的那个年代,计算dBu时所用到的参照数就是0.775V,也就是说,dBu就是以电压为测量单位是计算出的分贝值。不过我们又注意到,刚才的公式里电压是平方数的哦。根据前面的经验,我们知道怎么处理这个问题:
  dBu = 20 * log (被测电压 / 0.775 V)
  如果你很仔细的话,大概你会觉得奇怪:为什么是dBu而不是dBv呢?其实呀,很早以前人们是直接用dBv来表示的,只不过后来人们发现dBv和dBV太容易让人混淆了,于是就用小写字母"u"来代替小写字母"v"了。如果你还能看到dBv,那么它的意思就是我们今天讲到的dBu——除非写dBv的人搞不清楚他到底想说什么!

  很长一段时间以来,人们所用到的音频设备都是输入阻抗为600欧姆的,到了今天我们才会遇见一些更高阻抗的设备,比如说10000Ω。电阻越高,电路耗费的功率就越低。(根据上面的公式,我们知道功率和电阻成反比)还记得dBu使用的参照数是0.775V吧?很多工程师认为这个数字实在是太麻烦了,但因为那时候所有的设备都是固定的输入阻抗,因此使用0.775V作为参照数也就顺理成章了。设备不改进,这个参照数也就不能变,但是为了使用方便,一个新的参照数还是很快发展了出来——顺带产生了新的分贝单位dBV。这个参照数是1V:
  dBV = 20 * log (被测电压 / 1V)
  其实dBV和dBu非常相似,只是参照数不同罢了。
  现在顺便说说所谓“专业级”和“用户级”设备之间的差别。你可能早就知道了,专业级设备是+4dBu而用户级设备是-10dBV,当然这其实是很荒谬的,哈哈。我们刚才已经看到了dBu和dBV都是通过比较电压来计算分贝值的,除了参照数不同,它们没有任何区别。所谓专业级,是指这些设备的使用者多是一些“大叔”(因为标准早嘛,使用的人当然大多数“资格”也都比较老)。事实上,仅凭这两个参数就断定设备的“级别”未免太过武断了,在任何场合这两种规格的设备都可以很好地完成工作要求。我觉得吧,在这方面我们应当多多发挥人的主观能动性。设备之间的硬性差别我们心中有数就可以了,但如何使用我们掌握的知识让你手中的设备发挥最大的潜能才是我们应该追求的境界。设备不好是个钱的问题,有了好设备做不好音乐那就是人的问题了,钱的问题可以解决,人的问题不好解决呀!在我们海峡对面有个小岛,上面的人虽然不多,但是搞音乐的却不少,我们承认他们的音乐发展得不错,但并代表他们搞音乐的人水平就都很高,在他们那里有个鸟论坛,上面就有些鸟人大言不惭的就“专业”和“用户”设备的差别大放狗——那个什么气!让我这个海峡另外一边的菜鸟(顺便说一句,那里有很多人都认为海峡这边的人比他们差的远了)都有些看不下去了……本是同根生啊~但谁让现在是这么个形势呢?为了让海峡这边的同志不要也像他们一样看起来“专业”,其实很“操蛋”,所以我才写下这一段话——应该说,促成我写这篇文章,有很大的原因也是为了这个!
  好了好了,话题扯远了,我们来看看+4dBu和-10dBV到底有什么区别吧:
  + 4 dBu = 20 * log (被测电压 / 0.775 V)
  被测电压 = 1.228 V
  - 10 dBV = 20 * log (被测电压 / 1 V)
  被测电压 = 0.3162 V
  20 * log (1.228 V / 0.3162 V) = 11.79 dB
      如果你有这两种设备,你可以做一个检测:连接-10dBV的输出到+4dBu的输入,然后读一下+4dBU的VU表,是不是11.79dBVU?
  dBFS
    最后我们来看看和我们联系最密切的dBFS。dBFS的全称是"Decibels FullScale"(全分贝刻度)——是一种为数字音频设备创立的分贝值表示方法。
      这个家伙和其他几个弟兄不太一样了,它的参照数不是最小的一个,也不是中间的某一个,而是最大的一个!也就是说"0dBFS"是数字设备能够到达的最高响度水平。此外所有的值都会小于这个数值——都是负数。这就是为什么我们在电脑上看到的峰值表的最高刻度都是"0",并且指针永远不会读出更高的数字。
  但是,为什么会这样呢?要解释这个问题,我们要简单说一下数字音频的存储原理。我们用16bit的数字音频为例:"16bit"的意思是,采样信号以16位二进制数字来存储。二进制数字就两个:"0"和"1"。所以,最大的值就是11111111 1111 1111(二进制,换算成十进制是65536),因此,计算dBFS的公式就是:
  dBFS = 20 * log (采样信号 / 1111 1111 11111111)
  这样就很容易解释为什么不能超过"0"了,因为dBFS的参照数是最大值,所以:
  20 * log (1111 1111 1111 1111 / 1111 1111 1111 1111) = 0dBFS
  那么最小的呢?除了0之外,16位二进制最小的数字是:0000 0000 0000 0001,那么:
  20 * log (0000 0000 0000 0001 / 1111 1111 1111 1111) = -96dBFS
  知道为什么你看见的峰值表都是从0 dB到-96dB了吧?接下来,你可以自己算出24bit,32bit数字音频的动态范围了,我告诉你一个,24bit数字音频的动态范围是144dB。还是你自己试试吧?(别忘了要先把二进制转换成十进制,我可不会用二进制算对数!^^)

  这篇文章的大部分参考了下文:讲的比较透彻。

  http://blog.csdn.net/hj33053252/article/details/7660405

时间: 2024-10-12 16:11:58

音频电路设计中的基本知识(-)的相关文章

复习Oracle中的一点知识

Oracle 10g Oracle是为网格计算而设计的 10g中的g就是指grid computing Oracle将数据存储在文件中,保存不同信息的文件(数据文件,控制文件,日志文件)就组成了数据库的物理结构 逻辑结构:schema, extent, data block, segment Schema 数据库对象的集合,创建用户时会生成一个与用户同名的Schema,Schema 直接处理data的逻辑结构(table, view, index, clusters) View -- 虚拟的,可

转: 音频开发中常用到的概念

在音频开发中,下面的这几个概念经常会遇到. (1) 采样率(samplerate) 采样率,注意,目前44100Hz是唯一可以保证兼容所有Android手机的采样率. 采样就是把模拟信号数字化的过程,不仅仅是音频需要采样,所有的模拟信号都需要通过采样转换为可以用0101来表示的数字信号,示意图如下所示: 蓝色代表模拟音频信号,红色的点代表采样得到的量化数值. 采样频率越高,红色的间隔就越密集,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高. 根据奈奎斯特理论,采样频率只要不低于音频信

电路设计中如何选择合适的电阻

电阻是电路设计中最普通的元器件之一.在电路设计中,我们主要利用电阻来分压和限流,且它在所有地方都满足欧姆定律(常温).选择电阻时,通常考虑3个因素:        1.电阻的阻值,单位为欧姆:        2.最大功率,单位为瓦特:        3.阻值的精度,通常以%的形式表示.       在电路设计中,我们一般先利用欧姆定律计算出器件的阻值和误差,再根据实际值评估器件功率的消耗. 1.阻值的计算        计算电阻阻值非常多样的,具体情况,还需要具体分析.下面以一个具体的实例来进行

[转载]JavaEE学习篇之——网络传输数据中的密码学知识以及Tomcat中配置数字证书EE

原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/21716557 今天是学习JavaWeb的第二天,我们来了解什么呢?就了解一下Tomcat中配置数字证书的相关内容,但是在说这部分内容的时候,我们貌似得先说一下数字证书的相关概念,那说到数字证书的时候我们还得了解一些密码学的相关知识,这就是连锁反应吗?好吧不多说了,先来看一下密码学中关于网络中数据传输的知识. 首先来了解一下网络上传输数据的加密方式: 第一种是对称加密:就是

[python]学习Django中的python知识拾遗

1.使用正则表达式进行URL匹配 urlpatterns = patterns('', # ... (r'^time/plus/\d+/$', hours_ahead), # ... ) (1)使用r代表字符串是原始字符串,表示python不会对立面的反斜杠\转义符进行处理,使用正则表达式一般使用原始字符串. (2)使用\d+表示匹配1个或者多个数字,如果限定只能使用两个数字,则\d{1,2}. (3)如果要把正则表达式的某个数作为参数,则用小括号包起来,如(r'^time/plus/(\d{1

机器学习中的基础知识(入门上篇)

前面我们已经给大家讲述了很多有关机器学习的概念,这些概念都是十分重要的,我们如果要学习人工智能的话就需要重视这些知识.在这篇文章我们接着给大家介绍机器学习中的基础知识,希望这篇文章能够给大家带来帮助. (1)正则化就是对模型复杂度的惩罚.正则化帮助防止过拟合.正则化包括不同种类:L1 正则化.L2 正则化.dropout正则化. (2)正则化率就是一种标量级,用lambda来表示,指正则函数的相对重要性. (3)表征就是将数据映射到有用特征的过程. (4)根目录就是指定放置 TensorFlow

机器学习中的基础知识(深入上篇)

机器学习的知识有很多,我们在前面的文章中讲述的都是相对比较简单的知识,想必那些已经让大家头疼不已吧?在这篇文章中我们给大家介绍一下机器学习中深层次的知识.大家跟着小编学起来吧. (1)层就是神经网络中的神经元序列,可以处理输入特征序列或神经元的输出.也是 TensorFlow 的一种抽象化概念.层是将张量和配置选项作为输入.输出其他张量的 Python 函数.一旦必要的张量出现,用户就可以通过模型函数将结果转换成估计器. (2)学习率就是通过梯度下降训练模型时使用的一个标量.每次迭代中,梯度下降

活到老学到老:iOS开发中的基础知识(一)

本文参考 标哥的博客:宝库iOS开发笔试题 进行学习整理.与其说是看面试题,不如说是对自己知识的巩固.工欲善其事必先利其器,基础知识不牢固可能会导致编程中的一些注意不到的问题.总之一句话:活到老,学到老. 1.数组中的元素去重问题. //重复元素 NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"1"

计算机领域中的豆知识

豆知识,出自日语まめちしき.表示一些边边角角的,一般不引人注意的小知识.类似于中文中的冷知识. 为什么(Linux下)C语言编译后的可执行文件的默认名称是a.out? 在Linux中,使用gcc编译C源码,在不使用-o选项指定名称的情况下,默认生成的可执行文件的名称是a.out. 很多人可能认为a是字母表的第一个字母,代表英文字母表中的a,或希腊字母表中的α.其实所谓的a.out的含义是assembler output,即汇编器输出. 了解编译过程的我们应该大都知道,汇编器的输出是目标文件(.o