데이터에서 추세 제거하기
R2026b측정된 신호에서 전체적으로 데이터의 기본 특성과 무관한 패턴이 표시될 수 있습니다. 이러한 추세는 데이터 분석에 방해가 되기도 하므로 제거해야 합니다.
추세가 각기 다른 두 개의 심전도(ECG) 신호를 살펴보겠습니다. 심전도 신호는 전원 간섭 같은 방해에 민감합니다. 신호를 불러오고 플로팅합니다.
load("ecgSignals.mat") t = (1:length(ecgl))'; tiledlayout("flow") nexttile plot(t,ecgl) grid on title("ECG Signals with Trends") ylabel("Voltage (mV)") nexttile plot(t,ecgnl) grid on xlabel("Sample Number") ylabel("Voltage (mV)")

첫 번째 플롯의 신호는 선형 추세를 보입니다. 두 번째 신호는 비선형 추세를 보입니다. 선형 추세를 제거하려면 MATLAB® 함수 detrend를 사용하십시오.
dt_ecgl = detrend(ecgl);
비선형 추세를 제거하려면 저차 다항식을 신호에 피팅한 후 빼십시오. 이 경우 다항식 차수는 6입니다. 새 신호 두 개를 플로팅합니다.
opol = 6; [p,s,mu] = polyfit(t,ecgnl,opol); f_y = polyval(p,t,[],mu); dt_ecgnl = ecgnl - f_y; tiledlayout("flow") nexttile plot(t,dt_ecgl) grid on title("Detrended ECG Signals") ylabel("Voltage (mV)") nexttile plot(t,dt_ecgnl) grid on xlabel("Sample Number") ylabel("Voltage (mV)")

추세가 효과적으로 제거되었습니다. 신호에 더 이상 기준선 이동이 없는지 확인합니다. 이제 신호를 추가로 처리할 수 있습니다.