Sie sind auf Seite 1von 31

UNIVERSIDADEFEDERALDEOUROPRETO

DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

RelatrioFinal

ProcessamentoDigitaldeSinais

Trabalho apresentado como parte das


exigncias do Prof. Fabricio Erazo da
matria de Processamento Digital de
Sinais pelos discentes Philipe Menezes e
PauloOtviodeOliveiraRumo.

JooMonlevade,05deFevereirode2014.

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Resumo

Com o objetivo de criar uma ferramenta com aplicaes funcionais


utilizando da teoria estudada durante o semestre da matria de Processamento
Digital de Sinais, propusemos implementar, utilizando apenas MatLab como
propulsor principal, um afinador de violo. Durante a implementao desta
ferramenta, vrios conceitos de processamento digital foram reforados, alm de
atingir nosso objetivo, creio que podemos afirmar que experienciamos vrios dos
processos que estudamos em classe. Alguns dos conceitos que ficaram claros
durante o processo que entende todo o processo relacionado implementao
do cdigo que viemos apresentar atravs deste relatrio, so: Filtros digitais, a
transformada rpida de Fourier, quantizao, conceitos relacionados a resoluo
espectral e sua influncia na avaliao de resultados, influncia de rudo externo e
como tratalos, as dificuldades de tratar um ou mais sinais, que apresentam
elementosharmnicosquecoincidem(casoqueviremosaobservarmaistarde).

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Sumrio

1.Introduo.........................................................................................................4
1.1MatLabesuafunes...................................................................................4
1.2Prototipoparaanlisededados.................................................................8
2.FiltrosDigitais............................................................................................................10
2.1.ComparaodefiltrosIIR..........................................................................12
3.EstimaoEspectralpormeiodaFFT..................................................................19
4.Mximalocal..............................................................................................................20
5.Elementosdeafinao.............................................................................................23
6.AfinadorVirtualparaviolo......................................................................................25
7.Resultadosediscusso...........................................................................................29
8.Concluso..................................................................................................................29
9.Referncias................................................................................................................30

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

1.Introduo

De incio, as principais informaes que temos que coletar como fazer a


anlise de um sinal de udio utilizando o MatLab, o segundo desafio seria como
saber que o sinal captado est afinado e quo confivel este sinal, identificar as
quantidades de rudo que podem atrapalhar as anlises, e como implementar um
gatilho para nossas funes, j que de incio, qualquer rudo pode ativar a funo
responsvel por plotar o ponteiro usado como referncia para o processo de
afinao, em seguida, diminuir o tempo de processamento para poder atender o
usurio com um tempo de resposta eficiente. Para melhor entendimento das
informaes que sero listadas, recomendado ter em mos os 4 arquivos que
integramestetrabalho(Afinador.m,GRAVAR.m,GRAVAR2.mePLOT.m).

1.1MatLabesuafunes

As funes que sero listadas abaixo so todas aquelas que foram


utilizadas para a implementao dos cdigos usados, alm de uma breve
explicaodeseupapel.

drawnow Quando um comando, como plot, ou stem executado,


o MatLab espera at que todo o cdigo seja executado para ento
iniciar o evento draw, evento responsvel por desenhar o grfico
em questo. O comando drawnow faz com que o MatLab pause
sua execuo normal, plota o grfico listado, e ento resume sua
execuo normal. Esta funo essencial para que haja uma
resposta grfica em tempo real, ja que o usurio precisa de uma
referncia dinmica enquanto o MatLab continua executando suas
linhasdecdigo.

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

delete A funo delete(figura01) , ir deletar uma figura01


qualquer.
audiorecorder 'audiorecorder(Fs, NBITS, NCHANS)' cria um
objeto 'audiorecorder' com uma frequncia de amostragem Fs em
Hertz, com 2
NBITS
nveis de quatizao e NCHANS canais de audio.
Ou seja, varivel 'r' qualquer que recebe 'audiorecorder' tera um
tamanhoN=Fs.s(Fsamostrasacadasegundo).

ComovistoemGRAVAR2.m:

linha8

r=audiorecorder(Fs,8,1)

linha39

record(r)
pause(1)
stop(r)

data =getaudiodata(r,'double')

record e stop Usados em conjunto com um objeto audiorecorder,


record inicia a captura de dados num objeto audiorecorder, e
stopparaestaaquisiodedados.

fdesign D = fdesign.<resposta> retorna uma srie de


especificaes que podem ser usadas para criar um filtro definido
por 'resposta', como passabaixo, passaalto, passafaixa, dentre

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

