exponenta event banner

Удаление Hum 60 Гц из сигнала

Переменный ток в США и ряде других стран колеблется с частотой 60 Гц. Эти колебания часто повреждают измерения и должны быть вычтены.

Изучите напряжение разомкнутого контура на входе аналогового прибора при наличии шума линии питания 60 Гц. Напряжение отбирается на частоте 1 кГц.

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

Figure contains an axes. The axes with title Open-Loop Voltage with 60 Hz Noise contains an object of type line.

Устраните шум 60 Гц с помощью фильтра Butterworth. Использовать designfilt для проектирования фильтра. Ширина надреза определяется интервалом частот от 59 до 61 Гц. Фильтр удаляет по меньшей мере половину мощности частотных составляющих, лежащих в этом диапазоне.

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

Постройте график частотной характеристики фильтра. Следует отметить, что этот фильтр-пробка обеспечивает затухание до 45 дБ.

fvtool(d,'Fs',Fs)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line.

Фильтрация сигнала с помощью filtfilt для компенсации задержки фильтра. Обратите внимание, как колебания значительно уменьшаются.

buttLoop = filtfilt(d,openLoop);

plot(t,openLoop,t,buttLoop)
ylabel('Voltage (V)')
xlabel('Time (s)')
title('Open-Loop Voltage')
legend('Unfiltered','Filtered')
grid

Figure contains an axes. The axes with title Open-Loop Voltage contains 2 objects of type line. These objects represent Unfiltered, Filtered.

Используйте периодограмму, чтобы увидеть, что «пик» на частоте 60 Гц устранен.

[popen,fopen] = periodogram(openLoop,[],[],Fs);
[pbutt,fbutt] = periodogram(buttLoop,[],[],Fs);

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

Figure contains an axes. The axes with title Power Spectrum contains 2 objects of type line. These objects represent Unfiltered, Filtered.

См. также

| | |

Связанные темы