搜索
bottom↓
回复: 17

DAC 10位 怎么播放16位WAV文件,现在噪音很大,求大师指点!

[复制链接]

出0入0汤圆

发表于 2016-6-12 22:44:07 | 显示全部楼层 |阅读模式
DAC 10位  怎么播放16位WAV文件,现在噪音很大,求大师指点!

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2016-6-12 22:45:59 | 显示全部楼层
可以把16位WAV文件转成8位的

出0入0汤圆

发表于 2016-6-12 23:47:05 | 显示全部楼层
是不是可以直接去掉低位 ??? 我是乱猜的,

出0入0汤圆

发表于 2016-6-13 09:16:00 | 显示全部楼层
去掉低6位

出0入0汤圆

发表于 2016-6-13 09:20:15 | 显示全部楼层
右移6位...

出0入0汤圆

发表于 2016-6-13 11:14:05 | 显示全部楼层
本帖最后由 ordinary 于 2016-6-13 11:15 编辑

1、16位WAV  默认使用2进制 补码存放的,不能简单抛弃低位。
   要 +0x8000  后再 右移6位,送 DA 或 PWM
2、WAV文件 有多种格式,一定要确认是 PCM的,不能用ADPCM格式

出0入0汤圆

 楼主| 发表于 2016-6-16 15:00:02 | 显示全部楼层
ordinary 发表于 2016-6-13 11:14
1、16位WAV  默认使用2进制 补码存放的,不能简单抛弃低位。
   要 +0x8000  后再 右移6位,送 DA 或 PWM
2 ...

大师,你好!
+8000是什么意思呢?  是求原码吗?正数 原码补码一样啊,负数需要转换? 不懂?  请指点 谢谢!

出0入0汤圆

 楼主| 发表于 2016-6-16 15:03:08 | 显示全部楼层
ordinary 发表于 2016-6-13 11:14
1、16位WAV  默认使用2进制 补码存放的,不能简单抛弃低位。
   要 +0x8000  后再 右移6位,送 DA 或 PWM
2 ...

大师,你好!
+8000是什么意思呢?  是求原码吗?正数 原码补码一样啊,负数需要转换? 不懂?  请指点 谢谢!

出0入0汤圆

发表于 2016-6-16 17:12:44 | 显示全部楼层
本帖最后由 ordinary 于 2016-6-16 17:13 编辑
freshen 发表于 2016-6-16 15:03
大师,你好!
+8000是什么意思呢?  是求原码吗?正数 原码补码一样啊,负数需要转换? 不懂?  请指点  ...


adc_data(语音数据)+=0x8000;
你试试

出0入0汤圆

发表于 2016-6-16 18:54:34 | 显示全部楼层
WAV格式是有符号16进制    看着办吧

出0入0汤圆

 楼主| 发表于 2016-6-17 13:37:34 | 显示全部楼层
ordinary 发表于 2016-6-16 17:12
adc_data(语音数据)+=0x8000;
你试试

按照你说的+0x8000 确实没噪声 ,非常谢谢大师指点!现在播放16位单声道 没问题了  
但 播放8bit 11K  PCM 直接给DA 好像没声音,我左移2位好像 可以播放,不知道原因?

出0入0汤圆

 楼主| 发表于 2016-6-17 13:37:58 | 显示全部楼层
not_at_all 发表于 2016-6-16 18:54
WAV格式是有符号16进制    看着办吧

是的,谢谢!

出0入0汤圆

发表于 2016-6-17 15:47:25 | 显示全部楼层
freshen 发表于 2016-6-17 13:37
按照你说的+0x8000 确实没噪声 ,非常谢谢大师指点!现在播放16位单声道 没问题了  
但 播放8bit 11K  PC ...

你使用的是10位的DA,直接送DA,不是没有声音,是音量是左移动两位的 1/16。
(功率 和电压的平方成正比)
夜深人静时,应该能听到。

出0入25汤圆

发表于 2016-6-17 16:30:52 | 显示全部楼层
先看WAVE文件格式,是有符号数还是无符号数。

DAC一般接受无符号数。

你把WAVE文件转成无符号数,截取高10位,再送DAC,应该就好了。

出0入0汤圆

 楼主| 发表于 2016-6-19 14:07:01 | 显示全部楼层
hecat 发表于 2016-6-17 16:30
先看WAVE文件格式,是有符号数还是无符号数。

DAC一般接受无符号数。

谢谢大师指点,确实如此;受益匪浅啊

出0入0汤圆

发表于 2016-6-19 17:30:14 | 显示全部楼层
论坛里面确实有各方面的高手

出0入0汤圆

发表于 2017-8-10 22:48:29 | 显示全部楼层
freshen 发表于 2016-6-19 14:07
谢谢大师指点,确实如此;受益匪浅啊

转成无符号数是指加上0x8000吗?然后再取高10位就可以了吗?

出0入0汤圆

发表于 2019-3-16 20:26:35 | 显示全部楼层
ordinary 发表于 2016-6-13 11:14
1、16位WAV  默认使用2进制 补码存放的,不能简单抛弃低位。
   要 +0x8000  后再 右移6位,送 DA 或 PWM
2 ...

直接用除法,快
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-16 15:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表