vriosoutros.

Este comando cria coeficientes para o filtro definido e associa uma


estruturaparticularaestescoeficientes.

ComovistoemGRAVAR2.m:

linha14

fori=1:6
D(i) = fdesign.bandpass('N,F3dB1,F3dB2,Ap', 10,
Freqs(i)50,Freqs(i)+50,0.5,Fs)
end

*Especificaes de um filtros passa faixa centrados nas


frequnciasdeinteresse,deordem10eripplede0.5.

linha18

switch(NOTA)

case'E1'
Hd=design(D(1),'cheby1')
case'A2'
Hd=design(D(2),'cheby1')
case'D3'
Hd=design(D(3),'cheby1')
case'G4'
Hd=design(D(4),'cheby1')
case'B5'
Hd=design(D(5),'cheby1')
case'E6'
Hd=design(D(6),'cheby1')
end

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

*Associando os coeficientes criados por fdesign estrutura de um


filtrochebyshevdotipo1atravsdafunodesign.

design Usado em conjunto com fdesign para especificar um


determinado filtro design(M,D), com um mtodo D usando as
especificaesM.

filterfilter(A,B)filtraosinalBusandoofiltroA.

fft Funo conhecida por rodar um algoritmo que executa a


transformada rpida de um sinal X qualquer que seja passado
comoparmetro.

ComovistoemGRAVAR2.m:

linha49

y=abs(fft(data)/length(data))

findpeaks pks = findpeaks(x) encontra os picos locais no vetor x,


um pico local definido como a amostra maior dentre cada 3
valoresvizinhoscomparados.

Quando usada a notao [pks, locs] = findpeaks(x), alm dos picos


'pks', a funo tambm retorna o ndice 'locs' do vetor x onde os
picossoencontrados.

ComovistoemGRAVAR2.m:

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

linha51

[pks,locs]=findpeaks(2*abs(y),'minpeakdistance',Fs
/2)

*O parmetro minpeakdistance tambm pode ser usando quando


setemointuitodeespecificaradistnciamnimaentrecadapico.

1.2Prototipoparaanlisededados

Sendo como combustvel da necessidade de conhecer o comportamento


de sinais de udio tanto no tempo como na frequncia, fomos impulsionados a
desenvolver um cdigo que nos permitisse analisar graficamente o
comportamentodetaissinais.
O cdigo leva o nome de GRAVAR.m, pelo fato de que sua principal
funo era gravar um sinal qualquer de audio e plotar grficos para sua forma no
tempoefrequncia.EstecdigosetornouumprottipoparaGRAVAR2.m.
Sendo definida uma frequncia de amostragem Fs = 44100Hz (Uma das
frequncias de amostragem padro para arquivos de udio do Windows), 1
minuto de udio grava utilizandose do prprio microfone padro do
computadordousurio.

record(r)
pause(1)
stop(r)
data =getaudiodata(r,'double')

Seguido de duas funes, onde cada uma delas tem como objetivo plotar
osinalarmazenadonavariveldata.
L=length(data)

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

t=(0:L1)*T
subplot(211)plot(t(1:L),data(1:L))
axis([010.50.5])
drawnow

NFFT=2^nextpow2(L)
y=fft(data,NFFT)/L
f=Fs/2*linspace(0,1,NFFT/2+1)
subplot(212)plot(f,2*abs(y(1:NFFT/2+1)))
axis([02205000.1])
drawnow

Figura01Prototipodeaquisio.(Aquisiodeumassobio).

Algumas das caracteristicas que se pode notar a partir das anlises que
foram feitas com o prototipo de aquisio so importantes para o
desenvolvimento do trabalho como um todo. De fato, o prototipo de aquisio foi
utilizado como ferramenta auxiliar at as fases finais do trabalho. O
comportamento de uma corda de violo, quando tocada, bastante peculiar.

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Podese observar com ajuda do prototipo que, a partir do momento em que uma
corda tocada, a energia se espalha pelo segmento da corda e as componentes
harmnicas do sinal so mais evidentes, e a partir de alguns instantes, a energia
do sinal comea a se esvaecer, a componente espectral da frequncia tambm
diminuiemamplitude.
A concluso que em questo de qualidade, o sinal s bom para
anlise por alguns instantes que so os instantes iniciais, logo aps uma corda
ser tocada. E tambm decidimos definir que uma componente na frequncia s
importante para nossas anlises se tal tem uma amplitude mnima K = 0.01 (Que
iremos chamar de Pico de Threshold) uma componente na frequncia com
amplitude menor pode representar rudo, e no podemos levar em considerao
tais valores, pois mesmo aps a filtragem do sinal, o sinal ainda exibe
componentesprovenientesderudo.

2.FiltrosDigitais

No processamento de sinais o papel do filtro remover partes


indesejveis do sinal, como rudos ou simplesmente extrair partes importantes do
mesmo,comocomponentesdecertabandadefreqncia.
O filtro analgico utiliza circuitos eletrnicos analgicos feitos basicamente
de resistores, capacitores e amplificadores operacionais. Muitos destes filtros
so largamente usados em aplicaes como: reduo de rudo, realce de sinal de
vdeo,equalizaogrficaemsistemashifi,entreoutros.
Hoje em dia, entretanto, temos a preciso dos filtros digitais. Estes tipos
de filtros utilizam um processador digital para realizar clculos numricos em
cima de amostras de sinal. Atravs da entrada de um sinal analgico, um
conversor analgico digital (ADC) realiza a converso deste sinal para ser lido e
tratado pelo DSP. Este ento fica encarregado de realizar os clculos
necessrios para fazer a filtragem, multiplicando os valores da entrada por
constantes e somando os produtos resultantes, alm de utilizar tcnicas

10

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

matemticas, como Transformadas de Fourier. Caso seja necessrio, estes


valores que agora representam o sinal filtrado, podem ser convertidos atravs de
umconversordigitalanalgico(DAC).
Utilizar um filtro digital em DSP tem inmeras vantagens perante o filtro
analgico. Entre elas est o fato dos filtros digitais serem programveis, ou seja,
podese durante uma operao armazenar os dados na memria do
processador, por exemplo. Os filtros analgicos, geralmente compostos por
componentes ativos, esto sujeitos a variaes devido a alteraes de
temperatura ou devido a outros componentes. Variaes cujos filtros digitais no
estosujeitosasofrer,oqueostornammuitomaisestveis.
Em contra parte aos filtros analgicos, os filtros digitais suportam uma
larga escala de trabalho em sinais de baixa freqncia. Com o avano da
tecnologia dos DSPs a cada dia temse utilizado e aprimorado filtragens digitais
tambm em alta freqncia, principalmente com ondas de rdio, que
anteriormenteserarealizadaatravsdafiltragemanalgica.
Outra caracterstica importante dos filtros digitais em DSPs a
capacidade deste se adaptar automaticamente caracterstica de cada sinal, o
queostornamuitomaisversteisnoprocessodefiltragem.
De modo geral, o modo de implementar um filtro digital pela convoluo
do sinal de entrada pela resposta ao impulso do filtro. Todo filtro linear pode ser
implementadodestamaneira.
Um outro modo de fazer filtros digitais, chamado de recurso. Para
implementar um filtro recursivo por uma convoluo primeiro necessrio calcular
a resposta ao impulso deste filtro. Esta resposta muitas vezes muito longa, mas
pode ter seus valores ignorados quando os valores da sua amplitude caem a
valores comparveis com o rudo do sistema. Por causa desta caracterstica,
filtros recursivos so tambm chamados de filtros IIR Infinite Impulse
Response. Em comparao, filtros implementveis por convoluo so
chamadosdefiltrosFIRFiniteImpulseResponse.

11

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

2.1ComparaodefiltrosIIR

Uma possibilidade para filtrar os sinais desejados durante o processo de


afinao, so os filtros IIR, estes filtros usam como modelo metodos que
discretizam filtros analgicos conhecidos, como, por exemplo, o filtro do tipo
Butterworth, e o Chebyshev, que so discretizados a partir de processo bilinear
ouimpulsoinvariante.
Felizmente, o MatLab vem equipado com funes que definem os
coeficientes denominadores e numeradores da funo de transferncia de um
filtrodigitaldefinidopelousurio.
Usando estas ferramentas disponveis no MatLab, fizemos a comparao
de trs possibilidades de filtros IIR disponveis nos pacotes do MatLab, eles so o
Butterworth,ChebyshevtipoIeofiltroElptico.
Usamos como um parmetro de referncia os efeitos dos filtros sobre um
sinaldeumadeterminadacordadoinstrumentocordofoneUkulele:

Figura02LdeumUkulele(440Hz)

12

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Figura03PicodoespectrodoLdeumUkulelecomamplitudede0.02483.

