Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

SINAIS-SINAIS-SINAIS E SISTEMAS, Resumos de Sinais e Sistemas

SINAIS-SINAIS-SINAIS-SINAIS E SISTEMAS

Tipologia: Resumos

2019

Compartilhado em 27/08/2019

wilson-pedroso-pedroso-10
wilson-pedroso-pedroso-10 🇧🇷

2 documentos

1 / 6

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Sinais – Representação e Manipulação
Objetivo
Esta prática descreve como utilizar o Matlab para representar e manipular alguns sinais elementares:
Criação e armazenamento de sinais em Matlab
Amostragem e re-amostragem
Visualização de sinais
Geração de sinais
Salvando e carregando sinais
Fundamentação Teórica
SINAL: É uma função matemática de uma ou mais variáveis independentes, que representa informações. Nesta
disciplina trabalharemos apenas com sinais unidimensionais (funções de uma variável), nos domínios dos
números reais e complexos.
Procedimento Prático
1. Criação e armazenamento de sinais em Matlab
Base de tempo: t = [0.0 0.1 0.2 0.3]
Amplitude do sinal: x = [1.0 3.2 2.0 8.5]
A construção principal de dados em Matlab é o arranjo numérico, uma coleção ordenada de dados
numéricos reais ou complexos, com uma ou mais dimensões. Os objetos de dados básicos do
processamento de sinais (sinais unidimensionais, ou seqüências, sinais multi-canais, e sinais
bidimensionais) são todos naturalmente acomodados na representação de arranjos (vetores e matrizes).
O Matlab representa sinais de dados amostrados unidimensionais, ou seqüências, como vetores. Vetores
são arranjos de dimensões 1 x N (vetor linha) ou N x 1(vetor coluna), onde N é o número de amostras na
seqüência. Para se armazenar uma seqüência no Matlab deve-se entrar uma lista de elementos na linha de
comando. A sentença
x = [1 2 3 4 5]
cria uma seqüência real de cinco elementos em um vetor linha. Ela pode ser convertida para um vetor
coluna fazendo-se a transposição do vetor
x = [1 2 3 4 5]’
Vetores colunas podem ser estendidos naturalmente para o caso de sinais multi-canais (multidimensionais),
no qual cada canal é representado por uma coluna de um arranjo tipo matriz.
Outra forma de se criar vetores de dados é usar o operador dois pontos. Considere o tempo de um segundo
de um sinal amostrado a 1000 Hz. Um vetor de tempo apropriado para esse sinal seria
t = 0:1e-3:1; ou t = 0:0.001:1;
onde o operador dois pontos cria um vetor linha de 1001 elementos representando o tempo de zero a um
segundo, em passos de milésimos de segundo. Você também pode usar a função linspace para criar o
mesmo vetor de dados:
t = linspace(0,1,1000);
Exper.
1
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe SINAIS-SINAIS-SINAIS E SISTEMAS e outras Resumos em PDF para Sinais e Sistemas, somente na Docsity!

Sinais – Representação e Manipulação

Objetivo

Esta prática descreve como utilizar o Matlab para representar e manipular alguns sinais elementares:  Criação e armazenamento de sinais em Matlab  Amostragem e re-amostragem  Visualização de sinais  Geração de sinais  Salvando e carregando sinais

Fundamentação Teórica

SINAL: É uma função matemática de uma ou mais variáveis independentes, que representa informações. Nesta disciplina trabalharemos apenas com sinais unidimensionais (funções de uma variável), nos domínios dos números reais e complexos.

Procedimento Prático

1. Criação e armazenamento de sinais em Matlab

Base de tempo: t = [0.0 0.1 0.2 0.3] Amplitude do sinal: x = [1.0 3.2 2.0 8.5]

