Relatório

6
5/26/2018 Relatrio-slidepdf.com http://slidepdf.com/reader/full/relatorio-56204fa205d40 1/6  UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO Disciplina:  Projetos de Engenharia I Projeto 4 - Processamento de Música Usando o Matlab/Octave Aluno: Alexandre Farias Baía Número de Matrícula:  11080006801 Professor:  Aldebaro Klautau Relatório acerca do Projeto 4 - Processamento de Música Usando o Matlab/Octave Música utilizada: Soul Dealer Compositor:  Daisuke Ishiwatari Álbum:  Guilty Gear X Heavy Rock Tracks Software utilizado: MATLAB 7.10.0 (R2010a) Parte 1 – Comparar a razão de compressão entre o arquivo WAV e o MP3 Arquivo original: souldealer Formato:  MP3 Número de amostras: 16 bits Taxa de amostragem: 44100Hz Tamanho em bytes: 819 129 bytes Arquivo convertido: souldealer(entrada) Formato:  WAV (PCM linear) Número de amostras:  16 bits Taxa de amostragem: 44100Hz Tamanho em bytes: 2 993 036 bytes bytes Cálculo da razão de compressão entre o tamanho dos arquivos: 2 993 036 ------ 100% 819 129 -------- x% 2993036*x=819129*100

