当前位置:   article > 正文

采用PWM生成正弦波信号的简单方法_运放把pwm转成正弦波的方法

运放把pwm转成正弦波的方法

本文介绍采用PWM生成正弦波信号的简单方法。

1.原理

采用PWM生成正弦波信号,本质上是用一个PWM周期对应的平均电压去等效生成正弦信号的电压。设输出的正弦波电压(单极性输出,有一个直流偏置电压)如下图。

公式推导如下:

\frac{T_{on}}{T_{c}}\cdot U_{cc}=\frac{1}{2}\cdot U_{cc}+U_{m}\cdot \sin (2\cdot \pi \cdot f_{m}\cdot t)

其中,T_{on}为PWM开启时间,T_{c}为PWM周期,U_{cc}为供电电压,f_{m}为输出正弦信号频率

m=\frac{U_{m}}{\frac{1}{2}\cdot U_{cc}},m即调制度,U_{m}=\frac{1}{2}\cdot U_{cc}\cdot m

代入得:

\frac{T_{on}}{T_{c}}\cdot U_{cc}=\frac{1}{2}\cdot U_{cc}+\frac{1}{2}\cdot U_{cc}\cdot m\cdot \sin (2\cdot \pi \cdot f_{m}\cdot t)

进一步:

T_{on}=\frac{T_{c}}{2}\cdot (1+ m\cdot \sin (2\cdot \pi \cdot f_{m}\cdot t))

\sin (2\cdot \pi \cdot f_{m}\cdot t)进行离散化,采样频率为f_{s},一个周期采样点数N=\frac{f_{s}}{f_{m}},采样序号k=0,1,2\cdots N-1,则

T_{on}=\frac{T_{c}}{2}\cdot (1+ m\cdot \sin (\frac{2\cdot \pi\cdot k }{N}))

至此,我们只要确定输出U_{m}的大小及采样点数N,就可以确定输出PWM开启时间T_{on}
在使用MCU/DSP进行PWM输出时,通常调整的是CCR(比较捕获寄存器)和ARR(自动重载寄存器),因此,上述等式也可写成:

CCR=\frac{ARR}{2}\cdot (1+ m\cdot \sin (\frac{2\cdot \pi\cdot k }{N}))

注意:要想输出平滑的正弦信号,还需要在PWM输出接口加低通滤波器,截至频率即为输出模拟信号频率f_{m}

2.实现

清楚原理,实现就比较简单了。

对于\sin (\frac{2\cdot \pi\cdot k }{N}),可将其离散化,做成表格,输出时按表格内容输出即可,matlab代码如下:

  1. fm=100;
  2. fs=1000;
  3. N=fs/fm;
  4. k=0:1:N;
  5. y=sin(2*pi*k/N);
  6. plot(y);

实现过程中只需要将表格中数据按采用频率f_{s}输出即可(可以用定时器实现),不要忘记在PWM输出端加低通滤波器以平滑输出。

总结,本文介绍了采用PWM生成正弦波信号的简单方法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/683718
推荐阅读
相关标签
  

闽ICP备14008679号