matlab如何从信号中去除60 Hz Hum电源线噪声
作者:互联网
美国和其他几个国家的交流电流以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的衰减。
过滤信号filtfilt
以补偿滤波器延迟。
使用周期图可以看到已经消除了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
标签:Hz,滤波器,Fs,Hum,openLoop,噪声,60 来源: https://blog.51cto.com/u_15198753/2770836