高通滤波

高通滤波

1.硬件高通滤波

RC高通滤波器的原理图:
在这里插入图片描述
增益表达式:
在这里插入图片描述

截止频率:
在这里插入图片描述

写成时域上的表达式:
在这里插入图片描述

离散化后得到:

在这里插入图片描述
根据设定的截止频率,假如目标频率是50Hz,截止频率可以整定为0.5Hz,过滤低频分量,而不影响目标信号的采集。
在这里插入图片描述

2.软件高通滤波

  • 实现方法1
void filter_rc_fpf(float *Vi, float *Vi_p, float *Vo, float *Vo_p, float sampleFrq )
{
	float CutFrq, RC, Coff;
		
	//high pass filter @cutoff frequency = 0.5 Hz		
	CutFrq = 0.5;
	RC = (float)1.0/2.0/PI/CutFrq;
	Coff = RC/(RC + 1/sampleFrq);
	*Vo = ((*Vi) - (*Vi_p) +(*Vo_p) )*Coff ;		
	
	//update 	
	*Vo_p = *Vo;	
	*Vi_p = *Vi;		
}
  • 实现方法2
#define PI 3.1415
 
 
//*********** Structure Definition ********//
typedef struct {
	float  Vi;
	float  Vi_prev;
	float  Vo_prev;
	float  Vo;
	float  Fcutoff;
	float  Fs;
} HPF_RC_T;
//*********** Structure Init Function ****//
void filter_rc_fpf_init(HPF_RC_T*v)
{
	v->Vi=0;
	v->Vi_prev=0;
	v->Vo_prev=0;
	v->Vo=0;
 
	//high pass filter @cutoff frequency = 0.05 Hz		
	v->Fcutoff=0.05;
 
	// execute 1000 every second
	v->Fs=1000;
}
 
//*********** Function Definition ********//
float filter_rc_fpf(HPF_RC_T*v)
{
	float RC, Coff;
 
	RC = (float)1.0/2.0/PI/v->Fcutoff;
	Coff = RC/(RC + 1/v->Fs);
	v->Vo = (v->Vi - v->Vi_prev + v->Vo_prev ) * Coff;
 
	//update 	
	v->Vo_prev = v->Vo;
	v->Vi_prev = v->Vi;	
	
	return v->Vo;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值