【原创科普】音频的模拟信号是如何转化成数字信号存在硬盘上的
物理吧
全部回复
仅看楼主
level 13
KOF2002FANS 楼主
我们都知道虽然电脑能做的事情非常多,但是从底层的原理上讲,它只会认0和1。
0和1是数字信号,是
不连续的。可是电脑的声卡却能输出音频,显卡能输出视频,而视频和音频都必须是
连续的模拟信号才能被我们听到,看到。那么计算机是如何在硬盘上储存这些模拟信号的呢?
首先我们要明确的是:硬盘上的数据的确都是0和1,不是连续的模拟信号!耳机之所以能够输出模拟的音频信号是因为声卡里面有一个DAC模块,即
数字-模拟转换器(Digital-Analog Converter)。DAC的实现方法就不在这里赘述了(因为说起来很麻烦干脆不说了-_-||)
DAC是用来放音乐的,那录音自然就是用ADC(Analog-Digital Converter)了。同样,这个模块也是在声卡上的。接下来我就简单说一说ADC是如何工作的。但在那之前,有些背景知识需要介绍一下。
2012年11月16日 22点11分 1
level 13
插~~楼
2012年11月16日 22点11分 2
level 12
为什么必须是连续的信号才能被我们听到,看到?
楼主发的帖子是一个个单独的字,是不连续的,通过屏幕显示出来是一个个像素,是不连续的,但是我们都能看到,也都能理解你的意思嘛。
2012年11月16日 22点11分 3
一般来说每个pixel的信号也是连续的。当然某些类型的接口可以直接输入数字信号,不过怎么工作的我就不知道了。。
2012年11月16日 23点11分
回复 KOF2002FANS : 这实际上是内容与形式的问题,实质上的连续你是不可能变成离散再变回来而没有任何损失的。如果仅仅是形式上的连续,内容是离散的,才可以转换无损失。
2012年11月16日 23点11分
回复@plu_icesheep :谁跟你说文字是离散的音乐就是连续的了……音乐不也可以拆分成每一个声部每一个音符吗……归根结底我觉得人脑根本就无法处理真正连续的信息[汗]
2012年11月18日 23点11分
回复 爆炸蘑菇123 : 马路上的喧嚣你能拆分成声部和音符吗?
2012年11月19日 02点11分
level 12
这个也有吐槽点,现实生活中的信号难以保证是带限的。
2012年11月16日 23点11分 5
不过严格意义上的频宽对于应用来说一般都没啥意义,so...
2012年11月16日 23点11分
回复 KOF2002FANS : 所以其实是拿现实的信号截掉人类自以为没有影响的部分,变成带限的信号以后,再去转换,而等到还原的时候其实已经和一开始的信号不一样了。只是这个不一样可能在应用上没有什么影响。但是截取的这个过程还是要强调的。
2012年11月16日 23点11分
回复 plu_icesheep :其实没有截掉啦。。实际还原信号的时候可能会有一点点Aliasing,不过Aliasing的部分的分量是如此至少以至于可以完全忽略不计
2012年11月19日 00点11分
回复 KOF2002FANS : 别人忽略不计的地方往往是我最关心的地方。
2012年11月19日 02点11分
level 13
KOF2002FANS 楼主

例子:电话系统
在实际应用中,一般会认为人声的频宽是3.5kHz左右(你一般不会在电话里尖叫吧。。)
根据采样定理,采样率f > 7kHz才能完整重现信号。实际的采样率一般是8kHz,因为重现信号的时候需要用到低通滤波器(LPF),而滤波器的传递函数曲线不可能是“矩形”,所以要留点空间出来,所以就选择了8kHz而不是正好7kHz。
2012年11月16日 23点11分 6
level 13
KOF2002FANS 楼主

