• 大小: 2.42MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-07
  • 语言: C/C++
  • 标签: 单片机  

资源简介

首先用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


评论

共有 条评论