apresentação emanações acusticas

56
1 AT 2006 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição Edição 2006/7 António Teixeira

Upload: felipe-cidade

Post on 12-Jan-2016

11 views

Category:

Documents


0 download

DESCRIPTION

Apresentação Emanações Acusticas

TRANSCRIPT

Page 1: Apresentação Emanações Acusticas

1AT 2006

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

Edição 2006/7

António Teixeira

Page 2: Apresentação Emanações Acusticas

2AT 2006

Aula 3• Conversão A/D

• Aliasing

• Quantização

• Conversão D/A

• Operações com sinais

• Som em Matlab

Page 3: Apresentação Emanações Acusticas

3AT 2006

Passagem de contínuo a discreto

Page 4: Apresentação Emanações Acusticas

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

Page 5: Apresentação Emanações Acusticas

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

Page 6: Apresentação Emanações Acusticas

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

Page 7: Apresentação Emanações Acusticas

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

Page 8: Apresentação Emanações Acusticas

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

Page 9: Apresentação Emanações Acusticas

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

Page 10: Apresentação Emanações Acusticas

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

Page 11: Apresentação Emanações Acusticas

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 ?

Page 12: Apresentação Emanações Acusticas

12AT 2006

Aliasing

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

Page 13: Apresentação Emanações Acusticas

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

Page 14: Apresentação Emanações Acusticas

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 !

Page 15: Apresentação Emanações Acusticas

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 !

Page 16: Apresentação Emanações Acusticas

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

Page 17: Apresentação Emanações Acusticas

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].

Page 18: Apresentação Emanações Acusticas

18AT 2006

Porquê “folding”

Frequência real

freq. aparente

1000

1000 2000

Page 19: Apresentação Emanações Acusticas

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

Page 20: Apresentação Emanações Acusticas

20AT 2006

Aliasing

5k

5k 10k 15k freq real

freq digital

Page 21: Apresentação Emanações Acusticas

21AT 2006

Quantização

Page 22: Apresentação Emanações Acusticas

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

Page 23: Apresentação Emanações Acusticas

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.

Page 24: Apresentação Emanações Acusticas

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

Page 25: Apresentação Emanações Acusticas

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 ...

Page 26: Apresentação Emanações Acusticas

26AT 2006

Resultados

2 bits

erro

4 bits

8 bits

Page 27: Apresentação Emanações Acusticas

27AT 2006

Exemplo

•3 bits

Page 28: Apresentação Emanações Acusticas

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)

Page 29: Apresentação Emanações Acusticas

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

Page 30: Apresentação Emanações Acusticas

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

Page 31: Apresentação Emanações Acusticas

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 ?

Page 32: Apresentação Emanações Acusticas

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

Page 33: Apresentação Emanações Acusticas

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 ?

Page 34: Apresentação Emanações Acusticas

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 ....

Page 35: Apresentação Emanações Acusticas

35AT 2006

Conversão D/A

Page 36: Apresentação Emanações Acusticas

36AT 2006

Reconstrução com impulsos quadrados – “hold”

Page 37: Apresentação Emanações Acusticas

37AT 2006

Operações com sinais

Page 38: Apresentação Emanações Acusticas

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

Page 39: Apresentação Emanações Acusticas

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?

Page 40: Apresentação Emanações Acusticas

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

Page 41: Apresentação Emanações Acusticas

41AT 2006

Som em Matlab

>> Ver Matlab num Instante

Page 42: Apresentação Emanações Acusticas

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

Page 43: Apresentação Emanações Acusticas

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!

Page 44: Apresentação Emanações Acusticas

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

Page 45: Apresentação Emanações Acusticas

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.

Page 46: Apresentação Emanações Acusticas

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.

Page 47: Apresentação Emanações Acusticas

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)

Page 48: Apresentação Emanações Acusticas

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');

Page 49: Apresentação Emanações Acusticas

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)

Page 50: Apresentação Emanações Acusticas

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);

Page 51: Apresentação Emanações Acusticas

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

Page 52: Apresentação Emanações Acusticas

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);

Page 53: Apresentação Emanações Acusticas

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);

Page 54: Apresentação Emanações Acusticas

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)

Page 55: Apresentação Emanações Acusticas

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)

Page 56: Apresentação Emanações Acusticas

56AT 2006

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

livro Rosen & Howell– disponíveis em forma digital