Переменный ток в США и ряде других стран колеблется с частотой 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

Устраните шум 60 Гц с помощью фильтра Butterworth. Использовать designfilt для проектирования фильтра. Ширина надреза определяется интервалом частот от 59 до 61 Гц. Фильтр удаляет по меньшей мере половину мощности частотных составляющих, лежащих в этом диапазоне.
d = designfilt('bandstopiir','FilterOrder',2, ... 'HalfPowerFrequency1',59,'HalfPowerFrequency2',61, ... 'DesignMethod','butter','SampleRate',Fs);
Постройте график частотной характеристики фильтра. Следует отметить, что этот фильтр-пробка обеспечивает затухание до 45 дБ.
fvtool(d,'Fs',Fs)
Фильтрация сигнала с помощью filtfilt для компенсации задержки фильтра. Обратите внимание, как колебания значительно уменьшаются.
buttLoop = filtfilt(d,openLoop); plot(t,openLoop,t,buttLoop) ylabel('Voltage (V)') xlabel('Time (s)') title('Open-Loop Voltage') legend('Unfiltered','Filtered') grid

Используйте периодограмму, чтобы увидеть, что «пик» на частоте 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

designfilt | filtfilt | FVTool | periodogram