Conceitos de Sinais e Sistemas Mestrado em Ci - PowerPoint PPT Presentation

About This Presentation
Title:

Conceitos de Sinais e Sistemas Mestrado em Ci

Description:

Title: Aula 1 de CSS MCFA Author: Ant nio J S Teixeira Last modified by: at Created Date: 1/29/2000 11:15:03 AM Document presentation format: On-screen Show – PowerPoint PPT presentation

Number of Views:90
Avg rating:3.0/5.0
Slides: 80
Provided by: Antn84
Category:

less

Transcript and Presenter's Notes

Title: Conceitos de Sinais e Sistemas Mestrado em Ci


1
Conceitos de Sinais e SistemasMestrado em
Ciências da Fala e da AudiçãoEdição 2006/7
  • António Teixeira

2
  • Programar ?
  • Matlab
  • Vectores
  • Gráficos
  • Som em Matlab

Aula 2
3
Introdução à Programação
4
Porquê programar ?
  • Trabalhar na área da linguagem é quase impossível
    actualmente sem computadores
  • Os dados são tratados, analisados, guardados,
    ordenados, e distribuídos por computadores.
  • Várias aplicações estão disponíveis, mas para
    controlar realmente o processo alguns
    conhecimentos de programação são essenciais.

5
  • Exemplos
  • Um fonologista interessado em clusters de
    consoantes. Tem um dicionário e quer descobrir o
    mais cluster em posição final de palavra. Faz
    manualmente ?
  • Um psicolinguista interessado numa experiência
    acerca da silabificação
  • Foneticistas que necessitam de normalizar a
    amplitude, calcular formantes, etc de centenas de
    gravações
  • Não sabendo programar, tem-se poucas opções
  • Uma é fazer o trabalho manualmente
  • Outra contratar alguém
  • Outra ainda usar uma aplicação existente
  • Normalmente limitadas. As necessidades podem não
    ser contempladas

6
O computador
  • Máquina programável que processa informação

7
Processar informação
  • Executar sequências de operações elementares
    (instruções)
  • sobre dados
  • provenientes do exterior através dum dispositivo
    de entrada
  • e encaminhar os resultados para o exterior
    através de dispositivos de saída.

8
Programabilidade
  • A sequência de instruções elementares que
    habitualmente se designa por programa pode ser
    alterada sempre que se deseje.

9
Um pouco de estrutura
  • Aplicações MS OFFICE, Browsers, CAD, MATLAB, ...
  • Software
  • Sistema Operativo MS Windows, LINUX, MacOS, ...
  • Dispositivos de I/O
  • Hardware
  • Subsistemas Motherboard, Gráficos, Audio,
    Armazenamento, Comunicações, ...
  • Componentes CPU, MEMÓRIA, ...

10
Dispositivos de Entrada/Saída
11
Memória
  • Agente de armazenamento de informação

Disponibilidade Acesso Organização
Capacidade
  • Suportes físicos

Electrónicos
Magnéticos
Ópticos
12
Arquitectura funcional
CPU
Memória Principal (RAM)
Memória de Massa (Disco Duro, Diskette, CDROM)
Comunicações POTS,ADSL, EtherNET
Controlo de Interacção Teclado, rato, monitor ...
13
Uma perspectiva dinâmica
Memória de massa
Programa
CPU
RAM
14
Representação de valores num computador
15
Codificação
  • Os computadores armazenam toda a informação na
    forma mais elementar designada por bits.
  • Cada bit pode tomar dois valores distintos 1 ou
    0. Um conjunto de 8 bits designa-se por Byte.
  • 1024 Bytes 1kByte.
  • 1024 x 1024 Bytes 1MByte.
  • 1024 x 1MByte 1GByte.
  • Para armazenar informação proveniente das mais
    diversas fontes é necessário codificá-la.
  • O conhecimento do código permite interpretar a
    informação armazenada na forma binária.

