matlab如何从信号中去除60 Hz Hum电源线噪声

原文链接:http://tecdat.cn/?p=7003

 

美国和其他几个国家的交流电流以60赫兹的频率振荡。这些振荡经常会破坏测量值并且必须减去。

在存在60 Hz电源线噪声的情况下研究模拟仪器输入端的开环电压。电压以1 kHz采样。

load openloop60hertz, openLoop = openLoopVoltage;

Fs = 1000;
t = (0:length(openLoop)-1)/Fs;

plot(t,openLoop)
ylabel('Voltage (V)')
xlabel('Time (s)')
title('Open-Loop Voltage with 60 Hz Noise')
grid

 

 

使用Butterworth陷波滤波器消除60 Hz噪声。  滤波器至少消除了该范围内频率分量的一半功率。

d = designfilt('bandstopiir','FilterOrder',2, ...
               'HalfPowerFrequency1',59,'HalfPowerFrequency2',61, ...
               'DesignMethod','butter','SampleRate',Fs);

绘制滤波器的频率响应。请注意,此 滤波器可提供高达45 dB的衰减。

  

matlab如何从信号中去除60 Hz Hum电源线噪声

过滤信号filtfilt以补偿滤波器延迟。 

  

matlab如何从信号中去除60 Hz Hum电源线噪声

 

使用周期图可以看到已经消除了60 Hz的“尖峰”。

plot(fopen,20*log10(abs(popen)),fbutt,20*log10(abs(pbutt)),'--')
ylabel('Power/frequency (dB/Hz)')
xlabel('Frequency (Hz)')
title('Power Spectrum')
legend('Unfiltered','Filtered')
grid
 

 

 

上一篇:RUDP传输那些事儿


下一篇:bbr草稿