DTMF - Análise de Sistemas de DTMF

14

Click here to load reader

Transcript of DTMF - Análise de Sistemas de DTMF

Page 1: DTMF - Análise de Sistemas de DTMF

FACULDADE ASSIS GURGACZ

FABRICIO STRÖHER DA SILVAMAIKON LUCIAN LENZ

MIGUEL MURINELINILSON CUSTÓDIO JUNIOR

ANÁLISE DE SINAIS E SISTEMAS:DTMF

CASCAVEL2010

Page 2: DTMF - Análise de Sistemas de DTMF

FACULDADE ASSIS GURGACZ

FABRICIO STRÖHER DA SILVAMAIKON LUCIAN LENZ

MIGUEL MURINELINILSON CUSTÓDIO JUNIOR

ANÁLISE DE SINAIS E SISTEMAS:DTMF

Trabalho apresentado na disciplina de Sinais e Sistemas, do curso de Engenharia de Controle Automação, da Faculdade Assis Gurgacz – FAG, como requisito parcial da nota referente ao segundo bimestre.

Docente: Alvaro Juliano Vicente

CASCAVEL2010

Page 3: DTMF - Análise de Sistemas de DTMF

SUMÁRIO 1 INTRODUÇÃO..........................................................................................................04 2 FUNDAMENTAÇÃO TEÓRICA................................................................................05 3 ERROS NOS ALGORITMOS....................................................................................07 4 ANALISE DETALHADA DOS ALGORITMOS.........................................................07

4.1 DTMF.SCE........................................................................................................07 4.2 ANALISEDTMF.SCE.........................................................................................08

5 RESULTADOS OBTIDOS.........................................................................................09 6 OTIMIZAÇÃO............................................................................................................11 7 CONSIDERAÇÕES FINAIS......................................................................................13 8 REFERÊNCIAS BIBLIOGRÁFICAS.........................................................................14

Page 4: DTMF - Análise de Sistemas de DTMF

4

1 INTRODUÇÃO

A partir dos algoritmos DTMF.sce e AnaliseDTMF.sce abaixo, verificar se:

• verificar se os algoritmos cumprem as função de geração e análise de sinais

DTMF;

• testar os algoritmos no Scilab;

• descrever e explicar os algoritmos;

• identificar se há erros nos algoritmos;

• sugerir alterações para aumentar a eficiência dos algoritmos.

DTMF.sceN = [ 1 9 0 ];fr = [ 697 770 852 941 ]; fc = [ 1209 1336 1407 ] ; Fs = 32768; y = []; t = 0:1/Fs:0.25; for d = 1 : length(N) if N(d) == 1 , r = 1; c = 1; end; if N(d) == 2 , r = 1; c = 2; end; if N(d) == 3 , r = 1; c = 3; end; if N(d) == 4 , r = 2; c = 1; end; if N(d) == 5 , r = 2; c = 2; end; if N(d) == 6 , r = 2; c = 3; end; if N(d) == 7 , r = 3; c = 1; end; if N(d) == 8 , r = 3; c = 2; end; if N(d) == 9 , r = 3; c = 3; end; if N(d) == 0 , r = 4; c = 2; end; y1 = sin( 2*%pi*fr(r)*t); y2 = sin( 2*%pi*fc(c)*t); y = [ y ( y1 + y2 )/2 ]; end; wavwrite( y , Fs , 'numero.wav' );

AnaliseDTMF.sceclc;clear;lines(0);xdel;[ y Fs ] = wavread( 'numero.wav' );playsnd( y , Fs );Na = length(y);t = ( 0 : (Na-1) )*(1/Fs);Nb = 0.25/(1/Fs);Nd = round(Na/Nb);f = ( 0 : ( Nb - 1 ))*Fs/Nb;for d = 1 : Nd a = ((d-1)*Nb + 1); b = d*Nb; Y = abs( fft( y(a:b) )/Nb ); p = find( ( 600<f )&( f<1550 ) ); subplot( 2,Nd,d); plot(t(a:b),y(a:b)); xtitle('Digito ' + string(d),'t',''); subplot( 2,Nd,d+3); plot(f(p),Y(p),'.'); plot2d3(f(p),Y(p)) xtitle('Digito ' + string(d),'f','');end;

