Trabalho de Processamento Digital de Sinais usando MATLAB R Prof. Marcelo de Oliveira Rosa Universidade Federal do Paraná 21 de maio de 2007 1 Introdução Este trabalho permitirá que o aluno realize operações matemáticas no software matemático MathWorks MATLAB R considerando o conteúdo da disciplina Processamento Digital de Sinais ministrada pelo Departamento de Eletricidade, da Universidade Federal do Paraná. Todos os experimentos dependem da toolbox Signal do MATLAB R. Os comandos a serem usados são apresentados por experimento, mas o aluno deve usar o comando help para vericar qual a sintaxe do mesmo. 2 Apresentação do Trabalho Os trabalhos devem ser feitos em papéis A4 ou ofício. Margens, folhas de rosto, tipo de caracter e outras especicações grácas cam a critério do aluno. O trabalho também poderá ser entregue em formato PDF ou DOC. Todos os grácos devem ser obtidos a partir do MATLAB R usando funções copiar e colar). Todos os grácos devem possuir informação nos eixos sobre qual variável está sendo descrita usando xlabel e ylabel do MATLAB R ). Use também title para inserir um título em cada gráco. Grácos sem tais informações incorrerão em pontos perdidos pelo aluno. Para cada experimento, descreva sucintamente o que está sendo visto. Lembre-se que se trata de um relatório, e relatórios devem apresentar alguma descrição mínima para que o leitor entenda o que está lendo. Quando solicitado, ou necessário para facilitar compreensão do leitor), sobreponha grácos usando comandos apropriados do MATLAB R. Informações textuais como nos experimentos em que se solicita resposta ao impulso, por exemplo) devem aparecer no relatório. 1
Entregue o trabalho na data marcada. Caso contrário, o mesmo não será considerado, mesmo que enviado por email. Qualquer dúvida, procure seu professor pessoalmente ou por email. 3 Experimentos 3.1 Leitura de arquivos Carregue os sinais serra.wav, tom.wav, voz.wav, barco.wav. Todos foram amostrados em 22050 Hz. Use o comando wavread) 3.2 Esboço dos sinais analógicos Esboce gracamente no MATLAB R ) a versão analógica dos sinais do experimento usando apenas 500 amostras, sem se esquecer de de- nir corretamente a abscissa dos grácos em função da freqüência de amostragem. Use os comandos plot), xlabel), ylabel), title). 3.3 Magnitude Espectral Assuma que N é o comprimento de cada sinal. Obtenha gracamente X e jω) e 20 log X e jω) ) para cada subsinal descrito abaixo: 1. N/4 amostras do sinal 2. N amostras do sinal 3. concatenação de N/4 amostras do sinal + N zeros 4. concatenação de N amostras do sinal + 16N zeros Use os comandos fft), abs). Descreva as características espectrais do sinal freqüência e amplitude das componentes espectrais, largura de banda das componentes espectrais - queda de 3 db a partir dos picos). Descreva as diferenças que você encontrou em relação entre X e jω ) e 20 log X e jω) ) para os 4 sub-sinais. 2
Cuidado no cálculo da DTFT para sinais. Como usamos a DFT para isso, então lembre-se de usar 1/M, onde M é o tamanho da seqüência, para normalizar o resultado obtido com fft). 3.4 Sistemas 3.4.1 Resposta em Freqüência Crie um sistema média móvel M 1 = 0, M 2 = 10) Obtenha gracamente X e jω) e X e jω). Note que precisamos usar uma quantidade de zeros a direita do vetor contendo as amostras do sistema para mostrar a curva suave através de fft). Tente usar 1024 pontos. Cuidado com o termo 1/N usado em fft) para os sinais. Aqui não é necessário pois a DFT e a DTFT amostrada diretamente em N pontos ao redor do círculo unitário. Use o comando atan). Compare com os resultados obtidos matematicamente para a DTFT deste sistema média móvel. 3.4.2 Convolução Obtenha a convolução do sistema média móvel com cada um dos sinais apresentados, onde y[n] = sistema[n] sinal[n]. Use o comando conv). Obtenha gracamente y[n] para as primeiras 100-200 amostras). Obtenha gracamente Y e jω). 3.4.3 Resposta em Freqüência II Considere os seguintes sistemas: H 1 z) = 1 0.3z 1 H 2 z) = 1 0.9z 1 Obtenha gracamente H e jω ) e H e jω) para esses sistemas. Use o comando freqz) com a opção whole, de modo a mostrar as curvas entre 0 e 2π. 3
Quando alteramos o raio de 0.3 para 0.9, qual o comportamento espectral de um sistema do tipo Hz) = 1 rz 1? 3.4.4 Diagrama de Pólos e Zeros Considere um sistema passa-tudo com número de 1 pólo real pólo localizado em z = d 1 = 0.9) e 1 par de pólos complexos pólos localizados em e 1 = 0.7 e ±j π/3) ). Obtenha Hz) multiplicando os polinômios de primeira ordem denidos a partir dos pólos e zeros, tanto do numerador quanto do denominador, separadamente, usando a função conv), ou através de poly). Use o comando poly) ou conv)). Verique se os pólos e zeros estão corretamente dispostos no plano complexo. Use o comando zplane). Obtenha gracamente 20 log H e jω) ) e H e jω). Use o comando freqz); 3.4.5 Filtros Considere os seguintes sistemas: 3.2223 7.3350z 1 + 4.4854z 2 + H 1 z) = 1 1000 + 4.4854z 3 7.3350z 4 + 3.2223z 5 1.0000 4.5310z 1 + 8.3666z 2 7.8591z 3 + 3.7526z 4 0.7283z 5 0.0953 0.7447z 1 + 2.5633z 2 5.0757z 3 + 6.3236z 4 ) H 2 z) = 5.0757z 5 + 2.5633z 6 0.7447z 7 + 0.0953z 8 1.0000 7.7530z 1 + 26.4130z 2 51.6428z 3 + 63.3808z 4 49.9988z 5 + 24.7583z 6 7.0361z 7 + 0.8787z 8 que foi gerado pelas seguintes intruções de MATLAB R : % projeto filtro passa-banda 4
f1 = 300/11025; f2 = 400/11025; f3 = 800/11025; f4 = 900/11025; [N2, Wn2] = ellipord[f2 f3], [f1 f4], 0.1, 20); [B2, A2] = ellipn2, 0.5, 20, Wn2); 0.8247 4.8889z 1 + 12.1348z 2 ) H 3 z) = 16.1411z 3 + 12.1348z 4 4.8889z 5 + 0.8247z 6 1.0000 5.5663z 1 + 12.9922z 2 16.2708z 3 + 11.5289z 4 4.3818z 5 + 0.6979z 6 que foi gerado pelas seguintes intruções de MATLAB R : % projeto filtro passa_alta f1 = 700/11025; f2 = 750/11025; [N3, Wn3] = ellipordf1, f2, 0.1, 20); [B3, A3] = ellipn3, 0.1, 20, Wn3, 'high'); Os sistemas H 2 z) e H 3 z) podem gerar erros de precisão no posicionamento dos pólos e, dessa forma, gerar ltros instáveis. Assim, utilize diretamente B 2 z) e A 2 z) produzido pelas instruções de MATLAB R para H 2 z), e B 3 z) e A 3 z) para H 2 z). Você pode vericar como os erros de precisão afetam os pólos e zeros, determinando gracamente esses pólos e zeros para os sistemas propostos - das equações Hz) e das equações Bz)/Az). Determine numericamente os pólos e zeros desses sistemas. Determine o diagrama de pólos e zeros desses sistemas. Obtenha gracamente 20 log H e jω) ) e H e jω) para esses sistemas. Filtre cada um dos sinais e obtenha grácos no domínio do tempo) para cada sinal, com os sinais original e ltrado. Use o comando filter). 5
Compare gracamente 20 log X e jω) ) com 20 log Y e jω) ) para cada sinal. Use os comandos hold on/off), junto com plot) Qual a característica de cada sistema quanto a alteração espectral que eles impõe aos sinais? Determine a resposta ao impulso desses sistemas Use o comando impz). Considerando os resultados com os pólos e zeros propostos: Crie um ltro denindo zeros e pólos particularmente pólos) no plano Z e obtenha o diagrama de pólos e zeros para seu ltro. Obtenha gracamente a resposta em freqüência para esse ltro. Filtro cada um dos sinais e obtenha um gráco no domínio do tempo) comparando o sinal original e o sinal ltrado pelo seu ltro. 6