一路PWM三阶RC滤波语音输出-噪声问题
项目场景:
很多MCU内部没有DAC,但是芯片应用在需要DAC的场景,此时需要用PWM波模拟DAC输出。
有一路PWM和多路PWM波实现方式,取决于项目要求以及MCU性能
单路PWM波:MCU主频相对较高,项目对DAC精度要求低。
多路PWM波,MCU主频相对较低,项目对DAC精度要求高。
问题描述
使用单路PWM输出时,有噪音输出。输出结构如下:
PWM波 -> RC滤波电路 -> 功放芯片/8002 -> 喇叭
PWM波:一路PWM,由一个8位定时器产生,频率在64K
RC滤波电路:使用三阶RC滤波,其中R1C1=R2C2=R3C3=RC,所以截止频率
功放芯片:使用8002
喇叭:8欧1W
原因分析:
噪声来源一:定时器输出频率波动
噪声来源二:功放输出不稳定
噪声来源三:滤波电路对PWM波处理有杂波
如果直接输出一段音频,有噪音的出现,此时无法很好的定位问题来源是哪一点。
这里采用一些方法来排除一些噪声源。
(1)输出正弦波,通过示波器观察RC滤波后的波形,分析滤波电路对PWM波处理有杂波
PWM数据;
示波器显示:
RC滤波后:
可以看出RC滤波后正弦波是正常的,稍微有点变形,但是并无异形和封底顶。
(2)输出基准电平(50%的占空比方波),分析定时器输出频率波动和功放输出问题
2.1查看语音wav转的bin文件,索引信息后数据都是0x80.
2.2烧录文件和程序后,测量PWM输出,波形如下图,是正常的。此时喇叭周期性的有噪音输出。功放使能和PWM波同时输出。
2.3 保持功放使能,循环播放语音。此时喇叭周期性的有噪音输出。
检查发现采用FIFO方式在定时器里面读出并更新PWM,由于FIFO读出时间不稳定导致更新PWM波的频率有波动,从而产生噪音。
解决方法:把FIFO读出数据放到外面,提前准备好,修改后喇叭周期性的噪音没有了。
进一步测试发现上电时有一点噪音输出。
2.4分析上电瞬间有噪音输出
原因分析可能是PWM刚开始输出的跳变或者功放刚上电不稳定输出导致。
进一步测试:
1.上电后先输出PWM波5s后打开功放使能,此时功放使能瞬间有一个噪声
2.上电后先打开功放使能5s后输出PWM波,此时有两个噪声,刚上电时以及5s后输出PWM时。
通过波形和结果可以分析出:上电噪声有两个原因
A.功放使能时功放内部输出的噪声。
B.PWM波刚输出时产生一个跳变信号,从而产生的噪声。
功放的上电噪音可以在输出端加入滤波电容进行消除,因为这个和具体的功放有关系,可能有些功放没有上电噪音,没有进一步测试。
解决方案:
1.同过正弦波调整RC滤波,使得波形尽量如同正弦波
2.使用时先输出PWM波后在开功能使能,这样只有一个功放使能时内部噪声。
一路PWM三阶RC滤波语音输出-噪声问题相关推荐
- 利用RC网络降低可调节LDO输出噪声
本文转载自硬件十万个为什么 低压差稳压器(LDO) 可用来为高速时钟.模数转换器.数模转换器.压控振荡器和锁相环这些电路供电.噪声对于高性能模拟电路的设计人员而言极为重要.降低噪声的关键是保持LDO噪 ...
- PWM通过RC低通滤波器模拟DAC
当我们电路需要DAC而单片机并没有DAC外设时,则可采用PWM通过RC低通滤波器来模拟实现DAC功能. RC低通滤波器 当采用低通滤波器模拟DAC时,PWM频率应远大于RC低通滤波电路的截止频率fc= ...
- 关于PCB的机械层和差分布线、RC滤波
画PCB的时候,禁止布线层和机械层各有什么作用? Gerber导出机械层 没导机械层其实也可以,不影响加工,但是影响你自己看 有些机械层是结构工程师给你定义的,导出来比较好 就是做标识,默认不会加工的 ...
- STM32Cube的PWM控制基础篇(一)一路PWM设置
以下是有关STM32cube的PWM的花式操作,大佬们在看下面链接之前建议先看完本博客,个人觉得写的比较详细,欢迎大佬之指正! STM32Cube的PWM控制基础篇(二)多路占空比不同的PWM STM ...
- 跨阻放大电路输出噪声计算
本笔记针对图1的跨阻电路提供了一种计算输出电压噪声的准确模型. 图1 跨阻放大电路 图1中的跨阻放大电路中,噪声源包括: 反馈电阻Rf的热噪声(假设Ri>>Rf) 运放输入电流噪声in 运 ...
- 如何使用定时器捕获一路PWM波信号的频率和占空比
本次实验将采用定时器2的通道2产生两路频率和占空比均可调的PWM信号,然后使用定时器3的通道1来捕获其中的一路PWM波的频率和占空比. 1.首先来看下产生PWM波的程序,也就是和上篇博客是一样的,只不 ...
- STM32输出SPWM波,HAL库,cubeMX配置,滤波后输出1KHz正弦波
SPWM波 对于功率方向,输出SPWM波是必须要掌握的 工程: stm32生成spwm代码Keil工程链接资源 引用spwm波定义: PWM波形就是指占空比可变的波形:SPWM波形是指脉冲宽度按正弦规 ...
- ROS学习笔记-ROS语音识别与语音输出[1]
说明:代码部分是基于古月居前辈的例程,在此对胡老师表示感谢!! 语音识别功能框图: 调用过程: roscore rosrun robot_voice iat_publish rostopic pub ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波
标题 使用频率域滤波降低周期噪声 陷波滤波深入介绍 最优陷波滤波 本章陷波滤波器有部分得出的结果不佳,如果有更好的解决方案,请赐教,不胜感激. 使用频率域滤波降低周期噪声 陷波滤波深入介绍 零相移滤波 ...
最新文章
- markdown语法中的空格_Markdown常用语法汇总
- .NET经典资源站点汇总
- big endian and little endian
- java--用 * 打印出各种图形(新手请进)
- macbook不能进系统 备份数据_不基于备份和表,生产系统数据误删就能完全恢复?!...
- phpmyadmin在centos 7中安装
- golang中base64编码_golang中自带base64编码和解码
- SQL 内置排名函数 DENSE_RANK
- python列表的排序方法是_Python列表排序 reverse、sort、sorted 操作方法详解
- 35.Linux/Unix 系统编程手册(下) -- 进程的优先级和调度
- 190705每日一句; 寻找内心的勇气, 一切从零开始
- 腾讯音乐12月初赴美IPO,250亿美元被低估还是高估?
- 好用的屏幕录像截图工具:Movavi Screen Capture Pro 10 Mac
- 花都平安保险应该找谁?
- 【寒江雪】Unity中调用C++的函数和类
- Windows 环境变量工具 Evn
- w7计算机管理哪个是显卡,win7怎么看显卡配置以及win7怎么看电脑完整配置
- Python爬取王者荣耀官网图片
- 使用人人开源项目遇到的一些坑
- wpf拖拽图片,滚轮放大缩小