标题:
out1.2出来是一个交流,有正负的方波,但滤波后成了正弦,疑惑求教
[打印本页]
作者:
韩she
时间:
2021-7-13 00:25
标题:
out1.2出来是一个交流,有正负的方波,但滤波后成了正弦,疑惑求教
[attach]275731[/attach]
单片机源程序如下:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar t_max = 20; //一个周期
static uchar t = 0,i = 0; //PWM计数
sbit P2_0=P2^0;
sbit P1_0=P1^0;
uchar code SinParam[40]={
10,10,11,12,13,14,14,15,16,16,17,17,18,18,18,19,
19,19,19,19,19,19,19,19,19,19,18,18,17,17,16,16,
15,15,14,13,12,12,11,10
};
// 正弦波样本值
void main(void)
{
TMOD = 0x02; //定时器0,工作模式2,8位定时模式
TH0 =1; //写入预置初值(取值1-255,数越大PWM频率越高)
TL0 =1; //写入预置值(取值1-255,数越大PWM频率越高)
TR0 = 1; //启动定时器
ET0 = 1; //允许定时器0中断
EA = 1; //允许总中断
P2_0=1; //初始化P1
P1_0=0;
while(1)
{
}
}
timer0()interrupt 1 using 2
{
t++; //每次定时器溢出加1
if(t < t_max && t >= SinParam[ i]) //PWM周期 5
{
P2_0 = 0; //使LED灯亮
P1_0=1;
}
else if( t >= t_max)
{
t = 0; //使t=0,开始新的PWM周期
i++;
P2_0 =1;
P1_0=0;
}
if(i >= 40)
{i = 0;}
}
out1.2出来是一个交流,有正负的方波,但滤波后成了正弦,(全大于0)单极性波。问题出在哪儿里?萌新求教
作者:
1543330241
时间:
2021-7-13 08:19
你应该把波形图贴出来
作者:
xuyaqi
时间:
2021-7-13 09:15
方波由多谐波(正弦波)组成,滤去高次谐波后成了正弦波。
作者:
glinfei
时间:
2021-7-13 09:25
就是傅里叶分解
作者:
rz12345
时间:
2021-7-13 09:41
对地点不对,负本来就是虚地产生的,测量方法会影响结果的。
作者:
韩she
时间:
2021-7-15 12:11
已解决,请删除
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1