原创 50hz直消大法

2022-5-7 12:35 1130 9 5 分类: MCU/ 嵌入式 文集: matlab

在生物电(心电ECG 脑电EEG 肌电EMG) 测量时需要将人体感应的50HZ工频交流信号去除。工频交流信号通常是以共模干扰的形式出现在信号中。使用高共模抑制的差分放大电路,可以抑制共模干扰。但由于电路无法做到绝对平衡。总会有50HZ工频干扰出现在信号中,工频干扰严重时,有可能会将信号淹没。模拟方法是使用双T形的带阻滤波器接在仪表放大器后级。在频率域滤除工频干扰。由阻容元件和运算放大器组成的带阻滤波器,频率准确度和稳定度不容易保证。另外群延时特性很糟糕。经滤波后的信号会严重失真。高速高精度的ADC引入,可以直接将仪表放大器的输出数字化。使用数字滤波器来滤除50HZ干扰信号。

使用一个sinc函数做测试,sinc函数是频谱特性为矩形的脉冲。测试信号覆盖了0~200hz频带。

混杂有50hz干扰的信号,引入干扰后,信号面目全非了。

使用的采样率需要为50的倍数。用于分析的数据长度为50hz的整数周期。

使用IIR制作的50hz陷波器,对加了50hz干扰的sinc信号滤波,发现确实可以限制50hz干扰,但经过滤波的信号波形失真很大。原因是陷波器非线性相位。

考虑到由三角函数线性叠加特性,经由不同路径进入系统的50HZ干扰,其结果仍然为50HZ干扰,只是幅值和相位会有变化。可以分析采集到的数据频谱,找出50hz对应的幅度和相位。还原出50hz干扰。将采到的信号与还原的50HZ干扰直接相减,可以得到滤除50hz干扰的信号。

实际使用时,仅需要求出50HZ对应的频谱。FFT的频谱分辨率为采样率与FFT点数之比(Fs/Len)。 0位置为信号直流成份,第50*len/Fs点即为50HZ的频率成份。由50hz频率成份可以重构出50hz干扰的幅度及相位。幅度值为频率成份取模/FFT点数*2,相角为频率成份相角的余弦函数。

  1. Fs = 30000; % Sampling Frequency
  2. Fnotch = 50; % Notch Frequency
  3. BW = 1; % Bandwidth
  4. Apass = 40; % Bandwidth Attenuation
  5. [b, a] = iirnotch(Fnotch/(Fs/2), BW/(Fs/2), Apass);
  6. Hd = dfilt.df1sos(b, a); %生成50hz 数字陷波器 带宽 1hz 阻带衰减 40db
  7. len = Fs/10; % 数据长度 100mS
  8. t = 1:len;
  9. tt = -0.04:1/Fs:0.06-1/Fs;
  10. x = 2*sin(2*pi*100*tt)./(2*pi*200*tt); %生成一个sinc函数作为测试信号
  11. x(1201)=x(1200);
  12. n = 1.0*cos(2*pi*50*t/Fs + pi/5); % 50hz noise
  13. q = x + n ; % sinc 信号加上50hz 干扰
  14. figure(1)
  15. plot(t,x,'.g',t,q,'b')
  16. legend('org','with noise');
  17. %使用50hz notching 滤波
  18. qn = filter(Hd,q);
  19. figure(2)
  20. plot(t,x,'r',t,qn)
  21. legend('org','notch filted');
  22. %使用直接消去法
  23. fftq = fft(q,len) %求出信号频谱
  24. p50 = abs(fftq(50*len/Fs+1))/len*2* … cos(2*pi*50*t/Fs+phase(fftq(50*len/Fs+1)));
  25. %找出其中叠加的 50HZ 信号包括幅度和相位
  26. figure(3)
  27. plot(t,x,'r',t,q-p50)
  28. legend('org','remove')

这种方法取名为“50hz直消大法”吧。理论上“50hz直消大法”的幅频特性在50hz-∞,其它频率点为1。相频特性50hz处无法形容,其它频率为0。非常理想。


作者: southcreek, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-408807.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

给作者打赏,鼓励TA抓紧创作!

赞赏支持
点赞 9
赞赏1

文章评论1条评论)

登录后参与讨论

zilong26_893896839 2022-5-25 08:53

谢谢分享
相关推荐阅读
southcreek 2022-05-18 16:31
50hz IIR 滤波的实现
使用fdatool Fs 依据采样率,Apass 选择衰减率,如果选为30db,即为衰减1000倍。并不是衰减率越高越好。而是够用就好。 选择完毕后,按Design Filter 即可生成需要的...
southcreek 2022-04-29 10:02
这个故障是因为连接线太长还是LDO不好?
一块放在远端的电路板,用于放大传感器信号,供电和信号线为一线束,中间经过转换,长度约为300mm。提供5V电压。电路板入口有10uF滤波,加一个磁珠连接LDO,LDO输出比输入略低的电压,供给放大器使...
southcreek 2022-04-07 16:07
仪表放大器单端输出转差分输出
仪表放大器输出一般会连接到ADC进行转换,有的ADC需要接受差分信号。需要将仪表放大器输出的单端信号转换成差分信号。简单的方法是,利用仪表放大器的参考输入端,外接高精度运放,产生一对差分输出。按仪表放...
southcreek 2022-03-24 15:55
低边 MOS管驱动电路
MOS需要工作在开关状态,希望尽可能快地关闭,尽可能快地打开。因为在打开或关闭的过程中,MOS管上会有功耗。虽然MOS是电压驱动,但栅源之间有较大的结电容。在打开时,需要大的充电电流,截止时需要大的放...
southcreek 2022-03-11 15:48
3V 5V电平不兼容引起的故障
看如下设计:晶振产生4M的振荡,送到4040中分频,其中2分频,11分频和12分频输出送到与门中,与门输出大约间隔1ms 0.25ms宽的 2Mhz 脉冲输出。故障是与门输出不正常,示波器测量晶振能输...
EE直播间
更多
我要评论
1
9
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /3 下一条