본문 바로가기
Theory/DSP

[MATLAB 실습 10] DTMF 디코더 구현 (22.11.30)

by Orangetasteboy 2023. 6. 14.

아날로그 DTMF 전화의 신호 송수신은 전화기 키패드 숫자를 인코딩함으로써 이루어진다. 두 주파수 FH, FL의 정현파신호의 합을 송신함으로써 심볼을 전송할 수 있다. 이런 방식을 dual tone multi frequency(DTMF)라 부른다. 전화국에서 보내진 DTMF 신호의 두 개의 주파수를 인식하여 보내어진 숫자를 인식한다.


1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 A
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 # D

전화기 키패드의 숫자를 누르면

신호가 만들어지고 이 신호를 전화국에 전송된다. 전화국에서는 이 신호를 8000 Hz로 샘플링하여 신호 분석을 통해 숫자를 구별해 낸다. 전화국에 수신된 DTMF 신호의 샘플링한 데이터는 dtmf1.wav, dtmf2.wav, dtmf3.wav, dtmf4.wav에 저장되어 있다. 4개의 파일의 각 신호를 분석하여 숫자를 인식하는 과정을 수행하시오.

 

1. 저장되어 있는 데이터를 읽어온 후 윈도우 함수(rectangular window)를 곱하고 DFT를 수행함으로써 보내진 DTMF 신호의 주파수를 결정하고 해당 숫자를 결정하시오. 데이터를 적절히 잘라 사용하시오.

 

[N=100]

[N=200]

[N=500]

2. 주파수를 구별하기 위한 최소한 데이터의 크기(N) DFT point (L)를 결정하시오.

 

데이터의 크기는 N=1200이고, DFT point L=1000이다.

 

3. dtmf1의 숫자를 결정하였다면 해당 주파수를 통과시키는 fdatool을 사용하여 2개의 IIR(Infinite Impulse Response) BPF 필터1, BPF필터2를 설계하시오.

 

[BPF필터 1]

[BPF필터 2]

4. dtmf1신호를 두 개의 BPF필터1, BPF필터2를 통과시킨(filter 또는 sosfilt 사용) 출력 신호의 파형을 그리고 해당 신호의 스펙트럼을 그리시오.

[출력 신호의 파형]

[신호의 스펙트럼]

5. dtmf3신호를 BPF필터1, BPF2필터를 통과시킨 출력 신호의 파형을 그리고 해당 신호의 스펙트럼을 그리시오.

dtmf3dtmf1f1, f2가 같다. 따라서 같은 필터를 사용하여 진행하였다.

 

[출력 신호의 파형]

[신호의 스펙트럼]

댓글