A construção principal de dados em Matlab é o arranjo numérico, uma coleção ordenada de dados numéricos reais ou complexos, com uma ou mais dimensões. Os objetos de dados básicos do processamento de sinais (sinais unidimensionais, ou seqüências, sinais multi-canais, e sinais bidimensionais) são todos naturalmente acomodados na representação de arranjos (vetores e matrizes). O Matlab representa sinais de dados amostrados unidimensionais, ou seqüências, como vetores. Vetores são arranjos de dimensões 1 x N (vetor linha) ou N x 1(vetor coluna), onde N é o número de amostras na seqüência. Para se armazenar uma seqüência no Matlab deve-se entrar uma lista de elementos na linha de comando. A sentença x = [1 2 3 4 5] cria uma seqüência real de cinco elementos em um vetor linha. Ela pode ser convertida para um vetor coluna fazendo-se a transposição do vetor x = [1 2 3 4 5]’ Vetores colunas podem ser estendidos naturalmente para o caso de sinais multi-canais (multidimensionais), no qual cada canal é representado por uma coluna de um arranjo tipo matriz. Outra forma de se criar vetores de dados é usar o operador dois pontos. Considere o tempo de um segundo de um sinal amostrado a 1000 Hz. Um vetor de tempo apropriado para esse sinal seria t = 0:1e-3:1; ou t = 0:0.001:1; onde o operador dois pontos cria um vetor linha de 1001 elementos representando o tempo de zero a um segundo, em passos de milésimos de segundo. Você também pode usar a função linspace para criar o mesmo vetor de dados: t = linspace(0,1,1000);

Exper.

Digite os seguintes comandos: t1 = [0 .1 .2 .3]; t2 = 0:0.1:0.3; t3 = linspace(0, 0.3, 4); T = [t1’ t2’ t3’]; X = sin(T) O que fez o código mostrado acima?

2. Sinais amostrados

Fontes de sinais analógicos incluem geradores eletromagnéticos, de áudio, sonar, biomédico e outras. Sinais analógicos precisam ser amostrados e quantizados antes de serem processados digitalmente. Amostragem: x[n] = xa(nTs) x é um sinal discreto amostrado a partir de um sinal analógico xa com um período TS e freqüência de amostragem FS = 1 / TS. Experimente o seguinte trecho de programa Matlab (script): Fs = 100; N = 1000; tempofinal = 9.99; t1 = (0:N-1)/Fs; t2 = 0:1/Fs:tempofinal; x1 = sin(2pi2t1); x2 = sin(2pi3t2); plot(x1), figure, plot(x2) Quantos ciclos são mostrados em cada um dos sinais plotados pelo código acima? Uma alternativa à criação de sinais é usar uma função das diversas caixas de ferramentas do Matlab (toolbox). Uma variedade de funções Matlab gera formas de onda. Cada uma delas requer que você inicie com um vetor representando uma base temporal. Algumas dessas funções serão descritas mais adiante. Aliasing : Sinais digitais são normalmente derivados da amostragem de sinais de tempo contínuo via Conversor Analógico-Digital (A/D). Se o sinal contínuo, xa(t), é limitado em banda, significa que ele não contém freqüências acima de uma freqüência máxima fM. O teorema da amostragem (Shannon) diz que esse tipo de sinal pode ser completamente recuperado de um conjunto de amostras se a freqüência de amostragem fs for maior do que duas vezes a máxima freqüência do sinal contínuo a ser amostrado: 𝑓𝑠 > 2𝑓𝑀 Esta freqüência máxima fM é conhecida como a freqüência de Nyquist. Se a freqüência de amostragem não for maior que duas vezes a freqüência de Nyquist, o sinal contínuo não pode ser unicamente recuperado e acontece o ‘aliasing’ (um sinal ‘apelido’ é recuperado). Experimente: t = 0:0.001:2; xa = sin(2pi5t); % sinal analogico plot(t,xa), hold on fs = 15; ts = 0:1/fs:2; xs1 = sin(2pi5ts); % sinal amostrado 15Hz plot(ts,xs1,’bo-’) fs = 7.5; ts = 0:1/fs:2; xs2= sin(2pi5*ts); % sinal amostr. em 7,5Hz plot(ts,xs2,’ro-’), hold off Existe aliasing em algum dos sinais amostrados? Qual? Porque?

3. Visualização de sinais

Visualizar a amplitude do sinal versus índice temporal

