Apresentação Emanações Acusticas

Preview:

DESCRIPTION

Apresentação Emanações Acusticas

Citation preview

1AT 2006

Conceitos de Sinais e SistemasMestrado em Ciências da Fala e da Audição

Edição 2006/7

António Teixeira

2AT 2006

Aula 3• Conversão A/D

• Aliasing

• Quantização

• Conversão D/A

• Operações com sinais

• Som em Matlab

3AT 2006

Passagem de contínuo a discreto

4AT 2006

Conversão A/D• O processo pelo qual um sinal é convertido

numa representação digital é conhecido por conversão analógica-digital – A/D conversion

• O processo inverso D/A

5AT 2006

0 20 40 60 80 100 120 140-2

0

2

4

6

8

10

Passagem de contínuo a discreto - Amostragem

0 20 40 60 80 100 120 140-2

0

2

4

6

8

10

0 20 40 60 80 100 120 140-2

0

2

4

6

8

10

0 20 40 60 80 100 120 140-2

0

2

4

6

8

10

0 20 40 60 80 100 120 140-2

0

2

4

6

8

10

0.00

1.95

7.40

9.08

8.16

6.02

2.80

0.14

-0.6

2.52

6.46

8.08

6.52

6AT 2006

0 20 40 60 80 100 120 140-2

0

2

4

6

8

10

0.00

1.95

7.40

9.08

8.16

6.02

2.80

0.14

-0.6

2.52

6.46

8.08

6.52

Amostragem

Período de amostragem

7AT 2006

Amostragem• Tira-se amostras do sinal espaçadas de um intervalo

de tempo fixo, o período de amostragem, representado por Ta

• O período de amostragem depende da frequência de amostragem (fa) [em Inglês fs]– Número de amostras por segundo

– Ex: fa=1000 Hz dá T=1/fa=1/1000=1 ms

• O número total de pontos de um sinal digital depende da sua duração e da frequência de amostragem– 5 segundos amostrados a 10 000 Hz dão 50 000 amostras

8AT 2006

Sinal Discreto

S= [0, 1.95, 7.4, 9.08, 8.16, 6.03, 2.8,

0.15, -0.68, 2.53, 6.46, 8.09, 6.52]

O sinal anterior pode ser representado de forma aproximada apenas pela amplitude das suas amostras e pelo período de amostragem.

Ou seja, pode ser representado por um vector

9AT 2006

Uma sinusóide de 2.5 Hz amostrada

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

0

1fa=40 Hz

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

0

1fa=6 Hz

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

0

1fa=4 Hz

10AT 2006

Teorema de Nyquist• Apenas ficar com algumas amostras do sinal

não leva a perder informação contida no sinal analógico ?– Nyquist mostrou que sinais com largura de banda

limitada – que contêm apenas uma certa gama de frequências – podem ser reconstruídos EXACTAMENTE do sinal amostrado desde que a FREQUÊNCIA DE AMOSTRAGEM SEJA O DOBRO da maior frequência contida no sinal

11AT 2006

Exemplo• Seja 100 Hz a frequência mais elevada contida

num sinal analógico– Qual deve ser a frequência de amostragem a

utilizar ?– Estes 100 Hz podem corresponder a algum sinal

que conhece da área da voz ?

• E no caso do sinal de voz ?

12AT 2006

Aliasing

O que acontece se não se respeitar o Teorema ?

13AT 2006

“Aliasing”• Se usarmos uma

frequência inferior a 2x a maior frequência contida no sinal ocorre o chamado “aliasing”

• Exemplo:– Sinusóide de 14 Hz

– Sinusóide de 4 Hz

– Ambas amostradas a 10 Hz

– Amostras são as mesmas

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

-0.5

0

0.5

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

-0.5

0

0.5

1

14AT 2006

O que acontece se não se amostra suficientemente rápido?

x(t)=A cos (2f0t+)se amostramos com um período Ts obtemos

x[n]=x(nTs)=A cos (2f0nTs+)

Consideremos outra sinusóide com frequência f0+k fs, com k inteiro e fs=1/Ts

y(t)=A cos (2(f0+k fs)t + )Amostrando y(t) com o mesmo Ts, obtemos

y[n]=y(nTs)=A cos (2 (f0+k fs) nTs+)

= A cos (2f0 nTs+ 2 k fs Ts+)

= A cos (2f0 nTs+ 2 k +)

= A cos (2f0 nTs +)= x[n]

