打印
[51单片机]

PWM音频控制问题请教

[复制链接]
4409|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tirimisu|  楼主 | 2013-10-29 16:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tirimisu 于 2013-10-29 16:04 编辑

音频格式:PCM
位速:    352kbps
音频采样:16位,22kHZ

想用单片机的PWM方式来输出这个音频文件,音频文件已转化成16进制的数组
按照采样定理,PWM的频率应该是2倍的音频采样频率以上

如果我用48M的时钟频率,8-bit的PWM来控制,计算得到PWM的频率为93.75KHZ,理论上是可以满足采样的要求
问题是:
1.16位的音频是否应该用16-bit的PWM来控制?这块儿一直没理解这之间的关系
2.上面这样设置是否能真实的还原音频?
3.用定时中断来控制PWM输出,定时中断周期是否有要求?

新手,还请大家多多指点一二

相关帖子

沙发
coody| | 2013-10-29 16:55 | 只看该作者
理论上,用采样速度相同的PWM就可以了,当然,用N*fs的PWM频率更好。
16bit的声音,当然用16bit播放是最好的。如果你用8bit,那么,你采样就用8bit好了,效果近似。
16bit 22KHZ的PWM,要求PWM时钟=65536*22=1441792KHZ=1.44GHZ,这个不现实。

所以,为了得到好的声音,都用Stereo DAC。ADC也一样。

使用特权

评论回复
板凳
coody| | 2013-10-29 16:58 | 只看该作者
另外,专门的音频ADC和DAC都是有过采样的(很少数没有),比如256fs,那么,当用44.1KHZ采样时,恢复22.05KHZ的正弦波可以非常的光滑。而普通的DAC(不是高倍过采样的),则很难达到这个效果。

使用特权

评论回复
地板
holle| | 2013-10-29 17:01 | 只看该作者
本帖最后由 holle 于 2013-10-29 17:10 编辑

你没有搞清楚2个概念:PWM的频率、音频量化频率。

22KHz是指每秒钟要输出22x1024个语音电平(即每秒要更新22x1024次PWM占空比);
16bit是指 语音的幅度分辨率是 0~65535,可以是有符号数也可以全是正值,看电路了。



使用特权

评论回复
5
tirimisu|  楼主 | 2013-10-29 17:18 | 只看该作者
holle 发表于 2013-10-29 17:01
你没有搞清楚2个概念:PWM的频率、音频量化频率。

22KHz是指每秒钟要输出22x1024个语音电平(即每秒要更新 ...

1024是怎么来的?

使用特权

评论回复
6
tirimisu|  楼主 | 2013-10-29 17:18 | 只看该作者
coody 发表于 2013-10-29 16:58
另外,专门的音频ADC和DAC都是有过采样的(很少数没有),比如256fs,那么,当用44.1KHZ采样时,恢复22.05K ...

专门的音频ADC和DAC有没有推荐的?

使用特权

评论回复
7
holle| | 2013-10-29 17:20 | 只看该作者
tirimisu 发表于 2013-10-29 17:18
1024是怎么来的?

笔误,是1000

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

181

帖子

3

粉丝