本文介绍采用PWM生成正弦波信号的简单方法。
1.原理
采用PWM生成正弦波信号,本质上是用一个PWM周期对应的平均电压去等效生成正弦信号的电压。设输出的正弦波电压(单极性输出,有一个直流偏置电压)如下图。
公式推导如下:
其中,为PWM开启时间,
为PWM周期,
为供电电压,
为输出正弦信号频率
令,m即调制度,
代入得:
进一步:
对进行离散化,采样频率为
,一个周期采样点数
,采样序号
,则
至此,我们只要确定输出的大小及采样点数
,就可以确定输出PWM开启时间
。
在使用MCU/DSP进行PWM输出时,通常调整的是CCR(比较捕获寄存器)和ARR(自动重载寄存器),因此,上述等式也可写成:
注意:要想输出平滑的正弦信号,还需要在PWM输出接口加低通滤波器(如简单的RC滤波器),截止频率比输出模拟信号频率稍大即可。
2.实现
清楚原理,实现就比较简单了。
对于,可将其离散化,做成表格,输出时按表格内容输出即可,matlab代码如下:
fm=100;
fs=1000;
N=fs/fm;
k=0:1:N;
y=sin(2*pi*k/N);
plot(y);
实现过程中只需要将表格中数据按采用频率输出即可(可以用定时器实现),不要忘记在PWM输出端加低通滤波器以平滑输出。
总结,本文介绍了采用PWM生成正弦波信号的简单方法。