y[n] tem as mesmas amostras que x[n] sendo impossível distingui-la de x[n]. Como k é um inteiro, positivo ou negativo, existem um número infinito de

sinusóides que resultam nas mesmas amostras x[n] quando amostradas com a frequência fs !

15AT 2006

O que acontece se não se amostra suficientemente rápido?

Considermos uma sinusóide de frequência f: x(t)=A cos (2f0t+)se amostramos com um período Ts obtemos

x[n]=x(nTs)=A cos (2f0nTs+)

Consideremos outra sinusóide com frequência f0+k fs, com k inteiro e fs=1/Ts

y(t)=A cos (2(f0+k fs)t + )Amostrando y(t) com o mesmo Ts, obtemos

y[n]=y(nTs)=A cos (2 (f0+k fs) nTs+)

= A cos (2f0 nTs+ 2 k fs Ts+)

= A cos (2f0 nTs+ 2 k +)

= A cos (2f0 nTs +)= x[n]

y[n] tem as mesmas amostras que x[n] sendo impossível distingui-la de x[n]. Como k é um inteiro, positivo ou negativo, existem um número infinito de

sinusóides que resultam nas mesmas amostras x[n] quando amostradas com a frequência fs !

16AT 2006

alias• As frequências f0+k fs são chamadas “alias” da

frequência f0

• porque todas elas parecem ser a mesma quando amostradas com frequência de amostragem fs

• No dicionário Inglês-Português da Porto Editora:– alias [´eiliaes] , 1 adv. aliás

2 s. pseudónimo, nome falso, nome suposto

17AT 2006

Uma segunda fonte de “aliasing” - “folding”

Considerando sinusóide de freq. f: x(t)=A cos (2f0t+)se amostramos com um período Ts obtemos

x[n]=x(nTs)=A cos (2f0nTs+)

Consideremos outra sinusóide com frequência -f0+k fs, com k inteiro e fs=1/Ts

w(t)=A cos (2(-f0+k fs)t + )Amostrando y(t) com o mesmo Ts, obtemos

w[n]=y(nTs) =A cos (2 (-f0+k fs) nTs+)

= A cos (-2f0 nTs+ 2 k fs Ts+)

= A cos (-2f0 nTs+ 2 k +)

= A cos (2f0 nTs +) % porque cos(- )=cos()= x[n]

w[n] tem as mesmas amostras que x[n] sendo impossível distingui-la de x[n].

18AT 2006

Porquê “folding”

Frequência real

freq. aparente

1000

1000 2000

19AT 2006

Aliasing• Sendo f a frequência de um sinal e a frequência de

amostragem fs, as seguintes regras permitem calcular a frequência

• f < ½fs • Como a frequência do sinal se encontra abaixo do limite imposto

pelo teorema da amostragem, não ocorre “aliasing”; o sinal amostrado possui a frequência correcta.

• ½fs < f < fs • Existe “aliasing” sendo a frequência do sinal amostrado fa = fs - f

• f > fs • Ocorre “aliasing”. Para obter a frequência do sinal amostrado obter

o resto da divisão de f por f. No final se ½fs < f < fs o sinal amostrado fa = fs - f ; caso contrário fa =  f

20AT 2006

Aliasing

5k

5k 10k 15k freq real

freq digital

21AT 2006

Quantização

22AT 2006

Quantização• Os valores contínuos da amplitude também

têm de ser convertidos em valores tratáveis pelo computador– Os computadores guardam os números usando 0s e

1s, os chamados bits– 3 bits dá para representar 8 números diferentes

• 000 001 010 011 100 101 110 111

• Este processo designa-se por quantização

23AT 2006

Precisão, número de bits• O número de bits usados para representação

determina a precisão (ou resolução) em amplitude do processo de amostragem referido atrás.

• Quanto mais bits forem usados, maior será essa resolução.

• Para obtermos uma resolução equivalente à de um sistema CD de áudio, são necessários 16 bits, – o que significa que temos 65536 combinações65536 combinações

numéricas possíveis.

– Os valores de amplitude amostrados são sempre arredondados para o código binário mais próximo.

24AT 2006

Exemplo de quantização• 8 bits

• 7 bits

• 3 bits

• 2 bits

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

0

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

0

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

0

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

0

1

25AT 2006

Em Matlabt=0:1e-3:4

x= sin (2*pi*10*t)+1 % para ser entre 0 e 1

bits=1

N=2^bits

xquant=round(x*(N-1)/2)*2/(N-1)

