Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Processamento Digital de Sinais

Avaliações da disciplina de PDS no SENAI CIMATEC, entre setembro e outubro de 2024. Duas entregas, as duas em cima de áudio real gravado pela turma.

av1/: análise no domínio da frequência

Pega uma gravação de voz e descobre a frequência fundamental, o tom em que a pessoa fala.

O caminho é o de sempre em PDS: converte para mono, monta o vetor de tempo a partir da taxa de amostragem, aplica a FFT e normaliza a magnitude. A média é subtraída do espectro para o nível DC não dominar o gráfico e esconder os picos que interessam.

Dois detalhes que o script trata e valem nota:

  • Zero-padding. Se o número de amostras não é potência de 2, o sinal é completado com zeros até a próxima potência. A FFT fica mais rápida e o espectro ganha resolução aparente.
  • Limite de 500 Hz na busca. A fundamental da voz humana fica bem abaixo disso; procurar acima só acharia harmônicos e ruído.

Depois usa findpeaks para marcar as componentes principais do espectro.

As gravações estão em av1/audio/, e av1/slides.pdf é a apresentação da entrega.

av2/: banco de filtros FIR e IIR

Um equalizador de três bandas, com cada banda implementada duas vezes, para comparar as duas famílias de filtro digital:

Banda Faixa Tipo
Graves até 250 Hz passa-baixa
Médios 250 a 2000 Hz passa-faixa
Agudos acima de 2000 Hz passa-alta

Os FIR são projetados por janela de Kaiser; os IIR, por Butterworth. As duas famílias recebem as mesmas especificações (1 dB de ripple na banda de passagem, 60 dB de atenuação na banda de rejeição) justamente para a comparação ser justa.

A diferença que o trabalho quer mostrar: o IIR atinge a mesma especificação com uma ordem muito menor, mas tem fase não linear e realimentação; o FIR é sempre estável e de fase linear, ao custo de muito mais coeficientes.

Os resultados já estão versionados: av2/audio_*.wav são as seis saídas filtradas, e av2/graficos/ tem as respostas em frequência de cada filtro, os espectros e as comparações.

Rodando

av2/filtros.m usa designfilt, que é do Signal Processing Toolbox do MATLAB, e não roda no Octave. av1/analise_frequencial.m roda nos dois, e começa com pkg load signal para o caso do Octave.

cd av2 && filtros

Os dois scripts leem o .wav pelo nome, sem caminho, então precisam ser executados de dentro da própria pasta. No av1, ainda é preciso apontar o filename para dentro de audio/ ou rodar de lá: o script pede 'Amanda.wav', mas o arquivo está em av1/audio/Amanda.wav.

About

Processamento Digital de Sinais: FFT de voz e filtros FIR/IIR

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages