Laboratório de Sistemas e Sinais L1: Matrizes, Sons e Imagens



Documentos relacionados
Laboratório de Sistemas e Sinais Análise Espectral

Sistemas e Sinais (LEE & LETI)

Sistemas e Sinais (LEIC) Análise em Frequência. Carlos Cardeira

Oficina de Construção de Páginas Web

Aula de Hoje. Sistemas e Sinais Sinais e Sistemas. Sinal em Tempo Contínuo. Sinal Acústico

Aplicações de Escritório Electrónico

Espectro da Voz e Conversão A/D

Aula 2P - Comandos básicos do Matlab aplicados a PDS

Aplicações de Escritório Electrónico

AMBIENTE DE PROGRAMAÇÃO PYTHON

Ferramenta de Testagem IECL Orientações para o Aluno (PT)

FILTRAGEM NO DOMÍNIO DAS FREQUÊNCIAS (TRANSFORMADA DE FOURIER) Daniel C. Zanotta 04/06/2015

Linguagem R R-Gui e R-Commander

Trabalho Prático n. 2

Esta aplicação permite desempenhar tarefas relacionadas com o cálculo, análise e apresentação gráfica de dados, de uma forma rápida e eficaz.

Introdução ao CoolEdit c : programa de edição de som digital

5 Transformações Lineares e Matrizes

UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB


Manual Processamento de Imagem. João L. Vilaça

CorelDRAW UM PROGRAMA DE DESIGN

Introdução ao MATLAB

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Vetores, Matrizes e Gráficos

Fórmulas e Funções 7

Aplicações de Escritório Electrónico

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Anexo III Funcionamento detalhado do Sistema Montador de Autoria

O que é o JavaScript?

Introdução aos Sistemas Informáticos

MANUAL DO UTILIZADOR

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Atividade: matrizes e imagens digitais

Instruções para a atividade

Aparelhos de Laboratório de Electrónica

