- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于PWM的音乐回放设计
基于PWM的音乐回放设计
原理
首先将音乐数据通过软件工具,按照一定的采样率进行提取,然后将声音幅度信号转换成频率固定,占空比随着音乐幅度变化的PWM输出。
输出模块采用硬件滤波后,经过喇叭对声音进行还原。
下面介绍一下,具体的步骤。
实现步骤
1、选取音乐文件
要求音乐文件最好是声音效果比较清晰的文件。
将音乐文件转换为包含声音幅度信息的txt文档
此处用到GoldWave软件。
(1)启动GoldWave软件,打开选择的音乐文件。如下图所示,一般支持mp3和wav格式的音乐。
(2) 由于图中给出的声音是双通道的,而实际还原为单通道的声音,于是需要将立体声转换为单通道。
可以选择文件-另存为,弹出如下弹窗。
保存类型,依然设置为原声音文件格式,音质采用PCM8位量化,momo(单声道)式样。
由于PWM输出的精度为8位的,所以这里设置为8位(可以设置为更高精度)。
然后点击保存。
再次打开上面保存的文件,由于该波形存在负半周。因此需要整体的波形上移,以去掉负的波形。但是此处平移可能引起声音的最大值失真。
上移波形的步骤为:
点击 效果-偏移,弹出上图所示弹框。
在预置中选择向上移位。
位移效果如下图:
从上图可以看出声音波形有很大的失真,可以在移动前将声音的幅值进行缩放。
选择效果-音量-更改音量
弹出如下框图:
可以再预置中设置一半。将原声音幅度减小为1半,设置后如下图:
此时可以看到声音的最大幅值,已经降到原来的一半。
再次将声音进行向上平移,得到如下效果:
从上图可以看出,声音的幅度变化,比没有进行幅度缩放前,变化明显的多。
提取声音幅度值
点击文件-另存为,弹出如下弹框:
一次输入保存文件名,保存类型选择为Numerical Text(*.txt)格式。
音乐质量选择为ASCII 16bit integer,momo
如果保存的txt文件过大,可以重新设置采样率。设置过程为:
编辑-效果-重新采样
在上图的右边框中设置采样速率。
由于单片机中,采用中断控制PWM输出每个声音的幅度,中断频率不能太高,否则影响系统的运行,我们把中断时间设置为125us.即播放频率为8KHZ。则采样频率设置为8KHZ即可。当采样频率提高后,此处的中断时间要降低,可以适当作出调整。
通过代码读取txt文件
可以直接将先前处理好的声音文件以TXT文件形式放在代码中,
注意需要将第一行屏蔽,且在每个数字后面加上逗号。
如下截图:
(1)由于此处的数据与PWM的占空比没有对应关系,还需要进行归一化处理。将上面所有的数据转换为占空比在0-100之间的数据。若适当提高PWM占空比的分辨率,即可以提高声音的音质。
(2)代码中采用如下形式,以数组形式访问TXT文件数据。
#define MUSIC_DATA_NUM 20425
static const U8 g_nMusicDataDuty[MUSIC_DATA_NUM] = {
#include music_7.txt
};
这样只要通过下标就可以访问g_nMusicDataDuty标示的声音数据。
PWM输出,进行声音还原
通过定时调用HalPWMStart(U8 channel, U16 freq, U8 duty)函数,既可实现声音的还原。
此处freq 必须大于采样频率,当采样频率为8K时,经过试验,此处freq设置为40K,声音效果比较好。
优点:
用该方法可以很方便的实现任意音乐的回放。
缺点:
1、txt文档数据量加大,声音效果越好,数据量越大。
2、PWM输出控制频率较大,系统占用较高。
3、需要另外添加滤波电路,负责砸音比较大。
应用:
该方案应该用在A60EV仪表项目的开机启动的音乐上。
原创力文档


文档评论(0)