Utilizandodasfunesfdesignedesign,definimosumfiltrodotipoElptico
deordemn=4,comatenuaomnimanabandadecorte=100dBeripplena
bandadepassagemdeRp=0.5:

wc=[(390/(Fs/2))(490/(Fs/2))]
n=K*4
Rp=0.5
Rs=100

[b,a]=ellip(n,Rp,Rs,wc)

hfvt3=fvtool(b,a,'FrequencyScale','log')
legend(hfvt3,'FunodeTransferncia','ZPKDesign')

AfunodoMatLabfvtool,aFilterViewTool,possibilitaavisualizaode
certofiltroHdoudecertafunodetransfernciaquerepresenta
matemticamenteaarespostafrequnciadeumfiltrocomdenominadorae
numeradorb.

13

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Figura04RespostafrequnciadeumfiltroElptico

As primeiras caractersticas que podemos observar sobre o filtro IIR


Elptico o comportamento da fase que bastante irregular, mudando
abruptamente nos pontos de onde primeiros lbulos laterais comeam a ser
observados. Mesmo que a atenuao nas frequncias 390Hz e 490Hz
(frequncias definidas como frequncias de corte) seja satisfatria, ocorre que o
ganho de banda passante bastante instvel, podemos observar deformaes
claramentevisveisnotopodabandapassante(aocentrodafigura04).

Figura05Sinalfiltradoecomponenteespectralpsfiltragem(usandoumfiltro
IIRElptico)

14

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Podemos observar que a nota L ( direita na figura 05) evidentemente


mais parecida com uma senide, do que quando observada anteriormente (figura
02). Porm, devido instabilidade observada na banda passante do filtro Elptico,
o pico localizado no na frequncia 440 do espectro do sinal sonoro agora
apresenta um valor igual a 0.2241, o que antes era visto como sendo 0.2483.
Tambm valido notar que o filtro Elptico se torna altamente instvel a partir da
ordemn=6.
Agora vamos definir um filtro do tipo Butterworth de ordem 10, com uma
banda passante entendida entre 390Hz e 490Hz, como visto anteriormente para o
filtroElptico:

D=fdesign.bandpass('N,F3dB1,F3dB2',K*10,Freqs50,
Freqs+50,Fs)
Hd=design(D,'butter')

hfvt2=fvtool(Hd,'FrequencyScale','log')
legend(hfvt2,'FunodeTransferncia','ZPKDesign')

Figura06RespostafrequnciadeumIIRusandoomodelo
Butterworth

15

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

A resposta frequncia do filtro acima bastante parecida com a


resposta frequncia dos filtros analgicos, fase com caractersticas lineares, a
atenuao/amplificao da banda passante constante e igual a 0dB durante
toda a largura de banda passante. Um olhar mais atento pode denunciar que, nas
frequncias caractersticas do filtro (as frequncias de corte 390Hz e 490Hz), no
so especificamente os pontos onde a transio de banda passante para banda
nopassante se inicia. De fato, de se esperar que nas frequncias 390Hz e
490Hz, exista uma atenuao de aprximadamente 3dB, uma caracterstica dos
filtrosanalgicosquefoiherdada.

Figura07NotaldoUkulelefiltradaporumIIRusandoummodeloButterworth,esua
componentenafrequncia.

Assim como na situao do filtro visto anteriormente, existe uma pequena


atenuao nos valores de amplitude espectral do sinal sonoro filtrado, mas
podemos confiar mais na atuao do filtro Butterworth, pois neste caso, no
houve atenuao alguma na banda passante, encontramos um pico com
amplitude de 0.2483, versus a amplitude do pico anterior a filtragem, que
mostrava ser 0.2483. Ou seja, a fidelidade do sinal nas frequncias em que
estamosinteressadosextremadepoisdoprocessodefiltragem.
Agora, vamos utilizar um modelo Chebyshev do tipo I, com ripple mxima
na banda passante de 0.5dB, ordem 10, mesma usada no Butterworth visto

16

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

anteriormente e banda passante igual a banda passante dos dois filtros usados
anteriormente.
D=fdesign.bandpass('N,F3dB1,F3dB2,Ap',K*10,Freqs50
,Freqs+50,0.5,Fs)
Hd=design(D,'cheby1')

hfvt=fvtool(Hd,'FrequencyScale','log')
legend(hfvt,'FunodeTransferncia','ZPKDesign')

Figura08RespostafrequnciadeumIIRusandoomodeloChebyshevdotipoI

Figura09NotaldoUkulelefiltradaporumIIRusandoummodeloChebyshev,esua
componentenafrequncia.