2. 采样方式
上文中的采样模型其实做了个假设,那就是每个样本都是精确采样的,而实际上并非如此。如果是精确采样的话,那么可能采样到的值会有无限多个(连续信号嘛)。
在实际应用中,可能采样到的值是有限个的,这样一来采出来的样本就不是精确的了。可以说是只有更精确,没有最精确。
实际采样的时候,人们会把信号可能出现的电平分成L个级别,使得采样时每个样本的值都等于一些规定的值(像不像原子里的电子能级?)。
L越大,采样时出现的误差就越小,信号还原度的好坏主要就是由采样的误差决定的。
上图是一个L=16情况下的示意图。可以看到,信号的电平从最高到最低一共被分成了16个等级,采样的时候也就只可能采到16个值。若信号的最高电平是M,最低电平是-M,那么每个等级之间的差Δ=2M/L
一般来说,L=2^n,n为正整数。每个样本在计算机中可用一组n-bit的0和1来表示。
以L=16=2^4为例,我可以规定最低电平值用0000表示,最高电平值用1111,中间的电平值按照强度顺序排。我也可任意规定其他的表示方法。
2012年11月17日 00点11分 7
level 13
KOF2002FANS 楼主
再用一次上面的电话系统的例子:
在电话系统里,一般有L = 256 = 2^8,意味着每个样本在计算机中要用8个bit表示。
那么一秒钟之内的信息量是多少呢?前面说过电话系统的采样频率是8kHz,所以每秒会产生8000个样本。因为每个样本的信息量是8 bits,所以一秒钟的信息量就是64000个bit.
这就是我们所熟悉的“比特率”了。64000个bit一秒就是64 kilo-bit per second
即64kbps
2012年11月17日 00点11分 8
level 13
KOF2002FANS 楼主
以上这种编码连续信号的方式叫做
脉冲编码调制(Pulse Code Modulation,PCM)
例题:假如CD编码使用的是PCM,那么70分钟CD音质的音乐至少要占硬盘多少空间?
采样频率f = 44.1kHz,每秒44100个样本,每个样本占16 bits
70分钟 = 4200秒,因此所占空间就是44100*16*4200 = 2963520000 bits
换算一下就是353.28MB
因为CD里边一般都会有两个声道(所谓的stereo),所以把这个数字乘以2就大约是700MB了,也就是我们平常看到的一般CD的容量
2012年11月17日 00点11分 10
70分钟怎么来的
2012年11月17日 02点11分
回复 vq35 :其实应该是74分钟。。因为贝多芬第九交响曲就是这个长度,这个典故你可以百度一下
2012年11月17日 02点11分
为什么是乘16啊,楼主
2020年01月04日 14点01分
@Christsanity 这个16 bit是CD音质标准的一部分,当年是由飞利浦,索尼等公司的工程师制定的
2020年01月06日 01点01分
level 13
KOF2002FANS 楼主
写完了。。
(面瘫)

其实我前边不该写“ADC是如何工作”的。。因为我根本就没说电路
真正的ADC相当麻烦,不好科普。我大概也不适合写科普,可能比较适合问答。。
2012年11月17日 00点11分 11
[我错了]膜拜膜拜,学习了~
2012年11月20日 04点11分
回复 瀛涯全览 :这么说你已经学会使用频域而不是时域的方法来思考问题了?[啊!]也就是说当你看待一个物理量X的时候,你的思维方式不是X(t)而是X(f)?
2013年05月10日 07点05分
level 13
KOF2002FANS 楼主
童鞋们可以自行尝试计算CD音乐的比特率,然后百度一下自己算得对不对哦~[Yeah]
我们经常用到的MP3,WMA等格式实际上就是各种压缩算法,不过这些算法就比PCM复杂多了。。。you can see they have lower bit rates
2012年11月17日 01点11分 12
回复 KOF2002FANS :这些算法的相关的知识可以在大学的DSP课程里学到
2012年11月18日 20点11分
level 13
楼主应该说说数字信号是如何存储在硬盘上的。
2012年11月17日 01点11分 13
我讨厌电磁学
(呵呵)
2012年11月17日 01点11分
2012年11月17日 01点11分
(姚脸)
好长……
2012年11月17日 01点11分
回复 guanjinyu001 :你觉得这科普是简单了还是太难了
2012年11月17日 02点11分
level 13
KOF2002FANS 楼主
洗个澡先,看看一会儿或者明天有时间的话就加点料
2012年11月17日 03点11分 14
level 13
KOF2002FANS 楼主
经过跟以上过程相似的计算后可得:
所以
证毕
2012年11月17日 11点11分 17
量化噪声的信噪比应该和信号本身的特性有关,对于不同的信号L^2前面应该有不同的系数。不过核心的L^2没有问题,它实际上是说每增加1比特量化,则信噪比增加6dB。
2012年11月19日 03点11分
[拍砖]
2012年11月20日 04点11分
level 13
KOF2002FANS 楼主
信噪比的单位一般为分贝(dB)
比如说某音箱的信噪比为80dB,即输出信号功率是噪音功率的10^8倍,输出信号标准差则是噪音标准差的10^4倍,信噪比数值越高,噪音越小。
这个结论也得到了SNR = L^2的支持,L越大,SNR越大,即回放质量越好。
2012年11月17日 11点11分 18
level 3
科普帝
2012年11月18日 16点11分 19
level 1
信号分析正在学,
2012年11月18日 16点11分 20
level 10
这个科普不错嘛,高中生应该都能看懂
2012年11月19日 00点11分 21
高三党表示看起来有压力……
2012年11月19日 14点11分
高二党看不懂
2012年11月21日 07点11分
level 13
KOF2002FANS 楼主
还是例题:
一信号的频宽为B。若以最低采样频率进行采样并用量化级数L=2^n的PCM编码,求编码后的比特率表达式?
根据采样定理,最低采样频率应为f = 2*B,所以每秒会产生2B个样本
由L=2^n可知,每个样本要占n个bit
所以一秒之内的信息量就是2B*n,即bit rate = 2Bn
2012年11月19日 03点11分 22
level 6
顶一下……
2012年11月19日 14点11分 24
1 2 尾页