Transcript of Relatório

  • UNIVERSIDADE FEDERAL DO PAR

    INSTITUTO DE TECNOLOGIA

    FACULDADE DE ENGENHARIA DA COMPUTAO

    Disciplina: Projetos de Engenharia I

    Projeto 4 - Processamento de Msica Usando o Matlab/Octave

    Aluno: Alexandre Farias Baa

    Nmero de Matrcula: 11080006801

    Professor: Aldebaro Klautau

    Relatrio acerca do Projeto 4 - Processamento de Msica Usando o Matlab/Octave

    Msica utilizada: Soul Dealer

    Compositor: Daisuke Ishiwatari

    lbum: Guilty Gear X Heavy Rock Tracks

    Software utilizado: MATLAB 7.10.0 (R2010a)

    Parte 1 Comparar a razo de compresso entre o arquivo WAV e o MP3

    Arquivo original: souldealer

    Formato: MP3

    Nmero de amostras: 16 bits

    Taxa de amostragem: 44100Hz

    Tamanho em bytes: 819 129 bytes

    Arquivo convertido: souldealer(entrada)

    Formato: WAV (PCM linear)

    Nmero de amostras: 16 bits

    Taxa de amostragem: 44100Hz

    Tamanho em bytes: 2 993 036 bytes bytes

    Clculo da razo de compresso entre o tamanho dos arquivos:

    2 993 036 ------ 100%

    819 129 -------- x%

    2993036*x=819129*100

  • x=819129*100/2993036

    x=27,3%

    Ento a "razo de compresso" de um arquivo WAV PCM linear com taxa de amostragem de

    44100 Hz mono com um nmero de amostras de 16 bits para um em MP3 com a mesma taxa

    de amostragem e nmero de amostras, porm estreo, cerca de 27,3%.

    Parte 2 Implementando o efeito especial Delay atravs do MATLAB

    Descrio

    Delay um efeito especial comumente gerado pelo armazenamento do sinal de udio em

    um buffer eletrnico por um certo perodo de tempo para depois ser reenviado para a sada de

    udio. O efeito mais simples conseguido pela soma do sinal original com o sinal atrasado.

    Delays mltiplos podem ser gerados pela reinsero repetida do sinal atrasado. Multitap

    delays so gerados a partir de um nico e longo delay que repetido em intervalos diferentes,

    gerando mltiplas repeties. Ping-pong delays so obtidos pelo direcionamento alternado de

    cada repetio para os canais esquerdo e direito da sada de udio.

    Para este projeto, utilizarei o efeito mais simples.

    Mtodo de implementao

    Passo 1 Testes atravs do Audacity e implementao da teoria

    Utilizei o mesmo udio obtido durante a Parte 1 do projeto (souldealer(entrada).wav), o

    carreguei no Audacity e testei diversos valores de delay, optando pelo atraso 1,5 segundos

    para que fosse perceptvel sem obter discrepncias quanto ao udio original.

    udio de entrada (Sem Delay)

  • udio de sada (Com Delay)

    O Delay visvel no trecho final da faixa, onde se v um prolongamento de menor intensidade

    comparado ao udio de entrada, para ser mais exato, partir de 33 segundos de msica, onde

    no udio de entrada era praticamente um valor nulo, no Delay observa-se o atraso de 1,5

    segundos e a variao de cerca de 0.6 decibis.

    Passo 2 Implementao do cdigo do Delay atravs do MATLAB

    Utilizei o seguinte cdigo no MATLAB para que fosse possvel implementar uma interface

    similar a do Audacity(Cdigo devidamente comentado para uma melhor compreenso):

    %Comando utilizado para ler o arquivo original soul_dealer(entrada).wav.

    %Onde x passa a ser o udio de entrada.

    %E fs a frequncia, que neste caso 44100Hz.

    [x,fs]=wavread('C:\temp\souldealer(entrada).wav');

    %Inicializao das constantes, respeitando as mesmas estabelecidas no Audacity.

    %"a" corresponde ao Grau de atenuao do eco em decibis.

    %"delay" corresponde ao Temporizador do Delay em segundos.

    %Foi escolhido 1.5 segundos para que o Delay fosse mais perceptvel.

    a=.6;

    delay=1.5;

    %Expresso para calcular o nmero de amostras do Delay.

    %Onde D o nmero total de amostras do Delay.

    %Obtido pela multiplicao da constante delay pela frequncia do udio

    D=delay*fs;

  • %Onde y corresponde ao udio a ser modificado pelo Delay.

    y=zeros(size(x));

    %Expresso utilizada para filtrar o sinal.

    %Sendo ela uma equao diferencial.

    for n=D+1:1:length(x)

    y(n)=x(n)+a*x(n-D);

    end;

    %Comando utilizado para executar o udio original.

    soundsc(x,fs)

    %Comando utilizado para executar o udio com o efeito do Delay.

    soundsc(y,fs)

    %Comando utilizado para salvar o udio modificado pelo Delay.

    wavwrite(y,44100,16,'C:\temp\souldealer(delay).wav')

    %Parmetros para se plotar o grfico de Tempo(segundos)xFora Relativa do Sinal (decibis)

    (souldealer(entrada).wav).

    out=x(:,1);

    time=(1/44100)*length(x);

    t=linspace(0,time,length(x));

    %Plot do grfico para o udio de entrada (souldealer(entrada).wav).

    %Considerando a tempo total do udio.

    plot(t,x),...

    xlabel('Tempo(segundos)'),...

    ylabel('Fora Relativa do Sinal(decibis)'),...

    title('Tempo x Fora Relativa do Sinal (souldealer(entrada).wav)'),...

    grid;

    %Parmetros para se plotar o grfico de Tempo(segundos)xFora Relativa do Sinal(decibis)

    (souldealer(delay).wav).

    out=y(:,1);

    time=(1/44100)*length(y);

    t=linspace(0,time,length(y));

    %Plot do grfico para o udio com Delay (souldealer(delay).wav).

    %Considerando a tempo total do udio.

    plot(t,y),...

    xlabel('Tempo(segundos)'),...

    ylabel('Fora Relativa do Sinal(decibis)'),...

    title('Tempo x Fora Relativa do Sinal (souldealer(delay).wav)'),...

    grid;

  • Passo 3 Explorando o cdigo do Delay e Anlise final

    Simplesmente, apliquei uma equao diferencial para que o sinal original fosse somado ao

    sinal atrasado: y(n) = x(n) + ax(n-D)

    Onde, no cdigo, ela foi expressa da seguinte forma: y(n)=x(n)+a*x(n-D)

    E analisando graficamente (Preferi colocar, em separado, os grficos correspondentes a cada

    plot para que os blocos de cdigo no ficassem desconexos):

    Grfico 1 udio de entrada (souldealer(entrada).wav)

    Grfico 2 udio de sada (souldealer(delay).wav)

  • Pode ser visto nos grficos do MATLAB o mesmo detalhe notado nos grficos do Audacity, no

    trecho final da faixa visvel o Delay partir de 33 segundos, com atraso de 1,5 segundos e a

    variao de 0.6 decibis.

    Logo, atravs da soma entre sinal original e o atrasado, possvel fazer o mesmo que o

    Audacity no MATLAB, porm podemos ver realmente como gerado o efeito do Delay.

    Referncias

    Wikipdia - Artigo sobre o efeito especial Delay: http://pt.wikipedia.org/wiki/Delay

    Artigo do Professor Fernando Iazzetta da USP sobre efeitos de udio:

    http://www.eca.usp.br/prof/iazzetta/tutor/audio/efeitos/effx.html