17

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Existem algumas diferenas suts entre o filtro Chebyshev e o Butterworth,


mas o que mais bvio e necessita de menos esforo para ser observado que
o inicio da transio do Chebyshev mais inclinado que o Butterworth, ou seja, o
filtro Chebyshev inicia sua transio mais prximo das frequncias de corte do
que o Butterworth, as frequncias onde a transio de banda passante para
banda nopassante se iniciam mais prxima das frequncias caractersticas
do filtro. garantindo um alcance maior de larguda de banda passante. Porm, por
ter tolerncia de ripple de no mximo 0.5dB na banda passante, o sinal filtrado
usando este filtro suscetvel a atenuao, o que de fato ocorre, pois podemos
observarqueopico,nafigura09atenuadode0.2483para0.247.

Figura10Respostafrequnciadocheby1centradoem330Hz
combandwidthdeaprx.100Hz.

A Figura 10 exibe a resposta frequncia de um dos filtros que foram


definidos em GRAVA2.m para filtragem da faixa onde se localiza uma
frequncias em que estamos interessados (frequncia da sexta corda do violo
E6). O tamanho da banda passante desde filtro justificado pelo fato de que as
frequncias de uma corda que est desafinada pode se encontrar nas

18

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

proximidades da frequncia caracterstica de uma nota num intervalo de 50Hz


(280Hz 380Hz). Mas este valor no arbitrrio e deve ser reconsiderado
dependendodonveldeconhecimentosobreinstrumentosmusicaisdousurio.

3.EstimaoEspectralpormeiodaFFT

A transformada de Fourier (Transform Fourier TF) uma ferramenta


amplamente empregada em processamento de sinais de sons e imagens, pois
sua aplicao torna algumas operaes mais simples e facilita o entendimento j
que ao aplicar a transformada de Fourier o domnio restrito frequncia. Este
tipo de transformada consiste em decompor um sinal em suas componentes
elementares seno e cosseno j que qualquer sinal pode ser representado pela
soma de senos e cossenos conforme demonstrado pelo matemtico e fsico
francsJeanBaptisteJosephFourier(17681830).
Existe ainda a transformada discreta de Fourier (Discret Fourier
Transform DFT), esta por sua vez utiliza um nmero finito de pontos no domnio
tempo para definir uma representao, tambm discreta, do sinal no domnio da
frequncia.
Contudo, o estudo tem por objetivo entender um pouco sobre os
algoritmos de transformada rpida de Fourier (Fast Fourier Transform FFT)
aplicadoparacomputaratransformadadiscretadeFourieresuainversa.
A FFT de grande importncia para uma variedade de aplicaes como o
processamento digital de imagens, a resoluo de equaes diferenciais
parciais e tambm algoritmos para multiplicao rpida de nmeros inteiros
muitograndes.
O algoritmo mais conhecido para a transformada rpida de Fourier
denominadoCooleyTukey,quesebaseianaideiadedivisoeconquista.
Neste trabalho, uso da FFT foi indispensvel, pois atravs desta funo
juntamentecomoutrasquepodesesaberoquantoacordaestdesafinada.
Como pode ser visto em GRAVAR.m, aps gravar o audio, fazemos a

19

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

transformada de Fourier dele para que possamos analislo no domnio da


frequencia.

Linha28deGRAVAR.m:

NFFT=2^nextpow2(L)
y=fft(data,NFFT)/L
f=Fs/2*linspace(0,1,NFFT/2+1)

4.Mximalocal

O conceito de mxima local foi um conceito fundamental na resoluo do


problema que era as frequncias caractersticas do sinal. O conceito bastante
simples, como j foi dito anteriormente, uma funo chamado findpeaks foi
utilizada. A formula mais simples da funo a seguinte: pks = findpeaks(x), onde
a funo encontra os picos locais no vetor x, um pico local definido como a
amostra maior dentre cada 3 valores vizinhos comparados, ou utilizando
[locs,pks] = findpeaks(x) Como segue no exemplo onde 11 picos bem distintos
podemserobservados:

x=linspace(0,1,1024)
Pos=[0.10.130.150.230.250.400.440.650.760.78
0.81]
Hgt=[453454.22.14.33.15.14.2]
Wdt=[.005.005.006.01.01.03.01.01.005.008.005]

PeakSig=zeros(size(x))

forn=1:length(Pos)
PeakSig=PeakSig+Hgt(n)./(1+abs((xPos(n))./Wdt(n))).^4
end

