目前,我正在從ECG信號中消除50 Hz電源線干擾。在嘗試陷波濾波器之前,我決定嘗試一個截止頻率低於50赫茲的簡單低通濾波器。下面是我用來製作過濾器的MATLAB代碼:MATLAB濾波器不夠衰減
Fs=500; %Sampling rate in Hz
Ast = 120; %Stopband attenuation
Ap = 1; %Passband ripple
Fp = 30; %Passband end
Fst = 45; %Stopband beginning
Hd=fdesign.lowpass('Fp,Fst,Ap,Ast',Fp,Fst,Ap,Ast,Fs);
d=design(Hd,'butter'); % Design a butterworth filter with the given characteristics
fvtool(d);
濾波器的幅頻響應是:
正如你所看到的,過濾器有大約180 dB的衰減在50赫茲甚至更高的頻率。
現在,我在我的數據上運行此過濾器。這裏的原始數據,在時域和頻域:
這裏應用過濾後的數據:
正如你可以看到,在50赫茲的衰減遠不及濾波器廣告的180 dB。爲了更好地看,這裏的幅度響應,採取了信號的FFT的比值來計算的情節:
顯然,衰減是隔靴搔癢它應該是正處級。這是應該的方式,還是我在執行中做錯了?
在此先感謝您的幫助!