Aula de Informática (disponível em Sumário

Linguagem R R-Gui e R-Commander

Introdução ao Processamento de Imagens com o IRIS Por Rodolfo Barros

E ainda uma terceira com as opções deste último exemplo, em que a cor de fundo deve ser verdeescuro.

Aplicações de Escritório Electrónico

A função do primeiro grau

Guia do Utilizador Alinex

UFERSA Universidade Federal Rural do Semi-Árido. R Project R Project Criando e manipulando objetos.

1.1. Clique no botão Iniciar, seleccione Todos os programas, Microsoft Office e no submenu aberto escolha o programa Microsoft FrontPage.

Archive Player Divar Series. Manual de Utilização

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Tamanho e resolução da imagem

Treinamento em BrOffice.org Calc

Tutorial: Do YouTube para o PowerPoint

Microsoft Excel 2007

Redução de imagem no domínio espacial

COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS

Editando textos no Siga-Doc

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/ Valores

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em

Serviço Técnico de Informática. Curso Básico de PowerPoint

Introdução ao Matlab. 1 Algumas regras e comandos do Matlab. 3 de março de Docente Responsável : Prof. Dr. Antônio C. Roque

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

Tarefa Orientada 18 Tabelas dinâmicas

LeYa Educação Digital

Projecto de Programação MEEC /2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores

Só Matemática O seu portal matemático FUNÇÕES

Informática no Ensino da Matemática

Informática no Ensino de Matemática Prof. José Carlos de Souza Junior

Tutorial de Matlab Francesco Franco

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

Montar planilhas de uma forma organizada e clara.

ÍNDICE... 3 INTRODUÇÃO A série... 4

15. OLHA QUEM ESTÁ NA WEB!

Manual do Usuário Sistema de Acuidade Visual Digital

O AMBIENTE DE TRABALHO DO WINDOWS

Gerente de Tecnologia: Ricardo Alexandre F. de Oliveira Marta Cristiane Pires M. Medeiros Mônica Bossa dos Santos Schmid WORD 2007

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Universidade Federal do Mato Grosso - STI-CAE. Índice

PRINCÍPIOS DE INFORMÁTICA PRÁTICA OBJETIVO 2. BASE TEÓRICA 3. SEQÜÊNCIA DA AULA. 3.1 Iniciando o PowerPoint

1 Code::Blocks Criação de projetos

O processo termina com o surgimento da última flecha quando aparece uma bolinha azul. Outras bolinhas aparecem aleatoriamente POWER POINT NEW WAY

Informática para Ciências e Engenharias 2014/15. Teórica 5

No final desta sessão o formando deverá ser capaz de aceder ao Word e iniciar um novo documento.

Usando o Excel ESTATÍSTICA. A Janela do Excel Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação.

Tarefa Orientada 13 Agrupamento e sumário de dados

Aplicações de Escritório Electrónico

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

selecionado. DICAS 1. Explore, sempre, o ícone

A figura abaixo, à direita, mostra uma apresentação gerada no MS PowerPoint. Uma apresentação desse tipo é útil para:

Imagiologia de raios X planar

Módulo 3936 ASP.NET. Financiado pelo FSE

Formador: Carlos Maia

CURSO DE INFORMÁTICA BÁSICA AULA 2 O AMBIENTE WINDOWS

SESSÃO 5: DECLINAÇÃO SOLAR AO LONGO DO ANO

Exercício 8 Busca de Músicas

Apostila para o 7º ano Profª Yandra

Amplificadores Operacionais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto

Departamento: Matemática Curso: Eng a Madeiras Ano: 1 o Semestre: 2 o Ano Lectivo: 2006/2007. Aula prática n o 1 - Introdução ao MATLAB

Scriptlets e Formulários

ESCOLA SECUNDÁRIA/3 DE BARCELINHOS (403787)

Transcrição:

Laboratório de Sistemas e Sinais L1: Matrizes, Sons e Imagens Luís Caldas de Oliveira Março de 2009 O objectivo deste laboratório é o de explorar a utilização de matrizes em Matlab e de usá-las para construir sinais de audio e imagens. O laboratório foi projectado para o ajudar a familiarizar-se com os fundamentos do Matlab. É estanque, no sentido em que não é necessária nenhuma documentação adicional sobre o Matlab pois, em vez disso, confiamos nas facilidades de ajuda on-line. O Matlab utiliza o termo função de uma forma mais alargada do que a utilizada quando nos referimos às funções matemáticas: todos os comandos do Matlab que recebem argumentos entre parênteses são chamados de função. A maioria têm um domínio e um contradomínio bem-definidos e definem, de facto, um mapeamento entre o domínio e o contradomínio. Estes podem ser vistos formalmente como funções (matemáticas). Outros, no entanto, como oplot e osound só mais dificilmente poderão ser vistos desta forma. Para iniciar o Matlab basta simplesmente clicar duas vezes sobre o ícone do Matlab no desktop, ou encontrar o comando do Matlab no menu start. Isto abrirá uma janela de comandos do Matlab, que apresenta um prompt >>. Os comandos devem ser introduzidos após o prompt. Explore os programas de demonstração pré-definidos com o comandodemo. Matlab oferece um sistema de ajuda on-line acessível usando o comando de help. Por exemplo, para obter informação sobre a funçãosize, introduza o seguinte: >> help size Há também um help desk (em formato HTML para ser lido num web browser) com material introdutório útil. Está disponível no menu de ajuda. Se não tiver nenhuma experiência prévia com Matlab, consulte o tópico Getting Started no help desk e dedique-lhe algum tempo. 1. Uma variável em Matlab é uma matriz. Uma matriz tem dimensões N M onde N e M pertencem aos Naturais. N é o número das linhas e M é o número das colunas. Se N = M = 1 a variável é um escalar. Se N = 1 e M > 1, então a variável é um vector linha. Se N > 1 e M = 1, então a variável é um vector coluna. Se N e M forem maiores do que um, então a variável é uma matriz, e se N = M então a variável é uma matriz quadrada. Os coeficientes de uma matriz são números reais ou complexos. (a) Cada uma das seguintes linhas contém uma atribuição de um valor a uma variável chamadamatriz. Para cada uma, identifique as dimensões da matriz (M e N) e diga se a variável é um escalar, um vector linha, um vector coluna ou uma matriz i. array = [1 2 3 4 5] ii. array = [1:5] iii. array = [1:1:5] iv. array = [1:-1:-5] v. array = [1 2; 3 4] vi. array = [1; 2; 3; 4] (b) Todas as seguintes atribuições correspondem a uma matriz 2 3. Compare as diferenças. i. array = zeros(2,3) ii. array = ones(2,3) iii. array = eye(2,3) iv. array = rand(2,3) 1

v. array = [ones(2,1) eye(2,2)] vi. array = [zeros(1,3); ones(1,3)] (c) Considere o construtor de matrizes array = start : step : stop onde o start, stop e step são variáveis escalares ou números reais. Quantos elementos contém array? Use os comandos size e length do Matlab para determinar o comprimento das matrizes dadas por1:0.3:10 e1:1:-1. (d) Um vector linha pode ser transformado num vector coluna usando a operação de transposição. Compare o resultado da execução dos seguintes comandos: i. transpose([1 2 3 4]) ii. [1 2 3 4]. iii. transpose([1 2*j 3 4]) (em Matlab j = i = ( 1)) iv. [1 2*j 3 4]. v. [1 2*j 3 4] 2. O Matlab pode ser usado como uma linguagem de programação de uso geral. No entanto, e ao contrário de uma linguagem de programação tradicional, o Matlab tem caraterísticas especiais para operar sobre matrizes que o tornam particularmente conveniente para modelar sinais e sistemas. (a) Neste exercício, usaremos o Matlab para calcular: Use um ciclofor (experimentehelp for) para calcular o resultado do somatório. 25 (b) Use a função sum para obter de uma forma mais compacta, com uma só linha, a soma da alínea anterior. A diferença entre estas duas aproximações ilustra a diferença entre o Matlab e uma linguagem de programação mais tradicional. O ciclo for está mais próximo doestilo que se usaria em C++ ou Java. A função desum ilustra o que o Matlab faz melhor: operações compactas em matrizes inteiras. (c) Em Matlab, toda a função pré-definida que opera sobre um escalar pode também operar sobre uma matriz. Por exemplo, >> sin(pi/4) 0.7071 >> sin([0 pi/4 pi/2 3*pi/4 pi]) 0 0.7071 1.0000 0.7071.0000 Esta caraterística é chamada de vectorização. Encontre uma expressão compacta para calcular o valor de: 9 ( sin k π ) 10 (d) Dadas duas matrizesaebque têm as mesmas dimensões, o Matlab pode multiplicar os seus elementos um a um usando o operador.*. Por exemplo, >> [1 2 3 4].* [1 2 3 4] 1 4 9 16 Encontre uma expressão compacta para calcular o valor de: 9 k ( sin k π ) ( cos k π ) 10 10 2

3. Um sinal em tempo discreto pode ser aproximado em Matlab por um vector (tanto linha como coluna). Neste exercício, irá construir alguns desses vectores e representá-los graficamente. (a) Crie uma matriz que seja um vector linha com comprimento 36, com zeros em toda parte excepto na 18 a posição, que tem o valor 1. (Sugestão: tente help zeros para encontrar uma maneira criar de um vector linha apenas com zeros, e atribua então ao 18 o elemento desse vector o valor um.). Este vector é uma aproximação de um impulso em tempo discreto, que é um sinal nulo em toda parte excepto numa amostra. Usaremos impulsos estudar sistemas lineares. Represente o sinal do impulso, usando plot estem. (b) Considere que a variável t representa o tempo em segundos no intervalo [ 1,1]. Tratando-se de um intervalo com infinitos pontos não o podemos representar directamente em Matlab. No entanto, recorrendo ao conceito de amostragem, podemos ter um vector com um número finito de elementos que representa esse intervalo. Crie uma variável t em Matlab que represente o intervalo de tempo [ 1, 1] amostrado ao ritmo de 8000 amostras por segundo (8000 Hz). (c) Utilize o vector definido na alínea anterior para representar o graficamente o sinal sinusoidal x : [ 1, 1] Reais, dada por t [ 1,1],x(t) = sin(2π 5t + π/6) Em que t é o tempo em segundos. Determine a frequência do sinal sinusoidal (o número de ciclos em cada segundo). (d) Mude a expressão da alínea anterior de forma a que o sinal passe a ter uma frequência de 440 Hz. Trace o gráfico do sinal no intervalo [ 1,1]. Por que é difícil ler o gráfico? Trace em seguida as amostras que se encontram no intervalo [0,0.01] (este é um intervalo de 10 ms). (e) A função Matlabsound (vejahelp sound ), que tem a seguinte sintaxe sound(sinalamostrado, frequencia) envia a matriz uni-dimensional ou vector sinalamostrado para a placa de audio do computador. O segundo argumento especifica a frequência de amostragem em amostras por segundo. Os valores no sinalamostrado devem ser números reais na gama [ 1.0, 1.0]. Se estiverem fora desta gama serão saturados em 1.0 ou 1.0. Use esta função para ouvir o sinal criado na alínea anterior. Oiça tanto o intervalo de 10 ms como um intervalo de 2 s. (f) Oiça os sinais e explique as diferenças relativamente ao que ouviu anteriormente: i. sound (0.5 * sinalamostrado, frequencia) ii. sound (2 * sinalamostrado, frequencia) iii. sound (sinalamostrado, frequencia/2) iv. sound (sinalamostrado, frequencia*2) 4. A figura 1 mostra uma imagem a preto e branco em que a intensidade da imagem varia sinusoidalmente no sentido vertical. A linha superior da imagem é constituída por píxeis brancos. Ao precorrer verticalmente a imagem no sentido descendente a intensidade varia gradualmente para preto, voltando em seguida de novo ao branco, terminando um ciclo. A imagem é 200x200 píxeis, pelo que a frequência vertical é de 1/200 ciclos por píxel. A imagem apresentada na página tem aproximadamente 10x10 centímetros, ou seja, a sua frequência vertical é de 0.1 ciclos por centímetro. A intensidade da imagem é constante no sentido horizontal (tem uma frequência horizontal dos ciclos 0 por centímetro). Uma imagem em Matlab pode ser representada como uma matriz com duas dimensões onde cada elemento indexa um mapa de cores. (a) Considere a imagem construída pelo comandoimage: >> v = [1:64]; >> image(v); Isto deverá criar uma imagem como a mostrada na figura 2. A imagem tem 1 píxel de altura por 64 píxeis de largura (o Matlab por omissão estica a imagem para caber em toda a janela rectangular para gráficos, por isso cada píxel será neste caso representado por um píxel muito alto). Pode-se usar a função Matlabrepmat para construir uma imagem mais alta do que 1 píxel pela repetição desta linha de um determinado número de vezes. 3

Figura 1: Uma imagem onde a intensidade varia sinusoidalmente no sentido vertical. Figura 2: Uma imagem do mapa de cores por omissão. 4

(b) Cada píxel tem um valor que varia entre 1 e 64. Estes valores servem para indexar o mapa de cores por omissão, que tem comprimento 64, e cobre uma variação contínua do azul ao vermelho através das cores do arco-íris. Para ver os valores numéricos do mapa de cores de omissão >> map = colormap para verificar seu tamanho >> size(map) 64 3 Repare que tem 64 linhas e três colunas. Cada linha é uma entrada no mapa de cores. As três colunas dão, respectivamente, as quantidades de vermelho, verde, e azul no mapa de cores. Estas quantidades variam de 0 (cor ausente) a 1 (intensidade máxima dessa cor). Examine o mapa de cores para verificar que começa com a cor azul e que termina com a vermelha. (c) Mude o mapa de cores usando o comandocolormap da seguinte forma: >> mapa = gray(256); >> colormap (mapa); >> imagem = 128*sin([0:199]*2*pi/200)+128; >> image(imagem); Examine a variável map para compreender a imagem resultante. A este mapa de cores chama-se grayscale colormap (tons de cinzento). Qual a representação para a cor branca e para a cor preta? (d) Execute a seguinte sequência de comandos em Matlab: >> mapa = gray(256); >> colormap (mapa); >> imagem= 128.*sin([0:199]. *4*pi/200)*sin([0:199]*4*pi/200)+128; >> image(imagem); Tente explicar o que observa. 5