코드 중요한 내용(공유용)

KOKOKU·2023년 12월 2일

#################################################
순서대로 사진 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);


profile
Valuable

0개의 댓글