stem(t,xquant,'ro'); hold on;

diferenca=x-xquant

plot(t,diferenca, 'g+')

% experimente com bits=1,2 ...

26AT 2006

Resultados

2 bits

erro

4 bits

8 bits

27AT 2006

Exemplo

•3 bits

28AT 2006

Número de bits• 8 bits

– 256 níveis– Se tivermos sinal entre – 1 e + 1 V

• Erro máximo 3.4 mV (mili=0.001)

• 16 bits– 65536 níveis– Se tivermos sinal igual ao anterior

• Erro máximo 15 microV (micro=0.000001)

29AT 2006

Erro de arredondamento e bits

•N=níveis

= distância entre níveis

N=2/ N =2 =2/N

Erro máximo de arredondamento é = /2=1/N

logo N=1/

número de bits (b) b log2 N

1

-1

30AT 2006

SNR devido a quantização

SNR= 20 log10 (App/)

como A=2 e N=2b temos = 2-b

App/= 2 x 2b = 2b+1

logo 20 log10 (2b+1) = 20 (b+1) log10 (2)

6 (b+1) dB

aumento de 6 dB/bit

31AT 2006

Em Matlab % RETOMANDO O EXEMPLO ANTERIOR t=0:1e-3:4;x= sin (2*pi*10*t);bits=9;N=2^bits;xquant=round(x*(N-1)/2)*2/(N-1);plot(t,xquant,'ro'); hold on;diferenca=x-xquant;plot(t,diferenca, 'g+');

% valor do erro máximo de arredondamento neste caso concretomax(diferenca)% valor teórico para o erro máximo de arredondamento1/N% SNRsnr=10*log10(dot(x,x)/dot(diferenca,diferenca))

% EXPERIMENTE com 1,2 ... até 8 bits. Qual o aumento de snr com o aumento de 1 bit ?

32AT 2006

Exercício• Estimar o número de bits necessários para

representar amostras de um sinal com valores entre –1 e 1 com um erro de arredondamento inferior a 10-3

33AT 2006

Quantos Hz ? Quantos bits ? • Para sinal de voz ?

• Para música (CD) ?– Quais os valores utilizados pelos leitores de CD ?– E pelos DATs ?

• Para sinal medindo a abertura e fecho das cordas vocais ?

• Para sinal gravado via telefone ?

34AT 2006

Representação de sinais digitais• Depois da amostragem e quantização ficamos

com uma lista de números que facilmente se podem tratar em programas como o SFS e o Matlab– As sinusóides que temos vindo a ver são de facto

listas de números como a seguinte:

• 0 0.0251 0.0502 0.0753 0.1004 0.1253 0.1502 0.1750 0.1997 0.2243 ....

35AT 2006

Conversão D/A

36AT 2006

Reconstrução com impulsos quadrados – “hold”

37AT 2006

Operações com sinais

38AT 2006

Operações com sinais I• Operações na variável dependente

– Mudança de escala (da amplitude)• y(t)=c x(t) ou y[n]=c x[n]

• Exemplo: Amplificador electrónico

– Adição• y(t)= x1(t) + x2(t)

• Exemplo: mixer áudio

– Multiplicação• y(t)= x1(t) x2(t)

• Exemplo: sinal de rádio AM (modulação de Amplitude)

– Diferenciação, Integração• Ex: bobine e condensador

39AT 2006

Operações na variável independente

• Mudança da escala temporal– y(t)= x (a t)

t

x(t)

t

x(2t)

t

x(t/2)

a>1 => compressão

0<a<1 => expansão

•Alguma ideia de aplicação na área da fala?

40AT 2006

Operações na variável independente

• inversão temporal y(t)= x (- t)

t

x(t)

-t1 t2

t

y(t)=x(-t)

-t2 t1

41AT 2006

Som em Matlab

>> Ver Matlab num Instante

42AT 2006

Sumário• Geração de som com o Matlab

– Funções do Matlab para manipular sons

•sound/ soundsc•wavread•wavwrite

– Geração de sons artificais• ruído

• sinusóides

• soma de duas sinusóides

• sinusóides de frequência variável

43AT 2006

Som no Matlab• É possível utilizar o Matlab na manipulação e

geração de som.

• Existem funções para ler ficheiros de som para um vector, gravar um vector para um ficheiro e para reproduzir sons a partir de ficheiros.

• Podem-se ouvir os vectores!

44AT 2006