- Senóides: Parâmetros de senóides: - Amplitude, A - Freqüência, f - Fase, φ - Deslocamento Vertical (polarização, offset), B A forma geral de uma senóide é: y = A.sen(2πft + φ) + B Exemplo : gerar uma senóide com as seguintes especificações: A = 5; f = 2 Hz; φ = π/8 rad. t = linspace(0,1,1001); Ampl = 5; freq = 2; fase = pi/8; senoide = Ampl * sin(2pifreq*t + fase); plot(t, senoide)

  • Sinais Quadrados: Formas de onda quadradas devem ter especificado o ciclo de trabalho (o percentual de tempo em que a amplitude do sinal fica em nível alto – duty cycle). Exemplo: Duty cycle de 50% (padrão do Matlab) e freqüência de 4 Hz. t = linspace(0,1,1001); squad1 = square(2pi4t); plot(t,squad1) axis([-0.1 1.1 -1.1 1.1]) Exemplo: Duty cycle de 75% e freqüência de 4 Hz. t = linspace(0,1,1001); squad2 = square(2pi4t,75); plot(t,squad2) axis([-0.1 1.1 -1.1 1.1])
  • Dente-de-serra : Assim como as ondas quadradas, esses sinais precisam de um parâmetro que indica a localização do pico da onda. Exemplo: Pico no final do período (padrão do Matlab) e freqüência de 3 Hz. t = linspace(0,1,1001); ds1 = sawtooth(2pi3t); plot(t,ds1) Exemplo: Pico na metade do período e freqüência de 3 Hz. t = linspace(0,1,1001); ds2 = sawtooth(2pi3t,1/2); plot(t,ds2)
  • Sinais Complexos : sinais periódicos podem ser representados por exponenciais complexas: 𝑥(𝑡) = 𝑒−𝑗^2 𝜋𝑓𝑡^ = 𝑐𝑜𝑠( 2 𝜋𝑓𝑡) + 𝑗 𝑠𝑒𝑛( 2 𝜋𝑓𝑡) = 𝑐𝑜𝑠(Ω𝑡) + 𝑗 𝑠𝑒𝑛(Ω𝑡) se t for medido em segundos, então f terá unidades de seg-1, e Ω terá unidades de radianos/seg. Em processamento de sinais, nós associamos o círculo unitário com um ciclo de amostragem, de modo que a freqüência de amostragem FS é associada com 2π radianos, e a freqüência de Nyquist FS/2 é associada com π radianos. Valores de Ω no semi-plano superior, em unidades de Hz, então corresponde às freqüências dentro da faixa de freqüências do sinal contínuo. Experimente: f = 0.1; t = 0:0.05:10; x = exp(2pijft); plot(t,real(x),t,imag(x),'r');

grid title('\bfExponencial Complexa'); xlabel('\itt \rm(s)'); ylabel('Amplitude'); legend('Parte Real','Parte Imaginária'); axis([0 10 -1.1 1.1]) O Matlab reconhece as letras j ou i como sendo a raiz quadrada de -1, desde que você não defina essas variáveis, j ou i , com valores diferentes, por exemplo: j = 0; i = 15; Funções do Matlab para manipulação de dados complexos: real , imag , abs , angle

5. Salvando e carregando sinais

Duas funções de entrada/saída de dados são especialmente úteis quando trabalhamos com variáveis Matlab:

  • O comando save grava variáveis do espaço de trabalho (workspace) em um arquivo binário do Matlab (arquivo .mat). O arquivo é colocado no diretório corrente.
  • O comando load lê variáveis de um arquivo de dados binários (arquivo .mat) para o espaço de trabalho (workspace). Embora pouco especializados, esses comandos podem ser usados no gerenciamento cotidiano de seus cálculos no Matlab. Experimente: doc save doc load t = 0:0.1:10; x1 = sin(t); x2 = sin(2t); x3 = sin(3t); save variaveis clear load variaveis t x

Questões

  1. Crie um sinal igual à soma de duas senóides com as seguintes características: a. Duração de 3 segundos b. Freqüência de amostragem de 2 kHz c. Senóide 1: freqüência de 50 Hz (baixa), amplitude 10, fase nula. d. Senóide 2: freqüência de 950 Hz (alta), amplitude 1, fase nula.
  2. As linhas de código mostradas abaixo esboçam dois sinais elementares contínuos no tempo, quais são? t = -10:0.01:10; % tempo (abscissas) y1 = (t >= 0); % sinal 1 y2 = 0.2*t; % sinal 2 h = plot(t,y1,'r',t,y2,'b'); set(h,'linewidth',3); xlabel('Tempo'); ylabel('Amplitude'); title('SINAL CONTÍNUO NO TEMPO'); grid
  3. Dado o código abaixo, estude as formas de onda dos sinais discretos no tempo. y1 = ones(1,10); % sinal degrau unitário y2 = 1:10; % sinal rampa x = -4:5;