引言
一个计算机数据采集系统在生产过程中会受到各种干扰,从而降低了有用信号的真实性。虽然在输入通道上接入一个RC低通滤波器来抑制工频及其以上频率的干扰,但对频率很低的干扰却由于制作上的难度而难以实现。采用数字形式来模拟RC低通滤波器的输入输出数学关系,可以得到较好的滤波效果。常用数字滤波方法有限幅滤波、算术平均滤波、中值滤波及惯性滤波等。以下以单片机为CPU、8-bit A/D and D/A converter的PCF8591以及UA741。对含有干扰的正弦信号进行采样与惯性数字滤波进行实现。
1 惯性数字滤波
2 威廉希尔官方网站
图
用Proteus绘制如下威廉希尔官方网站
图
UA741将正弦信号S1与脉冲干扰信号S2混合,配置如上图所示,模拟产生含干扰的信号源,其输出信号Vin电平在0V-5V之间。
设置U3(V-) = -12V,U3(V+) = 12V。
3 算法实现代码
int Y[2];
int X;
uchar adc_d; // 接受到的AD转换数据
uchar dac_d; // 要显示的DA转换数据
X=(uint)adc_d; //adc_d强制转换为无符号整形提高计算精度
Y[0]=X+A*(Y[1]-X)/100; //运用惯性数字滤波公式进行滤波计算输出值
/*限幅*/
if(Y[0]<0)
{
Y[0]=0;
}
else if(Y[0]>255)
{
Y[0]=255;
}
/*将滤波后的值赋给dac_d准备输出,并存入Y[1]*/
dac_d=Y[0]; Y[1]=Y[0];
4 滤波结果
取A = 10时
取A = 90时
取A=10和90观察滤波波形,说明惯性滤波器的时间参数τ越大滤波效果越好,但会造成相位滞后,且输出幅值会减小。
引言
一个计算机数据采集系统在生产过程中会受到各种干扰,从而降低了有用信号的真实性。虽然在输入通道上接入一个RC低通滤波器来抑制工频及其以上频率的干扰,但对频率很低的干扰却由于制作上的难度而难以实现。采用数字形式来模拟RC低通滤波器的输入输出数学关系,可以得到较好的滤波效果。常用数字滤波方法有限幅滤波、算术平均滤波、中值滤波及惯性滤波等。以下以单片机为CPU、8-bit A/D and D/A converter的PCF8591以及UA741。对含有干扰的正弦信号进行采样与惯性数字滤波进行实现。
1 惯性数字滤波
2 威廉希尔官方网站
图
用Proteus绘制如下威廉希尔官方网站
图
UA741将正弦信号S1与脉冲干扰信号S2混合,配置如上图所示,模拟产生含干扰的信号源,其输出信号Vin电平在0V-5V之间。
设置U3(V-) = -12V,U3(V+) = 12V。
3 算法实现代码
int Y[2];
int X;
uchar adc_d; // 接受到的AD转换数据
uchar dac_d; // 要显示的DA转换数据
X=(uint)adc_d; //adc_d强制转换为无符号整形提高计算精度
Y[0]=X+A*(Y[1]-X)/100; //运用惯性数字滤波公式进行滤波计算输出值
/*限幅*/
if(Y[0]<0)
{
Y[0]=0;
}
else if(Y[0]>255)
{
Y[0]=255;
}
/*将滤波后的值赋给dac_d准备输出,并存入Y[1]*/
dac_d=Y[0]; Y[1]=Y[0];
4 滤波结果
取A = 10时
取A = 90时
取A=10和90观察滤波波形,说明惯性滤波器的时间参数τ越大滤波效果越好,但会造成相位滞后,且输出幅值会减小。
举报