[pks,locs]=findpeaks(PeakSig)
plot(x,PeakSig)holdon

20

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

plot(x(locs),pks+0.05,'k^','markerfacecolor',[100])

Figura1111picosdeumsinalx.

Nosso intuito se limita a defir um nico pico, o que poderia ser feito com
outra funo existente no pacote do MatLab, mas precisamos utilizar a funo
findpeaks pelo fato de que nos interessarmos pelos ndices locs dos vetores
estudados. Uma forma de limitar a funo findpeaks a uma certa quantidade de
picos especifica utilizando o parmetro 'minpeakdistance', que ser definido
como round(N/2). Onde N o nmero de pontos existentes no vetor do qual
queremos encontrar os picos. Neste caso, s sero definidos dois picos, o que
ideal para a anlise da FFT de um sinal de udio, que ir apresentar dois picos,
um na frequncia de maior ocorrncia, e um segundo pico na imagem espelhada

21

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

deste pico. Uma vez que temos o valor dos dois picos, podemos decidir trabalhar
comoprimeiropicolocalizadonondicelocs(1)edeamplitudepks(1).

Substitumos:

[pks,locs]=findpeaks(PeakSig)

Por:

[pks,locs]=findpeaks...
(PeakSig,'minpeakdistance',round(length(PeakSig)/2))

Temosaseguinteresposta:

Figura12Doismaiorespicosdosinal

22

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

5.Elementosdeafinao

A afinao corresponde ao processo de produzir um som equivalente a


outro por comparao, mesmo que o timbre seja diferente, essa comparao
pode ser feita unssona ou com intervalos. Na afinao por unssonos utilizase um
intervalo de oitava (por ser a mesma nota em uma escala diferente), a afinao
pode ser feita de diversas maneiras, a mais utilizada para instrumentos
cordofones (instrumentos de corda) compostos a de aumentar ou diminuir a
tensonascordas.
Para a afinao de instrumentos de cordas podese tambm classificlas
pelostons,poisexistemvriostonsemqueuminstrumentopodeserafinado,e
cada tom tem uma variao de frequncias nas cordas como, por exemplo, o tom
fundamental,temseasseguintesfrequnciasparasascordas.
*** C C# D Eb E F F# G G# A Bb B
0
16.35 17.32 18.35 19.45 20.6 21.83 23.12 24.5 25.96 27.5 29.14 30.87
1
32.7 34.65 36.71 38.89 41.2 43.65 46.25 49 51.91 55 58.27 61.74
2
65.41 69.3 73.42 77.78 82.41 87.31 92.5 98 103.8 110 116.5 123.5
3
130.8 138.6 146.8 155.6 164.8 174.6 185 196 207.7 220 233.1 246.9
4
261.6 277.2 293.7 311.1 329.6 349.2 370 392 415.3 440 466.2 493.9
5
523.3 554.4 587.3 622.3 659.3 698.5 740 784 830.6 880 932.3 987.8
6
1047 1109 1175 1245 1319 1397 1480 1568 1661 1760 1865 1976
7
2093 2217 2349 2489 2637 2794 2960 3136 3322 3520 3729 3951
8
4186 4435 4699 4978 5274 5588 5920 6272 6645 7040 7459 7902

Tabela01Tabeladasfrequnciasdenotas

***Prefixodasoitavas
Uma escala diatnica o conjunto de oito notas (oitavas), com cinco
intervalos de tons e dois intervalos de semitons entre as notas. Este padro se
repete a cada oitava nota. Uma escala diatnica oitavada, ou seja, uma escala
diatnica que a repetio da primeira escala diatnica, contendo frequncias

23

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

que obedecem a razo 2*N, onde N a frequncia de oscilo da nota


correspondentedeumaoitavaabaixo(ObservarTabela01).
importante a introduo deste conceito, pois podemos afinar qualquer
instrumento com frequncias de notas diferentes utilizando apenas os valores da
PrimeiraEscaladiatnicaparavalidaodasfrequnciasamostradas.
Ascordasdeumvioloseguemaseguinteordem(Debaixoparacima):

Tabela02Frequnciasdeumviolopadro

Podemos observar que as frequncias das cordas do violo esto


localizadas em oitavas diferentes, uma vez que entendemos que cada prefixo (1,
2,3,..,8)databela1serefereaumaoitavadiferente.
Nosso objetivo desenvolver um cdigo que que gere uma referncia
grfica, para que o usurio saiba em que frequncia suas cordas esto vibrando.
No caso da M aguda, que vibra numa frequncia de 330Hz, pode estar
desafinada e vibrar numa frequncia vizinha por volta dos 50Hz (280Hz
380Hz). Com a referncia grfica, o usurio saber em que frequncia a corda
desejadaestvibrandoecorrigiresteerromanualmente.