16
Capacidade de representação
  • 1 Bit 2 estados
  • 2 Bits 4 estados
  • 3 Bits 8 estados
  • ...
  • N Bits 2N estados

Memória


8 Bits 256 palavras
17
Capacidade de representação
  • Exemplo do número de estados possíveis possíveis
    para 3 bits

b2 b1 b0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
18
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.
19
Código ASCII (texto)
  • ASCII
  • American Standard Code for Information
    Interchange
  • A primeira versão 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.

20
Código ASCII
Exemplo de codificação para a letra
A 4x16164165100 0001 Letra W
5x16787101 0111
21
Código ASCII
32 48 0 64 _at_ 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 lt 76 L 92 \ 108 l 124
45 - 61 77 M 93 109 m 125
46 . 62 gt 78 N 94 110 n 126
47 / 63 ? 79 O 95 _ 111 o 127 DEL
22
Exemplo código ASCII
  • Código ASCII
  • 7 Bits 128 Caracteres

Memória

0
77
65
84
MATLAB
76
65
66

23
UNICODE
  • O código ASCII possui a grande desvantagem de
    apenas permitir a representação de 28256
    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

24
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
25
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 80019, sendo por isso uma das
    possíveis representações de números decimais em
    binário

26
Formato exponencial decimal
  • Em formato decimal é útil representar os números
    utilizando a notação exponencial

Mantissa
Expoente
27
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
28
Ferramentas Informáticas
29
Ferramentas Informáticas
  • Objectivos
  • Auxiliar na resolução de problemas cuja resolução
    manual seja demorada
  • Tipos de Ferramentas
  • Linguagens de programação
  • Análise e visualização de dados
  • Ambientes de cálculo

30
Linguagens de programação
  • Utilizadas para realizar todo o tipo de programas
    mesmo que não sejam de cálculo
  • Vantagens
  • Grande flexibilidade
  • O cálculo pode ser mais rápido e eficiente
  • Desvantagens
  • Necessidade de aprender uma linguagem
  • Tempo de desenvolvimento para chegar à solução
  • Exemplos
  • Fortran, Basic, Pascal, C, Java

31
Análise e visualização de dados
  • Realizam o tratamento numérico dos dados e a sua
    visualização.
  • Utilizadas principalmente para cálculo
    estatístico
  • Vantagens
  • Fáceis de utilizar
  • Obtenção rápida de resultados
  • Capacidades de visualização e apresentação dos
    resultados poderosas
  • Desvantagens
  • Pouco flexíveis na manipulação dos dados
  • Difícil automatizar procedimentos
  • Exemplos
  • Excel, SPSS

32
Análise de dados com o Excel
  • Dados
  • Vamos supor que conseguimos um ficheiro de texto
    com as temperaturas registadas em Lisboa durante
    o ano 2000.
  • Objectivo
  • Determinar a temperatura média
  • A temperatura máxima
  • A temperatura mínima

33
Análise de dados com o Excel
34
Ambientes de cálculo
  • Utilização fácil e aprendizagem rápida
  • Podem realizar cálculo simbólico e numérico
  • Vantagens
  • Possibilidade de automatizar os cálculos
  • Muito versáteis possuindo uma linguagem intuitiva
  • Desvantagens
  • São necessários alguns conhecimentos de
    programação
  • Mais lentos nos cálculos que as linguagens de
    programação
  • Exemplos
  • Mathematica, Maple, MathCad, Matlab

35
Mathematica
  • Muito divulgado para cálculo simbólico
  • Igualmente poderoso para calculo numérico
  • Exemplos de aplicações
  • Cálculo de limites
  • Cálculo de derivadas e integrais
  • Simplificação de expressões algébricas
  • Gráficos de funções 2D e 3D

36
Matlab
  • Vocacionado para o cálculo numérico
  • MATLAB MATrix LABoratory
  • Os elementos são sempre matrizes numéricas
  • Um número é uma matriz com apenas um elemento

