개요
WANC에서의 고주파 대역을 필터링 하려고 한다.
아래 왼쪽 사진과 같이 완벽하게 원하는 대역만 살릴수있다면 좋겠지만 실무적으로는 그렇지 못하게 된다.
결과적으로는 오른쪽 사진처럼 passband 와 stopband 사이에 transition band가 존재하게 된다.


이유는 무엇인가?
필터를 걸게되면 초반에 약간의 변형(distortion)이 일어나게 된다.
이게 band의 steepness가 클수록 길어지기 때문에 적당한 steepness를 가지는것이 중요하다.


저역 통과 필터
실습

고주파 대역의 신호는 다른 지진에 대한 것 인가보다.
그래서 인도네시아 지진만을 추출하기 위해서 LPF를 구현하는게 목표이다.
load quakes
[p,f] = pspectrum(quakes);
semilogx(f,db(p,"power"))
legend("HARP","PAX","WANC")
xlabel("Frequency (Hz)")
ylabel("Power Spectrum (dB)")


1
xline(0.1)
2
lowWANC = lowpass(quakes(:,"WANC"),0.1);
lowpass 함수 상당히 신기하다.
코드 한줄만 썼을 뿐인데 시간/주파수 도메인에서의 필터 통과 전/후에 대해서 바로 시각화까지 해주다니

3
quakes.FiltWANC = lowWANC.WANC

필터링된 데이터도 테이블에 추가해줬다.
4
figure
stackedplot(quakes)

좌측사진을 보면 HARP PAX와 FiltWANC가 좀 유사해 보이지만 아직 filt WANC 에 고주파 대역이 남아있어서 진하게 보이는 구간이 있는걸 볼수가 있다. 따라서 2번 코드 필터의 steepness를 좀 올릴 필요성이 있다.
5
lowWANC = lowpass(quakes(:,"WANC"),0.1,"Steepness",0.95);

대역통과 필터
설정 코드
load quakes
[p,f] = pspectrum(quakes);
figure
semilogx(f,db(p,"power"))
legend("HARP","PAX","WANC","Lowpass WANC","Location","best")
xlabel("Frequency (Hz)")
ylabel("Power Spectrum (dB)")
아래 코드로 고주파 대역만 남긴다.
f1 = 2
f2 = 10
bandWANC = bandpass(quakes(:,"WANC"),[f1 f2])

compfilt = timetable(bandWANC.Time,bandWANC.WANC,quakes.FiltWANC,'VariableNames',["Bandpass" "Lowpass"]);
figure
stackedplot(compfilt)
xlim([seconds(2900) seconds(2950)])

저주파 피크가 있을때 마다 고주파 펄스가 발생하는걸 볼수있다.
따라서 저주파 지진(수마트라 지진)이 고주파 펄스(알래스카의 국지 지진)을 일으켰음을 알수 있다.
'이직로그 > MATLAB 스터디' 카테고리의 다른 글
| Signal Generation and Resampling (0) | 2026.02.10 |
|---|---|
| Signal Processing Onramp: 6. 지진예제 - 신호 측정값 (0) | 2026.02.10 |
| Signal Processing Onramp: 4. 지진예제 - 스펙트럼 분석 (0) | 2026.02.05 |
| Signal Processing Onramp: 3. 지진예제 - 신호 전처리 하기 (0) | 2026.02.05 |
| Signal Processing Onramp: 2. 지진예제 - 스펙트럼 분석 워크플로 (0) | 2026.02.05 |