国家企业信用信息没有网站怎么做,百度移动网站检测,邯郸网上房地产官网,全国新闻采用PWM进行播放语音原理1.概述2.声音原理3.DAC产生声音的原理是什么4.PWM又是如何实现的DAC的5.PWM的频率与底噪的关系6.PWM音乐曲目解析7.后续1.概述大多数微控制器上播放音频都是采用DAC进行输出#xff0c;因为微控制器上都不会去带CODEC编解码芯片#xff0c;但是DAC不是… 采用PWM进行播放语音原理1.概述2.声音原理3.DAC产生声音的原理是什么4.PWM又是如何实现的DAC的5.PWM的频率与底噪的关系6.PWM音乐曲目解析7.后续1.概述大多数微控制器上播放音频都是采用DAC进行输出因为微控制器上都不会去带CODEC编解码芯片但是DAC不是每个芯片都会存在如果没有DAC那又该怎么办呢于是PWM就成了一个不错的选择。因为一般的微控制器板子都会有PWM这样的设计大大简化了语音设计的门槛。其原理就是PWM可以变成一个DAC然后进行语音信号的输出经过功率放大器经过喇叭则可以将数字信号变成声音信号正常输出了。2.声音原理学过物理知识的都知道声音其实是一种波通过空气振动等弹性介质传递到人的耳朵里引起耳膜震动牵动大脑的听视觉神经经过大脑处理后就会产生听觉。人能够分辨的声音的频段为最低20Hz到最高20KHz。中学物理就学过声音的三特征是音调、响度和音色响度是由声源振动的幅度决定的振幅越大响度越大音调的高低和振动的频率有关频率越高音调越高音色不同波的特征也不同。既然声音是一种波形波则有两个特征频率和振幅。对于单片机来说表述这两个概念则需要一定的技巧频率是单片机本来就具有的特性可以通过时钟产生特定频率的信号对于振幅数字信号0与1该如何表述呢可以通过位宽深度来进行表述比如8位的位宽深度则可以表达的量化数据为0-256之间的数据对于数字信号声音数据也有采样的位宽所以这个也可以用单片机描述DAC则可以用来做这个结合定时器产生特定的频率从而让机器发出声音。3.DAC产生声音的原理是什么要想真正理解DAC是如何工作的必须首先了解什么是模拟信号模拟信号是一个不断变化的电压它可以完美的表达不断变化的声波。麦克风可以将传入的声音转换为代表声音的模拟电信号这些电信号通过扬声器将模拟电信号转换成原始声音。那么该如何记录这些模拟信号呢很早的时候人们就想出了将模拟信号存储为唱片上的凹槽。通过指针的来回移动从而表达出声音的电模拟信号。随着时间的推移将这种凹槽早已变成和数字信号存储在了硬盘或者各种磁带中而这些0或者1则表示音频信号的信息。对于声音信号光盘可以存储每秒为44100次的16位深度量化二进制数据16bit/44kHz。于是在进行DAC输出的时候我们也可同样采用16位宽的DAC进行采样然后以44kHz的频率将声音信号转化出来这对于MCU上去操作DAC并非难事只需要启用一个16位宽的DAC和一个定时器即可定时器用于控制声音输出的频率如采样率位44.1KHz则按照该时钟频率输出即可。4.PWM又是如何实现的DAC的在理解上述原理之后我们来理解一下PWM以及PWM是如何进行工作的。PWMPulse Width Modulation最简单的理解就是MCU内部有个定时器定时器特定的时间内将GPIO的电平翻转一下。对于翻转的时间间隔的比例就是占空比而持续这两个过程则可以算为一个周期。这种是对于数字信号的描述我们转变一下思维从模拟信号的角度去理解pwm。则可以看到上面的图示了在一个周期内其占空比决定了平均电压值红色的线表示平均电压。对于一个周期内的数据我们可以进行量化其量化的方式为首先设定0~5v之间的电压用0-256表示此时就可以有8位分辨率2^8256。由于每个量化点都可以表示一个电压而电压又直接和PWM的一个周期的占空比直接相关所以可以得到占空比和量化点的关系。同样的16位量化数据则表现的更为精确。但是如果量化的数据越大则PWM频率越低计数的时间变长这是PWM的基本权衡。执行的越快精度就越低。这里比较关键但需要好好理解随着PWM频率的不断提升其占空比的选择就不再那么随意了精度会大大的降低。5.PWM的频率与底噪的关系音频设备有个参数叫信噪比是信号与噪声的比例模拟信号必然会产生噪声。越好的设备信噪比越大也就是需要非常大的增益才能听得到底噪。信噪比Signal-to-noise ratio缩写为 SNR 或 S/N也称作信杂比或讯杂比。通常PWM发出的声音无法去除掉这一点但这些声音有时候会变得有趣比如红白机8bit游戏音乐。确切的说如果要提升音质那么可以采用16位数据。有着如下的公式说明SNR(dB)(Bit Depth)*6.02dB 1.76dB)
也就是说如果要获得更好的声音效果可以有两种办法第一种是降低PWM的频率也就是上一章节解释的那样想要获得更大的深度则必须降低PWM的频率。第二种则是增加PWM的数量。根据奈奎斯特采样定理PWM的最高频率至少是声音最高频率20Khz的两倍。上图描述了采样频率和PWM数量以及位宽深度的关系。如果增加PWM的数量则可以提升采样的精度比如在不改变PWM的频率下可以改变其位宽深度。6.PWM音乐曲目解析我曾经看到过一篇很有意思的文章就是讲了pwm然后用无源蜂鸣器做个播放器的播放《你笑起来真好看》这个曲目我觉得很有意思。我的上述分析虽然不是完全的可以结合上这个原理但是至少可以帮助理解一下乐理知识。在音乐中节奏和节拍两者相辅相成构成音乐的骨架。使用PWM直接给无源蜂鸣器供电当高电平时无源蜂鸣器响低电平时不响。然后给定音乐的节拍让其响或者不响则可以演奏出乐曲出来而人发出的声音却比这个要复杂许多高低变化的声音声调的变化要展示出来是非常有难度的事情。7.后续本文分析了声音通过PWM或者DAC产生的一些原理和过程其中比较关键的是PWM从模拟信号的角度上来看其占空比的变化也可以变成电压信号。从而通过类似于DAC的原理此时加上定时器按照声音特定的频率去播放则可以输出声音了。当然本文至少从原理上说明这个方案是可行的更多的细节和更多的技术实现还在是要继续进行探索后面会研究多个PWM如何提升声音信噪比以及带来的副作用是那些也会去用MCU的视角去理解更多乐理知识。推荐阅读 专辑|Linux文章汇总 专辑|程序人生 专辑|C语言嵌入式Linux微信扫描二维码关注我的公众号