Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira.

Slides:



Advertisements
Apresentações semelhantes
Representação da Informação como padrões de bits
Advertisements

Programação de Computadores
O Áudio (Parte I) Prof. AMOUSSOU DOROTHÉE
Sistemas Multimídia Som
Amintas engenharia.
Tipos de dados, Variáveis, Expressões e Operadores
Sinais e Sistemas – Capítulo 4
Sinais e Sistemas – Capítulo 1
Princípios Transmissão de Dados
Conversão Analógica/Digital PCM
1. SINAIS Contém informações sobre uma variedade de coisas e atividades em nosso mundo físico. PROCESSAMENTO DE SINAIS Ato de extrair as informações necessárias.
1.1. CONTROLE DIGITAL SISTEMAS DE CONTROLE DIGITAL podem executar duas funções: SUPERVISÃO (externa à malha de realimentação): sincronismo de tarefas,
MODULAÇÃO Conceito de Modulação
CODIFICAÇÃO Prof. Sérgio Lima.
Capítulo I – Processamento de Sinal
Unidade I Noções básicas de Tecnologias da Informação e Comunicação.
Redes de Computadores Transmissão da Informação.
Sistemas e Sinais (LEIC) – Análise em Frequência
Fundamentos de Análise de Sinais
Fundamentos de Telecomunicações
Departamento de Electrónica, Telecomunicações e Informática
Prof. Marcelo de Oliveira Rosa
Formadora: Patrícia MateusArquitectura de Computadores – Técnico de Sistemas Nível 3 1 Sistemas de Numeração ARQUITECTURA INTERNA DE COMPUTADORES.
Fábio de Oliveira Borges
Arquitectura de Computadores – Técnico de Sistemas Nível 3
Numeração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Processamento de Sinais
Prof. Msc. Wellington W. F. Sarmento
1AT 2004 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira.
1AT 2006 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição Edição 2006/7 António Teixeira.
Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira.
Tipos de Dados Operadores
Algumas notas sobre a linguagem de programação C
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Programação e Aplicações Gráficas
1AT 2004 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira.
1AT 2004 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira.
1AT 2006 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição Edição 2006/7 António Teixeira.
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
Controle Digital Prof. Flávio Vidal, MSc..
REPRESENTAÇÃO BINÁRIA E CONVERSÃO
FUNDAMENTOS DE COMPUTAÇÃO
Codificação de Sinais Universidade Federal do Pará
1AT 2006 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira.
Colégio Agrícola “José Bonifacio”
Arquitetura básica de um Computador
Fundamentos de linguagens de programação
Universidade Federal de Uberlândia
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
Programação de Computadores - 1
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
Métodos Numéricos Computacionais
INTRODUÇÃO AOS MÉTODOS NUMÉRICOS Professor: Dr. Edwin B. Mitacc Meza
ORGANIZAÇÃO DE COMPUTADORES
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Codificadores e Decodificadores
SISTEMAS DE NUMERAÇÃO 1. SISTEMAS DE NUMERAÇÃO 2. ARITMÉTICA BINÁRIA
Introdução à Computação
Codificação Daniel Vieira.
S I S T E M A S M U L T I M Í D I A Prof. Welington Fraga Rizo.
Sistemas para Internet Algoritmos e Lógica de Programação
GEOMETRIA ANALITICA VETORES.
MODULAÇÃO POR CÓDIGO DE PULSO
Capítulo 14 Camada 6 A Camada de Apresentação. Sumário A Camada de Apresentação.
CONVERSORES DE SINAL.
1 Processamento de Sinais CDESC Rodolfo Araujo Victor RH/UP/ECTEP Aula 1 03/11/2010.
|PAULANINA| Byte Bits. Bits/Bytes Os computadores só “percebem ” o que lhes dizemos através de impulsos elétricos, que PODEM SER representados por: 1.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
STC 5 Professora Helena Oliveira Curso EFA AEOH Fábio Rodrigues Rafael Lourenço.
Transcrição da apresentação:

Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira

Aula 4 Som em Matlab Aliasing Quantização Conversão D/A SNR Conversão D/A Operações com sinais Aula 4