Figura13Exemplodeumaferramentagrfica
utilizadanaafinaodeuminstrumentomusical.

24

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

6.AfinadorVirtualparaviolo

Depois dos estudos e anlises feitas, e tudo relatado acima, foi possvel
desenvolver uma ferramenta til para a avaliao da afinao de um instrumento
cordofone. Os cdigos que integram o afinador em s so trs, Afinador.m,
responsvel por gerar a Interface Grfica de Usurio (GUI), GRAVAR2.m,
baseado no prottipo GRAVAR.m, porm modificado para poder se adaptar ao
programa principal (Afinador.m), que por sua vez, faz a aquisio dos dados, a
transformada rpida de Fourier e a filtragem do sinal obtido, feita com um filtro IIR
predeterminado do tipo Chebyshev (Centrado na frequncia caracterstica da
corda que o usurio optou por afinar). E por fim, PLOT.m, que tem como o
objetivo gerar um grfico que atualizado em tempo real dentro da GUI gerada
por Afinador.m. O diagrama de blocos do afinador pode ser observado na Figura
07.
Afinador.m um cdigo gerado pela ferramenta GUIDE, um programa do
MatLab responsvel por auxiliar com a construo de uma nova interface grfica.
Aps a definio de botes, listas, eixos e etc. O GUIDE gera um cdigo que
relacionaumeventoqueocorrenanainterfaceaumaoutrafuno.
Criamos uma interface fcil de se operar, qualquer usurio com pouco
conhecimento pode entender facilmente como operar as opes. O usurio
encontra uma interface com 8 botes. Dois dos botes so EXIT e MINIMIZE
(Topo direito das janelas convencionais do Windows), e os outros seis botes
representam cada uma das notas de um violo. O usurio pode clicar em um dos
botes e comear a afinar seu instrumento. Assim como tambm pode clicar em
qualquer outro boto durante o processo e mudar de corda livremente. O objetivo
que o usurio afine seu violo de modo que a linha vermelha (mvel) se alinhe
entre as linhas azuis (fixas). Assim que a linha vermelha se encontrar entre as
linhas azuis, ela se tornar verde. Indicando que o processo foi efetuado com
sucesso.

25

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Figura14InterfceGrficadoAfinador

Figura15DiagramadeBlocosdoAfinador.

26

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Assim que Afinador.m executado, e a GUI gerada, o programa espera


por um evento. Quando o evento a escolha de uma nota qualquer, Afinador.m
executa um Callback que chama GRAVAR2.m passando como parmetro a
notaescolhida.

handles.str=get(hObject,'String')
whilehandles.str=='E6'
GRAVAR2(handles.str)

Quando GRAVAR2.m recebe um Callback de Afinador.m, ele inicializa


suas variveis padro, (Fs frequncia amostral, T perodo relacionado a
frequncia amostral, r Objeto do tipo audiorecorder, data dados adquiridos
em 1 segundo de amostragem, Freqs frequncias relacionadas as cordas do
violo),

Fs =2*22050
T=1/Fs
twindow =0.5
r =audiorecorder(Fs,8,1)
data =linspace(0,1,twindow*Fs)
Freqs=[82110147196247330]

NOTA=str

UsafdesignedesignparadefinirascaractersticasdofiltroHd.

fori=1:6
D(i) = fdesign.bandpass('N,F3dB1,F3dB2,Ap', 10,
Freqs(i)50,Freqs(i)+50,0.5,Fs)
end

switch(NOTA)

case'E1'

27

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

Hd=design(D(1),'cheby1')
case'A2'
Hd=design(D(2),'cheby1')
case'D3'
Hd=design(D(3),'cheby1')
case'G4'
Hd=design(D(4),'cheby1')
case'B5'
Hd=design(D(5),'cheby1')
case'E6'
Hd=design(D(6),'cheby1')
end

Executa a aquisio de dados por 1 segundo. E ento filtra data usando


