分享

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

 拓端数据 2020-06-04

原文链接:http:///?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的衰减。

 

过滤信号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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多