Ver Matlab num Instante Som em Matlab Ver Matlab num Instante

Sumário Geração de som com o Matlab Funções do Matlab para manipular sons sound wavread wavwrite Geração de sons artificais ruído sinusóides soma de duas sinusóides sinusóides de frequência variável

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!

Função sound A 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.

[x,fa]= wavread(’ficheiro’) Função wavread A função wavread lê um ficheiro de som em formato “wav” do Windows. Sintaxe [x,fa]= wavread(’ficheiro’) em que x é um vector , fa é a frequência de amostragem utilizada e ‘ficheiro’ é o ficheiro de som que se pretende ler.

wavwrite(x,fa,’ficheiro’) Função wavwrite A 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.

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) Corre aqui o código ouvir1

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

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)

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

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*400*t); % sinusóide de 400Hz sound(x,fa);

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); Copiar para o Matlab e alterar a frequência da segunda sinusóide Fazer o plot do resultado e falar da afinação de violas e outros intrumentos musicais

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

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

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)

Demos e links Demonstração de um efeito áudio de modificação do sinal de voz Ficheiro Matlab Som original Som modificado Links para páginas interessantes sobre som Página sobre o som e a sua digitalização Página sobre a audição CoolEdit96 - demo de um programa de edição de som mas que permite ouvir, visualizar e manipular sons digitais

Aliasing

O que acontece se não se amostra suficientemente rápido? x(t)=A cos (2f0t+) se amostramos com um período Ts obtemos x[n]=x(nTs)=A cos (2f0nTs+) 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 (2f0 nTs+ 2 k fs Ts+) = A cos (2f0 nTs+ 2 k +) = A cos (2f0 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 !

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

Uma segunda fonte de “aliasing” - “folding” x(t)=A cos (2f0t+) se amostramos com um período Ts obtemos x[n]=x(nTs)=A cos (2f0nTs+) 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 (-2f0 nTs+ 2 k fs Ts+) = A cos (-2f0 nTs+ 2 k +) = A cos (2f0 nTs +) % porque cos(- )=cos() = x[n] w[n] tem as mesmas amostras que x[n] sendo impossível distingui-la de x[n].

Porquê “folding” freq. aparente 1000 1000 2000 Frequência real

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

Quantização

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 Este processo designa-se por quantização

Capacidade de representação 1 Bit = 2 estados 2 Bits = 4 estados 3 Bits = 8 estados ... N Bits = 2N estados Memória : Mostrar no quadro as combinações possíveis com 2 bits 8 Bits 256 palavras :

Capacidade de representação Exemplo do número de estados possíveis possíveis para 3 bits b2 b1 b0 1

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ções numéricas possíveis. Os valores de amplitude amostrados são sempre arredondados para o código binário mais próximo.

Exemplo de quantização 8 bits 7 bits 3 bits 2 bits

Número de bits 8 bits 16 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)

Exemplo 3 bits

Em Matlab t=0:1e-3:4 x= sin (2*pi*10*t)+1 % para ser entre 0 e 1 bits=8 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 ...

Resultados 4 bits 2 bits erro 8 bits

Erro de arredondamento e bits 1 N=níveis  = distância entre níveis -1 N=2/ N  =2  =N/2 Erro máximo de arredondamento é = /2=1/N logo N=1/  número de bits (b)  b log2 N

SNR devido a quantização SNR= 20 log10 (App/) como A=2 e N=2b temos = 2-b App/= 2 x 2b = 2b+1 20 log10 (2b+1) = 20 (b+1) log10 (2) 6 (b+1) dB aumento de 6 dB/bit

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

Em Matlab % valor do erro máximo de arredondamento neste caso concreto % RETOMANDO O EXEMPLO ANTERIOR t=0:1e-3:4; x= sin (2*pi*10*t); bits=8; 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 concreto max(diferenca) % valor teórico para o erro máximo de arredondamento 1/N % SNR snr=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 ?

Conversão D/A

Demo1 – reconstrução com impulsos quadrados – “hold” Demo2 – com impulsos triangulares Demo2 – com impulsos ideais truncados

Operações com sinais

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

