tag 标签: 50hz陷波

相关博文
  • 热度 6
    2022-5-7 12:35
    5306 次阅读|
    1 个评论
    50hz直消大法
    在生物电 ( 心电 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 ,相角为频率成份相角的余弦函数。 Fs = 30000; % Sampling Frequency Fnotch = 50; % Notch Frequency BW = 1; % Bandwidth Apass = 40; % Bandwidth Attenuation = iirnotch(Fnotch/(Fs/2), BW/(Fs/2), Apass); Hd = dfilt.df1sos(b, a); %生成50hz 数字陷波器 带宽 1hz 阻带衰减 40db len = Fs/10; % 数据长度 100mS t = 1:len; tt = -0.04:1/Fs:0.06-1/Fs; x = 2*sin(2*pi*100*tt)./(2*pi*200*tt); %生成一个sinc函数作为测试信号 x(1201)=x(1200); n = 1.0*cos(2*pi*50*t/Fs + pi/5); % 50hz noise q = x + n ; % sinc 信号加上50hz 干扰 figure(1) plot(t,x,'.g',t,q,'b') legend('org','with noise'); %使用50hz notching 滤波 qn = filter(Hd,q); figure(2) plot(t,x,'r',t,qn) legend('org','notch filted'); %使用直接消去法 fftq = fft(q,len) %求出信号频谱 p50 = abs(fftq(50*len/Fs+1))/len*2* … cos(2*pi*50*t/Fs+phase(fftq(50*len/Fs+1))); %找出其中叠加的 50HZ 信号包括幅度和相位 figure(3) plot(t,x,'r',t,q-p50) legend('org','remove') 这种方法取名为“ 50hz 直消大法”吧。理论上“ 50hz 直消大法”的幅频特性在 50hz 处 - ∞,其它频率点为 1 。相频特性 50hz 处无法形容,其它频率为 0 。非常理想。