资源简介
首先用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语言程序设计与应用——基
- 合泰单片机C语言教程
- 基于单片机的多路温控系统
- 基于单片机的LED点阵显示屏设计16*3
- 单片机C语言库 STC89C51/52 AT89C52/51
- stc89c52单片机控制TC35模块收发短信接
- MSP430系列程序,各种例程。
- MSP430系列单片机实用C语言程序设计及
- MCS-51单片机原理与应用(C语言版.
- 基于单片机的太阳能电池板自动对光
- STC15单片机ESP8266开发试验程序含原理
- 基于51单片机自动售货机
- 基于单片机的温控流水灯proteus仿真图
- 单片机c语言和汇编语言混合编程详解
- 单片机c语言程序设计实训100例,基于
- 51单片机C语言(350例)Proteus仿真和代
- 手把手教你学51单片机-C语言版 宋雪松
- 新概念51单片机C语言教程-入门、提高
- 单片机C语言编程与
- 32位单片机C语言编程:基于PIC32中文
- 经典教材单片机的C语言应用程序设计
- 51单片机及其C语言程序开发.pdf
- 富士通单片机开发最全资料.zip
- 基于单片机控制的LED点阵屏 含设计报
- 900多个51/52单片机仿真大全,包含源程
- C51单片机C语言400例.zip
- PIC单片机C语言程序设计完整教程,值
- 单片机C语言程序设计实训100例——基
- 51单片机C语言400例
- 51单片机仿真300
评论
共有 条评论