37
Introdução ao Matlab
38
O que é o Matlab ?
  • Aplicação informática vocacionada para o cálculo
    numérico
  • Aplicações
  • Análise de dados
  • Visualização científica
  • Simulação de sistemas

39
Demonstração
  • O Matlab tem um conjunto de demonstrações que
    ilustram as suas possíveis aplicações.
  • Para aceder à demonstração basta entrar o
    comando
  • demo.
  • Gráficos de funções
  • Visualização de volumes
  • Animações
  • Tutorais sobre o Matlab

40
O ambiente gráfico
Janela da comandos
Ajuda
Para mudar a pasta de trabalho
Documentação e demos dos produtos instalados
Espaço de trabalho com as variáveis
Histórico dos comandos
Conteúdo da pasta de trabalho
41
O Matlab como calculadora
  • O Matlab permite o cálculo numérico directo a
    partir da janela de comando.
  • Operações matemáticas
  • soma
  • - subtracção
  • multiplicação
  • / divisão
  • potenciação

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

43
Norma IEEE754
  • Precisão simples (32 bits, Bias 127)
  • Precisão dupla (64 bits, Bias 1023)
  • Precisão extendida (80, Bias 32767)

44
Consequências...
  • É finito o universo de representação numérica
  • Problemas de resolução
  • Erros de arredondamento
  • Propagação durantecomputação.

Recta real
Números representáveis
45
Variáveis
  • No Matlab é possível guardar em variáveis
    conjuntos de números, exemplo
  • x 2
  • Os nomes das variáveis destinguem as letras
    maiúsculas das minúsculas.
  • Exemplo pi?Pi
  • As variáveis são guardadas no espaço de trabalho
    workspace
  • As variáveis podem ser utilizadas nas operações
    da mesma forma que os números.

46
Variáveis
  • Apagar variáveis
  • clear v1 v2 apaga as variáveis v1 e v2
  • clear all apaga todas as variáveis
  • Ver as variáveis no espaço de trabalho
    (workspace)
  • whos mostra todas as variáveis do espaço de
    trabalho com informação adicional de dimensão
    e tipo
  • who mostra apenas os nomes das variáveis
  • Guardar variáveis
  • save Guarda em disco todas as variáveis do
    workspace
  • load Carrega do disco as variáveis guardadas
  • save ficheiro v1 v2 Guarda as variáveis v1 e v2
    no ficheiro
  • load ficheiro Carrega as variáveis do ficheiro

47
Vectores
48
Vectores
  • Conceito geométrico de vector (duas dimensões)

V
49
Vectores
  • Da figura anterior pode-se concluir que bastam
    duas grandezas numéricas para representar um
    vector num espaço de duas dimensões.
  • (a,b)

50
Vectores
  • Num espaço com três dimensões são necessárias
    três grandezas
  • (a,b,c)
  • Generalizando, um vector com N elementos pertence
    a um espaço com N dimensões.
  • Elementos de um espaço com mais de 3 dimensões
    são difíceis de representar graficamente.

51
Vectores no Matlab
  • No Matlab para criar um vector v basta fazer
    por exemplo
  • v 4, 5, 4, 2, 1, 7
  • Os elementos são separados por espaços ou vírgulas

52
O operador
  • O mais versátil operador do MATLAB
  • Permite definir de forma compacta um conjunto de
    valores (vector) em progressão aritmética.
  • x valor inicial passo valor final
  • Nota argumentos de não podem ser
    complexos
  • x 110
  • x -pi 2pi/359 pi
  • x 100-280
  • O recurso ao não obriga à delimitação por

53
linspace
  • Quando sabemos os limites numéricos da
    sequência
  • xi e xf e o número de elementos N então
    devemos
  • recorrer à função
  • x linspace(xi,xf,N)
  • Espaçamento linear (uniforme) entre os
    elementos
  • de x. Evita-se o cálculo do passo.
  • x linspace(10,-10,5)
  • x
  • 10 5 0 -5 -10

