资源简介
首先用matlab编程仿真50hz的数字滤波器,然后在单片机上用c语言编写数字滤波器,实现50hz工频的滤波,滤波效果很好。

代码片段和文件信息
////////////////////////// 该算法出自文献:用于去除心电信号中工频干扰数字滤波技术.pdf(王镇) //////////////////////////
/////////////////////////////// FIR filter ////////////////////////////////
/////// Band-Pass Transfer function: H1(z)=1/Q^n*(1-z^(-R))^n/(1-z^(-P))^n
/////// Band-Pass Frequence Respose: H1(w)=1/Q^n*sin(R/2*w)^n/sin(P/2*w)^n*exp(-j*(R-P)/2*n*w)
/////// Band-Stop Transfer function: H(z)=z^(n*(R-P)/2)-1/Q^n*(1-z^(-R))^n/(1-z^(-P))^n
/////// Q=R/P
/////// If SampleRate fs=500Hz and Interference Frequency fg=50Hzthen P=fs/fg=10
/////// For a good band-stop and analysis from our tests we set n=2 and R=160then Q=16
/////// so H(z)=z^(-150)-(1/16)^2*((1-z^(-160))/(1-z(-10)))^2
/////// The next step is designing a self-adaptive band-stop filter ???
//////////////////////////////////////////////////////////////////////////
/************************************** Head Files 头文件 **********************************/
#include
#include
#include
#include
#include
/************************************** 端口及器件地址设置 *********************************/
#define PCF8591 0x90 //8bit-AD-DA集成芯片PCF8591的地址; PCF8591地址=1001-A2-A1-A0-R/W R=1W=0;
//I2C写数据:发送地址-发送控制字-发送数据 I2C读数据:发送地址-读数据
/************************************** 头函数的声明 ***************************************/
bit ADC_Input_set_addr_contr(unsigned char addrunsigned char contr); //准接收ADC数据-----------------实现
unsigned char ADC_Input_RcvByteData(unsigned char addr); //接收ADC数据-------------------实现
void Start_Timer(void); //设置定时器--------------------实现
bit Send_data_to_DAC(unsigned char addrunsigned char contr unsigned char data); //将8位数据发送到DAC------------实现
void Band_Stop_Proc(void); //带阻滤波处理------------------实现
/************************************* Variable List 参数设置 ******************************/
//////// fs必须是fg的正整数倍
//fs=250; %sample rate (can change)
//fg=50; %interference frequency (can change)
//n=2; %const (don‘t change)
//R=160; %what meaning ? (can change)
//P=fs/fg; %what meaning ? (const) (decided by fs and fg)
//Q=R/P; %what meaning ? (const) (decided by R and P)
const unsigned int fs=500; //为了达到实时性要求,fs<5kHz 为了不改变系数,fs<2500Hz 要求fs是fg的正整数倍
const unsigned int fg=50;
const unsigned int n=2;
const unsigned int R=160;
const unsigned int P=fs/fg;
const unsigned int Q=R/P;
/************************************ 变量定义 **********************************************/
static unsigned int data_addr; //数据序列的地址
static unsigned int xdata y[nfilt]={0}; //滤波后数据
static unsigned int xdata x[nfilt]={0}; //滤波前数据
bit DataAddrLargerThan_nfilt_flag; //前nfilt个数据处理不同于后面的数据处理,这里设置转变标志
///////////// Band-Pass /////
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3500 2013-06-04 14:56 50Hz陷波器\pl_removal.m
文件 5142 2013-05-23 00:19 50Hz陷波器\BandStop.m
文件 1398 2013-05-12 11:07 50Hz陷波器\ideal_pl_main.m
文件 2795 2013-06-03 19:08 50Hz陷波器\myfilter.m
文件 5056 2013-06-03 21:08 50Hz陷波器\bandstopnew\BandStop.m
文件 3992 2013-06-03 21:10 50Hz陷波器\bandstopnew\myfilter.m
文件 5099 2013-06-04 01:17 50Hz陷波器\bandstopnew\inter_removal.c
文件 3037 2013-06-04 14:43 50Hz陷波器\bandstopnew\pl_removalnew4.m
文件 1552 2013-05-12 11:10 50Hz陷波器\bandstopnew\Band_Stop.m
文件 189 2013-05-11 21:03 50Hz陷波器\bandstopnew\ideal_pl.m
文件 12710 2013-05-15 21:58 50Hz陷波器\interf_removal.c
文件 13118 2013-05-15 21:55 50Hz陷波器\BandStop.c
文件 321828 2013-05-12 17:07 50Hz陷波器\用于去除心电信号中工频干扰数字滤波技术.pdf
文件 2389035 2013-05-08 16:28 50Hz陷波器\D+自适应相干模板法在心电图机中应用的一种改进算法.pdf
目录 0 2013-06-03 19:09 50Hz陷波器\bandstopnew
目录 0 2002-01-01 21:09 50Hz陷波器
----------- --------- ---------- ----- ----
2768451 16
相关资源
- 单片机c语言源程序(51定时器 八个按
- 用单片机控制蜂鸣器播放旋律程序(
- 合泰触摸单片机BS84B08C实际应用代码上
- 基于STM32单片机的心率体温测量仪
- 九齐单片机源码
- 单片机PID控制(C语言)
- 基于单片机的交通灯设计.doc
- C51单片机技术教程(304页)
- C51单片机交通
- 单片机C语言实战开发108例
- stm32库函数代码自动生成器V1.2
- 单片机电子密码锁
- 单片机程序(附初级、中级、高级共
- 按键可调万年历(单片机程序)
- 51单片机数码管四层电梯模拟系统
- 基于51单片机的温控系统
- 51单片机protues文件(KST-51.DSN)
- 51单片机交通灯设计
- 基于51单片机的简易计算器
- 单片机按键长按
- 基于51单片机多路超声波报警设计
- 51单片机红外智能小车
- 单片机控制绕线机.c
- qt上位机采集51单片机温湿度数据
- AVR单片机SPI通讯程序 (C语言源代码)
- BP神经网络C语言工程当前最终版
- 汉字取模软件----单片机使用必备
- 基于51单片机射频RFID卡考勤上课上班
- 可以在单片机上计算的BP神经网络C语
- 基于51单片机的888光立方设计.rar
评论
共有 条评论