이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

신호에서 60Hz 험 제거하기

미국과 다른 여러 국가에서의 교류는 60Hz의 주파수에서 진동합니다. 이러한 진동은 측정값을 손상시키는 경우가 많으므로 빼야 합니다.

60Hz 전력 공급선으로부터 잡음의 영향을 받고 있는 아날로그 기기의 입력에서 개방 루프 전압을 조사해 보겠습니다. 전압은 1kHz로 샘플링되었습니다.

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

버터워스 노치 필터로 60Hz 잡음을 제거합니다. designfilt를 사용하여 이 필터를 설계합니다. 노치의 폭은 59Hz ~ 61Hz 주파수 구간으로 정의됩니다. 이 필터는 이 범위에 놓여 있는 주파수 성분 전력의 반 이상을 제거합니다.

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

필터의 주파수 응답을 플로팅합니다. 참고로, 이 노치 필터는 최대 45dB의 감쇠량을 제공합니다.

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

주기도를 사용하여 60Hz에서 "스파이크"가 제거되었음을 확인합니다.

[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

참고 항목

| | |

관련 항목