#################################################
순서대로 사진 Canva에 업로드하기
#################################################
3kHz 필터링 알고리즘
% 주파수가 3 kHz 주변에 해당하는 부분을 선택
target_frequency = 3000;
tolerance = 50; % 주파수의 허용 오차 범위
target_range = frequencies > target_frequency - tolerance & frequencies < target_frequency + tolerance;
% 3 kHz 주파수 대역만 남기고 나머지는 0으로 설정
X(~target_range) = 0;
(3kHz)필터링 된 신호의 스펙트로그램
filtered_signal(1:fs) = 0; % 0초부터 1초까지의 값은 zeros로 설정
[S_filtered, f_filtered, t_filtered] = specgram(filtered_signal, 1024, fs, hann(1024), 512);
imagesc(t_filtered, f_filtered, 10*log10(abs(S_filtered))); % dB 단위로 변환하여 이미지로 표시
axis xy; % Y 축을 뒤집어 올바른 방향으로 표시
title('3 kHz 주파수 성분만 남긴 신호의 스펙트로그램');
xlabel('Time [sec]');
ylabel('Frequency [Hz]');
colorbar; % 컬러바 추가
(1kHz to 2kHz LPF) 필터링 알고리즘
lowcut_upward = 930;
highcut_upward = 2070;
filter_range_upward = (frequencies > lowcut_upward & frequencies < highcut_upward) | ...
(frequencies > (fs - highcut_upward) & frequencies < (fs - lowcut_upward));
(5kHz to 3kHz HPF) 필터링 알고리즘
lowcut_downward = 3420;
highcut_downward = 5000;
filter_range_downward = (frequencies > lowcut_downward & frequencies < highcut_downward) | ...
(frequencies > (fs - highcut_downward) & frequencies < (fs - lowcut_downward));
(1kHz to 2kHz LPF) 범위 밖 모두 0값으로 만든 후 iift(역푸리에변환)
X_filtered_upward = X;
X_filtered_upward(~filter_range_upward) = 0;
filtered_signal_upward = ifft(X_filtered_upward);
(5kHz to 3kHz HPF) 범위 밖 모두 0값으로 만든 후 iift(역푸리에변환)
X_filtered_downward = X;
X_filtered_downward(~filter_range_downward) = 0;
filtered_signal_downward = ifft(X_filtered_downward);