Função soundA função sound permite reproduzir um som

armazenado num vector.Sintaxe

sound(x,fa)em que x é um vector linha ou coluna e fa é a frequência de amostragem que se

pretende utilizar.

A função soundsc normaliza o vector para ter máximo igual a 1.0

45AT 2006

Função wavreadA função wavread lê um ficheiro de som em

formato “wav” do Windows.

Sintaxe

[x,fa,bits]= wavread(’ficheiro’)

em que x é um vector ,

fa é a frequência de amostragem utilizada

bits o número de bits

e ‘ficheiro’ é o ficheiro de som que se pretende ler.

46AT 2006

Função wavwriteA função wavwrite escreve um ficheiro de

som em formato “wav” do Windows.

Sintaxe

wavwrite(x,fa,’ficheiro’)

em que x é um vector ,

fa é a frequência de amostragem utilizada

e ‘ficheiro’ é o ficheiro de som onde se pretende guardar o som armazenado em x.

47AT 2006

Exemplo: ficheiro de som

Neste exemplo pretende-se ler para um vector um som armazenado num ficheiro e reproduzi-lo no Matlab

[x,fa]= wavread('som.wav');

sound(x,fa) % ou soundsc(x,fa)

48AT 2006

Exemplo: Gravar um som• Neste exemplo lê-se para um vector

armazenado num ficheiro, manipula-se e grava-se num ficheiro diferente.

[x,fa]= wavread('som.wav');

sound(x,fa)

y= x(end:-1:1); % Inverte no tempo

wavwrite(y,fa,'som2.wav');

49AT 2006

Alteração da freq. de amostragem• Ao reproduzir um som é possível alterar a

frequência de amostragem com que é reproduzido.

– Exemplo: utilizando o dobro da frequência de amostragem do original.•sound(x,fa*2)

– Exemplo: utilizando metade da frequência de amostragem do original•sound(x,fa/2)

50AT 2006

Geração de sons artificiais

O Matlab possui formas expeditas de gerar sons artificais. Vamos ver como é que se geram diferentes tipos de sons.

A função rand gera uma sequência pseudo aleatória. Qual será o som produzido por um vector gerado com este função?

x= rand(1,10000)-0.5; % Ruído de média nula

sound(x,8000);

51AT 2006

Geração de sons artificiais

A função seno desempenha um papel central na geração de sons articiais.

Vejamos qual o som que obtemos.

fa= 8000; Ta= 1/fa;

t= 0:Ta:1; %Gera o sinal de tempo

x= sin(2*pi*1000*t); % sinusóide de 400Hz

sound(x,fa);

=2f

52AT 2006

Geração de sons artificiais

Soma de duas sinusóides

Podemos gerar dois vectores com sinusóides com frequências diferentes e somá-los para ouvir o resultado

fa= 8000; Ta= 1/fa;

t= 0:Ta:1; %Gera o sinal de tempo

x= sin(2*pi*400*t); % sinusóide de 400Hz

y= sin(2*pi*410*t); % sinusóide de 410Hz

soundsc(x+y,fa);

53AT 2006

Geração de sons artificiais

Multiplicação de sinusóides

Podemos gerar dois vectores com sinusóides de frequências diferentes e realizar um produto ponto-a-ponto entre eles.

fa= 8000; Ta= 1/fa;

t= 0:Ta:1; %Gera o sinal de tempo

x= sin(2*pi*400*t); % sinusóide de 400Hz

y= sin(2*pi*80*t); % sinusóide de 80Hz

soundsc(x.*y,fa);

54AT 2006

Geração de sons artificiais

Sinusóides de frequência variável

Com o Matlab não é muito díficil gerar uma sinusóide cuja frequência varia linearmente ao longo do tempo.

fa= 8000; Ta= 1/fa;

t= [0:Ta:2 2:-Ta:0]; %Gera o tempo

x= sin(2*pi*400*t.*t);sound(x,fa)

55AT 2006

Geração de sons artificiais

Sinusóides de frequência variável

Neste exemplo temos uma sinusóide cuja frequência varia ao longo do tempo de forma sinusóidal.

fa= 8000; Ta= 1/fa;

t= 0:Ta:2; %Gera o sinal de tempo

s= 80*sin(2*pi*5*t);

x= sin(2*pi*400*t + s);

sound(x,fa)

56AT 2006

TPC • Leitura dos 2 capítulos relativos a sinais do

livro Rosen & Howell– disponíveis em forma digital

Recommended