54
logspace
  • Quando pretendemos criar uma sequência com
    espaçamento logaritmico entre os valores 10d1 e
    10d2.
  • O parâmetro N especifica o número de pontos
  • Exemplo 5 pontos com espaçamento logarítmico
    entre os valores 10 e 100
  • gtgt logspace(1,2,5)
  • ans
  • 10.0000 17.7828 31.6228 56.2341
    100.0000
  • Utiliza-se para a construção de gráficos com
    escalas logarítmicas.

55
Gráficos
56
Gráficos de uma Variável
  • Sintaxe do comando plot
  • v rand(1,10)
  • plot(v)
  • Nesta versão mais simples é desenhado um gráfico
    de linha contínua com a amplitude dos elementos
    do vector v. Nas abcissas aparecem os índices dos
    elementos de v.

57
Rotação 3D do gráfico
Edição Manual das propriedades do Gráfico
Inserção de setas e linhas
Zoom
Inserção manual de texto
Ordenadas
Abcissas
58
Sintaxe do comando plot
  • plot(x1,y1,x2,y2,....)
  • Os vectores das ordenadas x1, x2, ... podem ter
    um número diferente de elementos.
  • O número de elementos dos pares (x1,y1) e (x2,y2)
    deve ser o mesmo.
  • Exemplo
  • x1 -55 x2 -1010
  • y1 2x1 y23x2
  • plot(x1,y1,x2,y2)

59
Exemplo
60
Alteração do aspecto gráfico
  • Para além dos argumentos vectoriais a função plot
    permite ainda alterar o modo como as linhas são
    desenhadas. Essas indicações são codificadas na
    forma de uma string de texto colocada a seguir
    aos vectores dos pontos.
  • plot(x1,y1,string1,x2,y2,string2,...)
  • A string pode definir os seguintes atributos
    das linhas desenhadas
  • Marcadores dos pontos do gráfico
  • Cor das linhas e marcadores
  • Tipo de linha a desenhar

61
Definição dos atributos
  • Cor Marcadores Linhas
  • y amarelo . ponto
    - linha a cheio
  • m rosa o círculo
    ponteada
  • c azul claro x marca x
    -. traço ponto
  • r encarnado marca mais
    -- tracejada
  • g verde estrela
  • b azul s quadrado
  • w branco d diamante
  • k preto v triângulo (cima)
  • triângulo (baixo)
  • lt triângulo
    (esquerda)
  • gt triângulo
    (direita)
  • p pentagrama
  • h hexagram

62
Alteração do aspecto gráfico
plot(x1,y1, '-ob')
plot(x2,y2, '-r')
63
Legendas
legend('sin(x)','cos(x)')
title('Grafico de sin(x) e cos(x)')
ylabel('y')
xlabel('x')
64
(No Transcript)
65
Som em Matlab
  • gtgt Ver Matlab num Instante

66
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

67
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!

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

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

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

71
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)
72
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-11) Inverte no tempo wavwrite(y,fa,'so
m2.wav')
73
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,fa2)
  • Exemplo utilizando metade da frequência de
    amostragem do original
  • sound(x,fa/2)

74
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)
75
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 0Ta1 Gera o sinal de
tempo x sin(2pi1000t) sinusóide de
400Hz sound(x,fa)
76
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 0Ta1 Gera o sinal de
tempo x sin(2pi400t) sinusóide de
400Hz y sin(2pi410t) sinusóide de
410Hz soundsc(xy,fa)
77
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 0Ta1 Gera o sinal de
tempo x sin(2pi400t) sinusóide de
400Hz y sin(2pi80t) sinusóide de
80Hz soundsc(x.y,fa)
78
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 0Ta2 2-Ta0 Gera o
tempo x sin(2pi400t.t) sound(x,fa)
79
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 0Ta2 Gera o sinal de
tempo s 80sin(2pi5t) x sin(2pi400t
s) sound(x,fa)
Write a Comment
User Comments (0)
About PowerShow.com