TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho Audio Processamento de Sinais

Por:   •  6/11/2018  •  Trabalho acadêmico  •  7.552 Palavras (31 Páginas)  •  239 Visualizações

Página 1 de 31

Aluno: Fernando Henrique GLERIANO

Lista de Exercícios 2 – Entrega na data da prova 2

Centro Universitário do Norte Paulista – UNORP

Engenharia Elétrica

Processamento de Sinais

5°Ano - Fevereiro de 2015

1- (1,00) Explique detalhadamente o funcionamento dos arquivos no formato WAVE de áudio.

Um arquivo no formato WAVE é composto pelos dados brutos mais cabeçalho.

- bytes 0 a 3: string RIFF (Rich Information File Format);
- bytes 4 a 7: comprimento do chunk;

- bytes 8 a 11: string Wave;

- bytes 12 a 15: string FMT;

- bytes 16 a 19: comprimento do chunk após FMT;

- bytes 20 a 21: 0 para mono e 1 para estéreo;

- bytes 22 a 23: 1 para mono e 2 para estéreo;

- bytes 24 a 27: taxa de amostragem em amostras por segundo;

- bytes 28 a 31: quantidade de bytes por segundo;

- bytes 32 a 33: 1 para 8 bits mono; 3 para 16 bits mono;

                         2 para 8 bytes estéreo; 4 para 16 bits estéreo;

- bytes 34 a 35: bits por amostra.

- bytes 36 a 39: string DATA.

- bytes 40 a 43: comprimento do restante do arquivo.

- bytes 44 em diante: Dados Brutos.

[pic 1]

2- (2,00) Demonstre o funcionamento da Transformada Discreta de Fourier.

Trata-se de uma transformada baseada em senos e cossenos cujo objetivo é levar um sinal que está no domínio do tempo para o domínio da frequência.  Dessa forma é possível verificar as frequências presentes neste sinal.

Definição:

 F[u] = * (  f[t] *  )onde: [pic 2][pic 3][pic 4]

j          corresponde ao numero complexo ;[pic 5]

f[t]          é o sinal no domínio do tempo;

f[u]         é o domínio da frequência ;

t         é o índice no domínio do tempo;

u         é o índice no domínio da frequência;

π          é uma constante;

N          é a quantidade de amostras.

O termo discreto significa que não são usados todos os infinitos valores da função no domínio do tempo para obter a representação no domínio da frequência. Ao invés disso, o sinal é primeiramente discretizado, para que posteriormente, seja obtido o sinal correspondente no domínio da frequência.
[pic 6]3- (1,00) O que é frequência fundamental de um sinal de áudio (F0). E frequências formantes (F1, F2, F3 e F4)?

Frequência fundamental é a que inicia uma séria harmônica, a principal frequência,  ou seja o primeiro grau de uma escala e em todas as sua frequências múltiplas inteira 2F,3F,4F,5F,6F, etc.

As frequências formantes são múltiplas da frequência fundamental.

4- (2,00) Explique o funcionamento da Fast Fourier Transform (FFT) e suas vantagens em relação a Discrete Fourier Transform (DFT).

Fast Fourier Transform é um algoritmo para calcular a transformada de Fourier discreta (DFT) e o seu inverso.  A transformada de Fourier converte tempo (ou espaço) em frequência e vice-versa; A FFT foi criada por J.W. Cooley (IBM) em colaboração com J.W. Tukey (Bell Labs) conseguiram uma revolução maior no tratamento digital de sinais em 1965 com a publicação da transformada rápida de Fourier, a FFT. Trata-se de um método engenhoso e altamente eficiente de reagrupar os cálculos dos coeficientes de uma DFT.  Em diversos softwares ao invés do cálculo da DFT diretamente pela definição, faz-se uso de um algoritmo conhecido como a FFT (Transformada Rápida de Fourier) que permite avaliar a DFT com menor esforço computacional. Mas a FFT não é um tipo diferente de transformada e sim uma técnica que possibilita avaliar DFT de forma mais rápida e econômica.

5- (1,00) Construa um programa em linguagem C/C++ que tenha como entrada um arquivo de áudio de uma pessoa pronunciando a vogal /a/ sustentada. Em seguida calcule a DFT e o seu Espectro.

#include

#include

#include

#include

#include

using namespace std;

main()

{

    short converte2de8para1de16(unsigned char,unsigned char);

    void converte1de16para2de8(short, unsigned char *,unsigned char *);

    void getFundamentalFrequency(double*, int, int);

    FILE* fr;

    FILE* fw;

    char arquivo_wav_resultante[200];

    arquivo_wav_resultante[0] = '\0';    

    //strcat(&arquivo_wav_resultante[0],n[1]);

    strcat(&arquivo_wav_resultante[0], "modificado.wav");

   

    cout<<"\nDigite o caminho e o nome do arquivo: ";

    char n[101];

    cin>>n;

   

    if(((fr = fopen(n,"rb")) != NULL)&&(((fw = fopen("arquivowavealterado.wav","wb")) != NULL)))

    {

        struct

        {

            unsigned char riff[4];

            unsigned long len;

        }riff_header;

        fread(&riff_header,sizeof(riff_header),1,fr);

        fwrite(&riff_header,sizeof(riff_header),1,fw);

        cout<<"\nArquivo do tipo: "<

        cout<<"\nTamanho do chunk: "<

        unsigned char wave[4];

        fread(&wave,sizeof(wave),1,fr);

        fwrite(&wave,sizeof(wave),1,fw);

        cout<<"\nSubtipo: "<

        struct

        {

            unsigned char id[4];

            unsigned long len;

        }riff_chunk;

...

Baixar como (para membros premium)  txt (25.9 Kb)   pdf (292.2 Kb)   docx (57.1 Kb)  
Continuar por mais 30 páginas »
Disponível apenas no TrabalhosGratuitos.com