一、使用DAC输出周期2khz的正弦波
1、获取正弦信号
建议先用单音音频(比如2000Hz的正弦波)的wav数据进行实验,通过DAC或PCM音频模块能够基本还原出原始正弦波声音后,再用语言/音乐信号进行实验。
生成单音正弦波:
文件—>新建—>音频文件

采样率为2000,因为是2000Hz的正弦波。
点击效果——>生成基本音色:
设置如下:

导出文件:

2、获取数据
用UltraEdit得到相关数据
用UltraEdit打开刚才保存的wav文件:

将这些数据全部选中,并且复制粘贴到另一个新建文本文件夹中:
注:在UltraEdit复制十六进制要在选择数据后点击 编辑->十六进制复制选定视图,将数据粘贴到新建文件内,然后再新建文件夹复制进去:
用搜索范围可以更快地选择复制要复制的内容:
最终复制到文件夹里面如下图所示:

3、得到对应的C语言文件
用notepad++打开这个文本文件,使用alt+c快捷键,对列编辑,给所有数字前面加上0x:


在keil中打开DAC生成正弦波的例程代码,把红框框出来的数据用刚刚得到的数据替换掉:

最后,编译下载,用示波器观察能否观察到对应的正弦波波形。因为暂时没有示波器,所以暂不展示波形。
二、使用DAC输出数字音频歌曲数据转换为模拟音频波形输出
随便找一首音乐,截取一部分:

保存的时候更改配置,采样率为8000Hz:


然后采用跟上述一样的操作,最终编译好代码,烧录。
因为暂时没有音频模块,所以不能展示是否还原了音频信号。暂时不考虑。
三、总结
本次实验用到的新东西还挺多的,包括UltraEdit和notepad++的使用等等,学习到了许多新东西。但是因为有很多硬件手上还没有,所以一些实验结果还有待验证。
四、参考链接
详细介绍Audition输出一个周期2khz的正弦波(循环)。将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。
使用STM32F103的DAC功能实现音频输出



502

被折叠的 条评论
为什么被折叠?