Operações na variável independente Mudança da escala temporal y(t)= x (a t) t x(t) t x(2t) a>1 => compressão 0<a<1 => expansão t x(t/2) Alguma ideia de aplicação na área da fala?

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

TPC  Leitura dos 2 capítulos relativos a sinais do livro Rosen & Howell

Codificação/Representação Os vários tipos de informação são codificados de forma diferente. Para interpretar cada um dos formatos é necessário um descodificador.

Código ASCII (texto) A primeira versão do código ASCII (American Standard Code for Information Interchange) foi criada em 1963 para normalizar a transmissão e armazenamento de texto. Em 1967 foram incluídas as letras minúsculas no código que no essencial permaneceu inalterado até aos nossos dias.

Código ASCII Exemplo de codificação para a letra “A” Letra “W”: 5x16+7=87=101 0111 Mostrar nesta altura que se premir a tecla “alt” e digitar o código ascii no teclado numérico pequeno que aparece o caracter correspondente.

Código ASCII 32 48 64 @ 80 P 96 ` 112 p 33 ! 49 1 65 A 81 Q 97 a 113 q 34 “ 50 2 66 B 82 R 98 b 114 r 35 # 51 3 67 C 83 S 99 c 115 s 36 $ 52 4 68 D 84 T 100 d 116 t 37 % 53 5 69 E 85 U 101 e 117 u 38 & 54 6 70 F 86 V 102 f 118 v 39 ‘ 55 7 71 G 87 W 103 g 119 w 40 ( 56 8 72 H 88 X 104 h 120 x 41 ) 57 9 73 I 89 Y 105 i 121 y 42 * 58 : 74 J 90 Z 106 j 122 z 43 + 59 ; 75 K 91 [ 107 k 123 { 44 , 60 < 76 L 92 \ 108 l 124 | 45 - 61 = 77 M 93 ] 109 m 125 } 46 . 62 > 78 N 94 ^ 110 n 126 ~ 47 / 63 ? 79 O 95 _ 111 o 127 DEL

Exemplo código ASCII Código ASCII 7 Bits = 128 Caracteres Memória : : 1 77 1 65 1 84 MATLAB 1 76 1 65 1 66 :

UNICODE O código ASCII possui a grande desvantagem de apenas permitir a representação de 28=256 símbolos diferentes. O código UNICODE pretende normalizar a codificação dos caracteres utilizados por todas as escritas existentes no mundo. Utiliza 16 bits para codificar cada caracter e encontra-se disponível nos sistemas informáticos mais recentes. Mais informações em http://www.unicode.org Mostrar aqui o Insert Symbol do Word e uma font unicode Mostrar este pdf com os caracteres chineses http://www.unicode.org/charts/PDF/U3400.pdf

Códigos binários Para representar números com bits é possível encontrar uma forma mais compacta do que a codificação ASCII. No sistema decimal utilizado para realizar cálculo, os números são representados fazendo uso da sua posição relativa: Base 10

Códigos binários Se modificarmos a base de decimal para binária podemos utilizar o mesmo tipo de representação: Note-se que o número anterior tem o valor em decimal de 8+0+0+1=9, sendo por isso uma das possíveis representações de números decimais em binário

Formato exponencial decimal Em formato decimal é útil representar os números utilizando a notação exponencial: Mantissa Expoente

Formato exponencial binário No formato exponencial binário a mantissa e a base são representados em formato binário na base 2. Mantissa Expoente

Formato numérico no Matlab O Matlab utiliza 64 bits para representar os números: 52bits para a mantissa e 12 para o expoente. A representação dos números é feita utilizando um formato exponencial que permite uma gama dinâmica muito grande.

Norma IEEE754 Precisão simples (32 bits, Bias = 127) Precisão dupla (64 bits, Bias = 1023) Precisão extendida (80, Bias = 32767) S Expoente Mantissa 31 23 22 S Expoente Mantissa 63 52 51 S Expoente Mantissa 79 64 63

Consequências... É finito o universo de representação numérica Problemas de resolução Erros de arredondamento Propagação durante computação. Recta real Números representáveis Mostrar aqui exemplos do tipo sin(pi), sin(1e20*pi)