uma escolha de Hd que depende do parmetro passado por Afinador.m ( ver
switch(NOTA) ). Ento encontra as mximas locais se utilizando da funo
findpeaks (Linha 52 de GRAVAR2.m). Neste ponto, GRAVAR2.m chama uma
nova funo, PLOT.m, passando como parmetro Tom (Frequncia encontrada
por findpeaks como sendo a mxima local) e NOTA (O nome da nota, mesmo
parmetroquepassadeAfinador.mparaGRAVAR2.m).
Note que PLOT.m ser chamada pelo programa SE E APENAS SE, a
mxima local for igual ou maior que o Pico de Threshold (K = 0.01, como
discutidonotpico1.2).

if(pks(1)>0.01)
Tom=f(locs(1))
PLOT(Tom,NOTA)
hold
gridon
end

PLOT.m uma etapa simples, ela gera dois grficos que se sobrepoem, o
primeiro so duas barras azuis centradas na frequncia da nota sendo afinada no
momento, com um espaamento de 1Hz do centro, estas barras azuis so

28

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

fixadas utilizando hold , logo em seguida plotada uma nova barra dinmica
(ver drawnow), esta barra varia de acordo com a frequncia da corda do violo
sendo tocada. Mantm a cor vermelha quando a corda est desafinada e verde
quandoafinada.

7.Resultadosediscusso
O objetivo principal do trabalho foi alcanado, que era o de projetar um
afinador de violo simples e de fcil interface com um usurio, mesmo este tendo
poucos conhecimentos sobre a msica. Qualquer pessoa que esteja iniciando
seu aprendizado em tocar violo poder facilmente entender e usar este afinador
de violo, facilitando muito seu aprendizado, ja que um inicialmente tem
dificuldadeemafinarseuvioloutilizandoapenasosentidodaaudio.
Em um aplicativo futuro podemos programar nele novos instrumentos
como inicialmente nessa primeira verso o aplicativo ira apenas afinar violes,
em uma segunda verso ele poder afinar instrumentos como, por exemplo, o
contrabaixo, bandolim e cavaquinho, outras verses tambm podero afinar
pianos e ate possivelmente instrumento de sopro, e que sabe afinao da prpria
voz do usurio para ele possa adequar a sua voz j gravada, por exemplo, em
uma musica. Tambm poderemos desenvolver um aparelho eletrnico para
afinao de instrumentos de cordas, nesse caso o usurio no precisara ter um
computador para afinar seu instrumento, ele ira precisar apenas desse aparelho
eletrnico que possura o mesmo sistema utilizado no computador embutido nele,
dando assim mais mobilidade e portabilidade para os usurios do sistema como,
porexemplo,osistemapodeserfeitoparaserusadoemaparelhoscelulares.

8.Concluso
O processamento de sinais digitais uma rea da computao
absolutamente inexplorada neste pas, mas de grande importncia na
implementao de ferramentas para msicos e tambm na implementao de

29

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

ferramentas de uso geral. Entretanto, seu uso depende diretamente de complexos


clculosmatemticos,aincludasastransformadasdeFourier.
Com este trabalho, foi possvel observar o quanto a ferramenta Matlab
poderosa, vendo que sua aplicao esta presente nas mais diversas reas,
mostrando seu valor e justificando porque se tornou a ferramenta computacional
maisutilizadaporprofissionaisdareadeengenharia.
Para realizao do trabalho, foi necessrio aprender alguns conceitos
sobre instrumentos de corda, como por exemplo no caso do violo, que cada
corda tem uma frequncia caracterstica especfica e que pode variar em 50Hz
seestiverdesafinada.
Foi possvel uma melhor fixao dos conceitos aprendidos durante as
aulas de Processamento Digital de Sinais, pois o domnio destes conceitos foram
extremamente necessrios para a concluso do trabalho. Tais estes sendo:
amostragem de um sinal, taxa de Nyquist, quantizao de um sinal, projeto de
filtrosdigitais,anliseespectralpormeiodafft,etc.

9.Referncias
[1]IanBillington,ThePhysicsoftheAcousticGuitar.Disponvelem:
<http://ffden2.phys.uaf.edu/211.web.stuff/billington/main.htm>. Acesso em: 15
dez.2013.

[2] Oppenheim, Alan V Discretetime signal processing/Ronald W Schafer ,


withJohnR.Buck.2
nd
ed1999.

[3] B.P. Lathi Sinais e sistemas 2ed publicado em 2004 editora Laser
houseSP

[4] L. KINSLER e A. FREY, Fundamentals of Acoustics, John Wiley & Sons,


NewYork,1980.

30

UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS

[5] A. PELED and B. LIU, Digital Signal Processing: Theory, Design and
Implementation,Wiley,NewYork,1976.

31

Das könnte Ihnen auch gefallen