Sistemas e Sinais
Guião das Aulas Práticas
António Navarro
João Manuel Rodrigues
Rui Alves
Departamento de Electrónica,
Telecomunicações e Informática
Universidade de Aveiro
2006-2007
AULA 1
Sinais (Unidimensionais)
Resumo:
• Familiarização com o ambiente de trabalho.
• Manipulações simples de sinais digitais unidimensionais.
Este guião é um trabalho em progresso e, por isso, ainda incompleto. Na página das aulas
práticas de SS 1 poderá encontrar a última versão deste guião 2 , bem como outras informações e
dados referentes às aulas práticas de Sistemas e Sinais. Se detectar algum erro ou tiver alguma
sugestão, por favor informe os autores.
Exercício 1.1
Coloque o conteúdo do ficheiro aula1.zip na sua área de trabalho. Localize o ficheiro
santos.wav e ouça-o usando uma aplicação apropriada. Observe a página de propriedades
desse ficheiro e registe os parâmetros fundamentais do sinal: frequência de amostragem,
número de canais, número de bits por amostra, duração. A partir destes valores, determine o
número de bytes ocupados pela informação áudio e compare-o com a dimensão do ficheiro.
(Além da informação áudio, os ficheiros WAV têm um cabeçalho que ocupa algumas dezenas
de bytes.)
Exercício 1.2
No MATLAB, pode ler o ficheiro santos.wav para uma matriz, usando o comando
[x,fa,nb] = wavread('santos.wav');
onde x é o vector ou matriz que fica com as amostras do sinal, fa indica a frequência de
amostragem e nb indica o número de bits de resolução de cada amostra.
Com o comando
sound(x,fa,nb);
pode ouvir o sinal x através da placa de som, a um ritmo de fa amostras por segundo e com
resolução de nb bits. Há vários pormenores a ter em conta quando se usa esta função: por um
1
http://www.av.it.pt/rpedro/ss/
2
http://www.av.it.pt/rpedro/ss/guiao.pdf
-2-
lado, o sinal x deve ter valores pertencentes ao intervalo [-1,+1[, caso contrário será ouvido
com distorção; por outro lado, não é garantido que a placa de som e/ou o sistema operativo
suportem frequências de amostragem ou resoluções arbitrárias. 3
Usando comandos do MATLAB,
A. Determine o número de canais desse sinal (ou seja, se é mono- ou estereofónico) e o
número de amostras por canal.
B. Calcule a duração do sinal.
C. Determine o número exacto de bytes ocupados pelas amostras do sinal.
D. Quantos minutos de áudio neste formato poderia gravar num CD (de 700 MB) 4 ? E
num DVD (de 4.7 GB)?
E. Determine os valores máximo e mínimo do sinal em cada canal.
F. Multiplique o sinal por 1/10 e ouça o resultado. Que diferença notou?
G. Multiplique o sinal por 10 e ouça o resultado. Que aconteceu?
Exercício 1.3
Crie uma versão monofónica fazendo a média dos dois canais do sinal x e grave o resultado
usando o comando
wavwrite(y,fa,nb, 'santos-mono.wav');
sendo y o sinal monofónico criado. Verifique as propriedades do novo ficheiro.
Exercício 1.4
Traçe um gráfico (das primeiras 1000 amostras) do sinal x com o eixo do tempo marcado em
segundos. Explore o gráfico, ampliando diversas zonas com o comando axis ou usando as
possibilidades de zoom fornecidas pelo MATLAB.
Sugestão: crie primeiro um vector t com comprimento igual ao do sinal e contendo os valores
dos instantes de amostragem correspondentes.
3
Algumas frequências de amostragem mais usualmente suportadas são: 44100 amostras/s, 8000 amostras/s, e
outras relacionadas com estas como 22050, 11025, 16000, 32000 e 48000 amostras/s. Resoluções de 16 ou 8
bits/amostra são usuais, algumas placas mais recentes permitem até 24 bits/amostra.
4
Para informação mais detalhada sobre capacidades de CDs e DVDs consultar por exemplo:
http://en.wikipedia.org/wiki/CD-ROM ou http://www.osta.org/technology/cdqa7.htm .
-3-
Exercício 1.5
A partir do sinal lido anteriormente:
A. Crie um novo sinal composto apenas pelas amostras de índice par.
B. Ouça o novo sinal, mantendo a frequência de amostragem e a resolução. Que
aconteceu ao sinal? (No que diz respeito à duração e tonalidade.)
C. Ouça-o novamente, especificando agora um ritmo de amostagem de metade do
original.
Exercício 1.6
Apesar de as amostras dos sinais áudio serem armazenadas no MATLAB como números reais
entre -1 e +1, no ficheiro original são de facto armazenadas como números inteiros com nb
dígitos binários. Ao ler esses números, o comando wavread do MATLAB divide-os pela
máxima amplitude que pode ser codificada com nb bits, ou seja 2nb-1 (para números com sinal).
Assim, as amplitudes do sinal ficam normalizadas: um sinal de amplitude máxima terá sempre
amplitude 1 no MATLAB, independentemente da resolução usada na gravação do sinal.
Execute o comando x(1:20,:) para observar os valores das primeiras 20 linhas da
matriz x. Multiplique por 215 = 32768 e verifique que os valores resultantes são inteiros.
Exercício 1.7
O ficheiro santosC.mp3 é uma versão do sinal santos.wav, codificado no formato
MPEG-Layer III com um débito de 128 kbit/s. 5 A respectiva descodificação produziu o
ficheiro santosD.wav.
A. Leia o sinal descodificado e compare-o com o original.
B. Determine o desfasamento (atraso) entre os dois sinais. (Pode fazê-lo
“manualmente”, por tentativa e erro e recorrendo a gráficos. Como desafio, pense
como poderia automatizar este processo e escreva uma função que o faça.)
C. Calcule e ouça a diferença dos dois sinais depois de compensar o seu desfasamento.
D. Determine a potência (energia média por amostra) do sinal original e do sinal
diferença, e ache a relação sinal-ruído (SNR), expressando-a em dB (decibel). 6
E. Determine a taxa de compressão.
F. Quantos minutos de áudio neste formato poderia gravar num CD (de 700 MB)? E
num DVD (de 4.7 GB)?
G. A partir do ficheiro santosD.wav diminua o número de bits por amostra
gradualmente e ouça o resultado. Tire conclusões.
H. Para o número de bits por amostra que considera aceitável, e para a mesma taxa de
5
Foi usado o codificador http://lame.sourceforge.net/LAME, versão 3.96.1, com a opção -h.
6
O decibel é uma unidade de medida logarítmica de uma relação de potências. Assim, se dois sinais têm potências
P1 e P2, a sua relação de potências é de 10 log 10 ( P1 / P2 ) dB.
-4-
compressão, determine o débito.
Exercício 1.8
Considere o ficheiro santos.wav.
A. O empacotamento para trasmissão de pacotes na rede de computadores conduz a um
acrescento de 30 bytes de cabeçalho por pacote. Para um payload de 150 bytes,
determine o débito de transmissão.
B. Quantos minutos de áudio neste formato empacotado poderia gravar num CD (de
700 MB)? E num DVD (de 4.7 GB)?
C. Repita as duas alíneas anteriores para o ficheiro santosC.mp3.
D. Determine o tamanho do payload para um débito de 140 kbit/s e para 160 kbit/s.
Exercício 1.9
Considere o ficheiro santos.wav.
A. Pretende-se transmitir este ficheiro empacotado em 30 (Cabeçalho)/150 bytes
(Payload) de um computador para outro numa rede local de 1 Mbit/s. Calcule o
tempo necessário para a transferência do ficheiro.
B. Considere que estão 10 computadores a transmitir este ficheiro e que a taxa de
colisão é de 10%. Determine o tempo total para que todas as 10 transferências
tenham lugar.
C. Repita as duas alíneas anteriores para o ficheiro santosC.mp3.
D. Considere agora que os 10 computadores estão a transmitir na rede o áudio a partir
de um CD (de 700 MB) e de um DVD (de 4.7 GB). Qual o tempo total de
comunicação?
-5-
Download

Guião do Trabalho Prático Nº1 - Aula1