Beruflich Dokumente
Kultur Dokumente
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
RelatrioFinal
ProcessamentoDigitaldeSinais
JooMonlevade,05deFevereirode2014.
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
Resumo
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
1.1MatLabesuafunes
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
ComovistoemGRAVAR2.m:
linha8
r=audiorecorder(Fs,8,1)
linha39
record(r)
pause(1)
stop(r)
data =getaudiodata(r,'double')
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
vriosoutros.
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
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
filterfilter(A,B)filtraosinalBusandoofiltroA.
ComovistoemGRAVAR2.m:
linha49
y=abs(fft(data)/length(data))
ComovistoemGRAVAR2.m:
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
linha51
[pks,locs]=findpeaks(2*abs(y),'minpeakdistance',Fs
/2)
1.2Prototipoparaanlisededados
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
10
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
11
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
2.1ComparaodefiltrosIIR
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
Figura05Sinalfiltradoecomponenteespectralpsfiltragem(usandoumfiltro
IIRElptico)
14
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
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
Figura07NotaldoUkulelefiltradaporumIIRusandoummodeloButterworth,esua
componentenafrequncia.
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
Figura10Respostafrequnciadocheby1centradoem330Hz
combandwidthdeaprx.100Hz.
18
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
3.EstimaoEspectralpormeiodaFFT
19
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
Linha28deGRAVAR.m:
NFFT=2^nextpow2(L)
y=fft(data,NFFT)/L
f=Fs/2*linspace(0,1,NFFT/2+1)
4.Mximalocal
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
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
Tabela02Frequnciasdeumviolopadro
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
handles.str=get(hObject,'String')
whilehandles.str=='E6'
GRAVAR2(handles.str)
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
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
9.Referncias
[1]IanBillington,ThePhysicsoftheAcousticGuitar.Disponvelem:
<http://ffden2.phys.uaf.edu/211.web.stuff/billington/main.htm>. Acesso em: 15
dez.2013.
[3] B.P. Lathi Sinais e sistemas 2ed publicado em 2004 editora Laser
houseSP
30
UNIVERSIDADEFEDERALDEOUROPRETO
DEPARTAMENTODECINCIASEXATASEAPLICADAS
INSTITUTODECINCIASEXATASEAPLICADAS
[5] A. PELED and B. LIU, Digital Signal Processing: Theory, Design and
Implementation,Wiley,NewYork,1976.
31