신호 및 시스템 - IIR Filter function, LPF, HPF, BPF 제작 및 음성 신호 Filter Processing
- 최초 등록일
- 2008.11.27
- 최종 저작일
- 2019.04
- 9페이지/ 한컴오피스
- 가격 1,500원
소개글
MATLAB의 내부 함수 중에 H = FREQZ(B,A,W)와 동일한 동작을 하는 function을 직접 만드시오. 분모와 분자의 차수가 모두 5차 이상인 임의의 IIR 필터에 대해 FREQZ 함수와 자신이 만든 함수가 동일하게 동작함을 예시하시오.
‘wavrecord’ 함수를 이용하여 본인의 목소리를 8 kHz로 2초간 녹음을 하여, 시간 영역에서의 신호 파형과, 주파수 영역에서의 magnitude response를 그리시오.
목차
설계 과제 1
`freqz` function과 `fr_iir` function의 비교 그래프
‘fr_iir` function의 MATLAB code
설계 과제 3-2
LPF(Lowpass Filter)
본문내용
위 그래프는 음성이 아닌 생활 속의 noise만 녹음시킨 그래프 이다. 주파수 영역에서 보면 -4000Hz, 4000Hz근처에서 0dB이상의 신호가 측정됨을 알 수 있다. 사람이 낼 수 있는 음성 주파수 대역은 340Hz에서 3400Hz 정도이다. 제작한 LPF의 경우 -600Hz부터 600Hz의 사이의 소리를 통과시고 그 이외의 소리를 완전히 제거하지 못하고 감소시키는 정도이기 때문에 -1000Hz이하와 1000Hz이상의 근처 주파수의 소리도 들리기 된다. 따라서 noise는 많이 제거되고 전체적으로 소리가 작아진 음성이 들리게 된다. HPF의 경우 noise영역은 통과시키기 때문에 noise는 제거 되지 못하고 -3000Hz, 3000Hz사이의 소리는 0dB이하로 낮아지기 때문에 noise 부분이 심화된 소리가 들린다. BPF의 경우 LPF비해 noise가 남아 있으나 HPF보다 noise가 적게 들리며, 음성 대역이 대부분 남아있기 때문에 음성이 가장 선명하게 들렸다.
`Filtered Speech` MATLAB code
for n = 1:16000
% FFT을 통해 주파수영역으로 바꾼 16000개의 sample과 LPF의 16000개로 나눠진 값을 for문을 이용하여 각자 곱함으로서 필터링을 구현한다.
LPF(n) = LH(n) * X(n);
HPF(n) = HH(n) * X(n);
BPF(n) = BH(n) * X(n);
end
subplot(2,2,1); plot(f,10*log10(abs(X))); % 필터된 값과 원래 신호를 주파수 영역에서 비교한다.
title(`Frequency Components of Voice`); xlabel(`Frequency(Hz)`); ylabel(`Magnitude(dB)`)
subplot(2,2,3); plot(f,10*log10(abs(LPF)));
참고 자료
없음