O primeiro gera um sinal de sinalização de acordo com o padrão DTMF (Dual-Tone

Multi-Frequency), enquanto o segundo tem o intuito de analisar este sinal através de uma

transformada de Fourier.

Page 5: DTMF - Análise de Sistemas de DTMF

5

2 FUNDAMENTAÇÃO TEÓRICA

O padrão DTMF (Dual-Tone Multi-Frequency), Duplo Tom – Múltiplas Frequências

em português, de sinais consiste em gera os tons utilizados nos números de telefone e

celular. Sendo passíveis de identificação pela frequência deste sinal.

Num total de 12 combinações, onde são usados 7 tons em uma matriz 4x3, é

possível identificar todos os dez números mais os símbolos extras de asterisco (*) e tralha

(#).

Nos aparelhos de rádio comunicação, pode ser encontrada ainda uma quarta

coluna que será utilizada para as letras A, B, C e D (figura 1) com o intuito de aumentar o

controle do sistema, existindo desta forma um oitavo tom, além dos sete já citados.

Figura 1 – Frequência de cada tecla (combinação de tons), em vermelho o sistema de 8 tons

A exemplo, a tecla combina as frequências de tom de 941 Hz (linha 1) e 1208 Hz

(coluna 1), combinando os dois sinais (figura 2) obteremos uma resultante final DTMF

(figura 3).

Page 6: DTMF - Análise de Sistemas de DTMF

6

Figura 2 – Frequência de tom da linha 1 (a); frequência de tom da coluna 1 (b)

O algoritmo faz a média entre os dois sinais, no nosso caso utilizando uma

frequência de amostragem de 32768 Hz. Abaixo o sinal combinado pelo algoritmo

DTMF.sce:

Figura 3 – Sinal combinado dos tons da linha e coluna da tecla 1

Page 7: DTMF - Análise de Sistemas de DTMF

7

3 ERROS NO ALGORITMO

Com base na fundamentação teórica, pode-se perceber que o algoritmo fornecido

contém alguns pequenos erros no sistema de varredura de tabela.

Retornando a tabela de frequência linha x coluna (figura 1), nota-se que os valores

de frequência da linha estão invertidos:

fr = [ 697 770 852 941 ];

quando na verdade deveria ser:

fr = [ 941 852 770 697 ];

e ainda um dos valores de frequência do vetor da coluna está errado:

fc = [ 1209 1336 1407 ] ;

o último elemento do vetor na verdade deve ser 1477 Hz:

fc = [ 1209 1336 1477 ] ;

4 ANALISE DETALHADA DOS ALGORITMOS

4.1 DTMF.SCE

O algoritmo DTMF.sce, gera um sinal de onda para cada um dos números do vetor

N criado no início.

Os vetores fr e fc, contém respectivamente os valores de frequência para as linhas

e colunas.

Neste algoritmo, não é montada a matriz DTMF com cada valor de frequência,

somente são criados os valores de linha e de coluna que combinados formariam a matriz.

Com uma taxa de amostragem de 32768 Hz (32768 amostras por segundo) o

algoritmo gera um sinal combinando as ondas senoidais de frequência de linha e de

Page 8: DTMF - Análise de Sistemas de DTMF

8

coluna, de cada correspondente número N da matriz DTMF. Faz-se isso somando as duas

formas de onda e divindo-se por dois para que seja mantida a amplitude da onda.

Por fim, é gerado um arquivo .wav chamado numero.wav, com os valores de onda

e taxa de amostragem.

4.2 ANALISEDTMF.SCE

O algoritmo AnaliseDTMF.sce faz a análise do arquivo numero.wav, reproduzindo

o som de cada onda e os gráficos de sinais.

Faz-se a leitura do arquivo numero.wav, salvando as ondas em um vetor y e a taxa

de amostragem de cada uma em um vetor Fs. O comando playsnd, executa o som de

cada onda a partir desses dados.

As variáveis Na, Nb, Nd e f, armazenam respectivamente: o comprimento do vetor

y que contém as ondas de cada dos sinais fornecidos pelo arquivo numero.wav; o

comprimento do vetor y da onda de cada um dos sinais; a quantidade de sinais; valores

de 4 em 4 até o limite da amostragem por segundo.

Com um laço de repetição, é realizada a mesma função 3 vezes gerando os

gráficos da onda e de espectro de cada um dos sinais.

O processo inicia corrigindo o valor inicial e final de Nb (taxa de amostragem até

0,25 segundos), tratando cada onda como uma continuação da anterior.

Através do valor absoluto da transformada rápida de fourrier dos valores de cada

onda divididos pela quantidade de amostras, é gerado o gráfico de espectro desta onda

que demonstra a frequência de ocorrência da amplitude do sinal para valores entre 600 e

1550 Hz.

É gerado também os gráficos de onda de cada sinal levando-se em consideração o

Page 9: DTMF - Análise de Sistemas de DTMF

9

número de amostras mas também não esquecendo que cada onda é tratada como se

fosse uma continuação da anterior, logo a linha do tempo no gráfico iniciará a partir de

onde terminou o anterior.

5 RESULTADOS OBTIDOS

Os resultados dos algoritmo originais, obviamente são diferentes dos algoritmos

corrigidos com o erros já identificados no terceiro tópico.

A execução dos arquivos originais tem os gráficos abaixo como resultado:

Figura 1 – Gráficos gerados pelo AnaliseDTMF.sce a partir do arquivo criado por DTMF.sce

Corrigindo os erros de DTMF.sce, o arquivo abaixo, DTMFCorrigido.sce é usado

Page 10: DTMF - Análise de Sistemas de DTMF

10

para gerar o arquivo que será analisado para gerar os gráficos mudando o resultado final.

DTMFCorrigido.sce

N = [ 1 9 0 ];fr = [ 941 852 770 697 ]; fc = [ 1209 1336 1477 ] ; Fs = 32768; y = []; t = 0:1/Fs:0.25; for d = 1 : length(N) if N(d) == 1 , r = 1; c = 1; end; if N(d) == 2 , r = 1; c = 2; end; if N(d) == 3 , r = 1; c = 3; end; if N(d) == 4 , r = 2; c = 1; end; if N(d) == 5 , r = 2; c = 2; end; if N(d) == 6 , r = 2; c = 3; end; if N(d) == 7 , r = 3; c = 1; end; if N(d) == 8 , r = 3; c = 2; end; if N(d) == 9 , r = 3; c = 3; end; if N(d) == 0 , r = 4; c = 2; end; y1 = sin( 2*%pi*fr(r)*t); y2 = sin( 2*%pi*fc(c)*t); y = [ y ( y1 + y2 )/2 ]; end;

wavwrite( y , Fs , 'numero.wav' );

Os gráficos a seguir são gerado:

Page 11: DTMF - Análise de Sistemas de DTMF

11

Figura 2 – Gráficos gerados pelo AnaliseDTMF.sce a partir do arquivo criado por DTMFCorrigido.sce

Pode-se notar a diferença principalmente nos gráficos de espectro, o que significa

que os números enviados pelo primeiro algoritmo são diferentes do segundo.

A combinação das ondas pela matriz DTMF é nítida nos gráficos de espectro onde

se destacam dois pontos de grande amplitude em duas faixas de frequência, o que

representa uma maior repetição destes pontos durante a onda, logo a combinação de dois

números da matriz formam onda como era esperado.

6 OTIMIZAÇÃO

Apesar de os algoritmo fornecidos aparentarem leveza e simplicidade, o programa

poderia se tornar ainda mais eficiente se utilizado um algoritmo de Goertzel, ao invés das

Page 12: DTMF - Análise de Sistemas de DTMF

12

transformadas rápidas de fourier que requerem maior processamento.

No entanto a eficiência deste algoritmo limita-se a detecção de algumas poucas

componentes da frequência, quando o este for usado para a análise de toda a onda se

tornará ineficiente pela grande quantidade de multiplicações que necessita fazer.

O algoritmo DTMF.sce ainda pode ser aprimorado reduzindo a quantidade de

comandos necessários para seleção das linhas e colunas de frequências em cada

número do vetor N (em negrito as linhas modificadas):

DTMFCorrigido.sce

N = [ 1 9 0 ];fr = [ 941 852 770 697 ]; fc = [ 1209 1336 1477 ] ; Fs = 32768; y = []; t = 0:1/Fs:0.25; for d = 1 : length(N) if N(d) == 1 , r = 1; c = 1; end; if N(d) == 2 , r = 1; c = 2; end; if N(d) == 3 , r = 1; c = 3; end; if N(d) == 4 , r = 2; c = 1; end; if N(d) == 5 , r = 2; c = 2; end; if N(d) == 6 , r = 2; c = 3; end; if N(d) == 7 , r = 3; c = 1; end; if N(d) == 8 , r = 3; c = 2; end; if N(d) == 9 , r = 3; c = 3; end; if N(d) == 0 , r = 4; c = 2; end; y1 = sin( 2*%pi*fr(r)*t); y2 = sin( 2*%pi*fc(c)*t); y = [ y ( y1 + y2 )/2 ]; end; wavwrite( y , Fs , 'numero.wav' );

DTMFEnxuto.sce

N = [ 1 9 0 ];fr = [ 941 852 770 697 ]; fc = [ 1209 1336 1477 ] ; Fs = 32768; y = []; t = 0:1/Fs:0.25; for d = 1 : length(N) r=int((N(d)-1)/3)+1; if (r==0) r=4; end; c=N(d); while(N(d)>3), c = c - 3 ; end; y1 = sin( 2*%pi*fr(r)*t); y2 = sin( 2*%pi*fc(c)*t); y = [ y ( y1 + y2 )/2 ]; end; wavwrite( y , Fs , 'numero.wav' );

Ao invés de realizar 10 testes para indentificar os números contidos no vetor N, o

algoritmo através de relações aritméticas busca automaticamente os valores destes.

Page 13: DTMF - Análise de Sistemas de DTMF

13

7 CONSIDERAÇÕES FINAIS

O padrão DTMF é largamente utilizado nos sistemas de telefonia por ser prático e

eficiente.

Os algoritmos utilizados geram o sinal combinando 7 tons diferentes para gerar até

12 tons diferentes. Posteriormente um outro algoritmo faz a análise do sinal gerando o

som e gráficos de onda, e espectro capaz de analisar com maior facilidade os tons que

foram combinados anteriormente já que amplitude das duas frequência utilizadas fica

evidenciada nos gráficos.

Ao utilizar a ferramenta fft (fast fourier transform) que realiza uma transformada

rápida de fourier, o algoritmo consegue obter os valores de frequência com significativa

velocidade.

Page 14: DTMF - Análise de Sistemas de DTMF

14

REFERÊNCIAS BIBLIOGRÁFICAS

01. VICENTE, A. J. Trabalho Acadêmico – Sinais e Sistemas, 1. Semestre de 2010. Disponível em: <http://www.fag.edu.br/professores/ajvicente/TA_SS_2010_1S_2B.pdf>.

Acesso em: 18 jun. 2010.

02. Faculdade Assis Gurgacz. MANUAL PARA ELABORAÇÃO E APRESENTAÇÃO DE

TRABALHOS ACADÊMICOS. Disponível em

<http://www.fag.edu.br/academicon/arquivos/manual_trabalhos_academicos.pdf> Acesso

em: 20 jun. 2010.

03. GANTI, R. University of Notre Dame. Implementation of DTMF Encoder, Decoder. Disponível em: <http://www.ccs.unicamp.br/cursos/fee107/download/cap06.pdf>. Acesso:

20 jun. 2010.

04. HAYKIN, S. Sinais e Sistemas. 1. ed. Porto Alegre: Bookman, 2001.

05. LIMA, J. B.; CAMPELLO DE SOUZA, R. M.; OLIVEIRA, H. M.; CAMPELLO DE

SOUZA, M. M. Decodificação de Sinais DTMF via Transformada Aritmética de Fourier. XXI Simpósio Brasileiro de Telecomunicações. Belém: 2009.