0% acharam este documento útil (0 voto)
51 visualizações8 páginas

Sinais Determinísticos e Aleatórios no MATLAB

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
51 visualizações8 páginas

Sinais Determinísticos e Aleatórios no MATLAB

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Geração de sinais aleatórios no MATLAB.

referente aula de reposição de 21 nov 2024

1. Geração de sinais determinísticos e aleatórios no MATLAB. Para cada sinal plote a sua
variação temporal e seu respectivo espectro

i) Gere um vetor temporal com 1000 pontos, com freqüência de amostragem, fs=100 Hz

» t=[0:0.01:9.99];

ii) Considerando o vetor temporal acima, gere um sinal periódico simples de amplitude uni-
tária e frequência de 1 Hz. Determine o espectro do sinal e plote o sinal no domínio do
tempo e da frequência.

» s=sin(2*pi*t);
» plot(t,s)
1

0.5

-0.5

-1
0 2 4 6 8 10

» spectrum(s)
5
Pxx - X Power Spectral Density
10

0
10

-5
10

-10
10

-15
10

-20
10
0 02 04 06 08 1

iii) Gere um sinal periódico tipo onda quadrada com frequência de 10 Hz e amplitude unitá-
ria. Integre esse sinal e gere um sinal periódico tipo onda triangular.

» sq=square(2*pi*10*t);
» plot(t,sq)
1

0.5

-0.5

-1
0 2 4 6 8 10

» plot(t(1,1:100),sq(1,1:100))
1

0.5

-0.5

-1
0 0.2 0.4 0.6 0.8 1

iv) Gere um sinal aleatório estacionário com amplitude descrita por uma v.a. com distribui-
ção normal de média, μ=10, e desvio padrão, σ=2. Use o mesmo vetor temporal do item
(i). Plote o espectro do sinal e a sua variação temporal. Plote o histograma da função e
superponha no gráfico a função densidade de probabilidade verdadeira. Repita este pro-
cedimento para um sinal aleatório com amplitude descrita por uma v.a. com distribuição
uniforme no intervalo [-1,1]

» sae=2*randn(t)+10;
» plot(t,sae)
18

16

14

12

10

2
0 2 4 6 8 10

» spectrum(sae)
» hist(sae)
300

250

200

150

100

50

0
2 4 6 8 10 12 14 16 18

» [h,x]=hist(sae,50);
» x1=[2:(18-2)/999:18];
» fdv=1/(2*(2*pi)^.5)*exp(-((x1-10).^2)/(2*2^2));
» bar(x,h/(1000*((18-2)/50)))
» hold
Current plot held
» plot(x1,fdv,’r’)
0.25

0.2

0.15

0.1

0.05

0
2 4 6 8 10 12 14 16 18

» sa=-1+2*rand(size(t));
» hist(sa)
» bar(x,y,'b')
120

100

80

60

40

20

» x2=[-1:(1-(-1))/999:1];
» fd2=1/2+0*x2;
» bar(x,y/(1000*(1-(-1))/10),'b');
» hold
Current plot held
» plot(x2,fd2,'r'),
0.6

0.5

0.4

0.3

0.2

0.1

0
-1 -0.5 0 0.5 1

v) Gere um sinal aleatório não-estacionário com média variante no tempo, p.e., {xk(t)} = a(t)
+ {uk(t)}, onde a(t) é um sinal determinístico e {uk(t)} é um sinal aleatório estacionário.

» xk=sin(2*pi*t)+randn(size(t));
» plot(t,xk)
4

-1

-2

-3

-4
0 2 4 6 8 10

» plot(t(1,1:100),xk(1,1:100))
3

-1

-2

-3

-4
0 0.2 0.4 0.6 0.8 1

vi) Gere um sinal aleatório não estacionário com variância variante no tempo, p.e., {xk(t)} =
a(t).{uk(t)}.

» xk=sin(2*pi*t).*randn(size(t));
» plot(t,xk)
» plot(t(1,1:100),xk(1,1:100))
3

-1

-2
0 0.2 0.4 0.6 0.8 1

2. Gere um conjunto amostral com 100 amostras de um sinal aleatório com estrutura temporal
quasi-periódica mostrada abaixo. Considere a1k e a2k, v.a’s. com distribuição normal (mé-
dia nula e variânça unitária) e ϕ1k e ϕ2k, v.a.’s uniformemente distribuídas no intervalo [0,
2π]

{xk(t)} = a1k sen ( ω1t + ϕ1k) + a2k sen ( ω2t + ϕ2k)

» t=[0:10/99:10];
» a1=randn(1,100);
» a2=randn(1,100);
» fi1=2*pi*rand(1,100);
» fi2=2*pi*rand(1,100);
» w1=2*pi;
» w2=2^.5;
» for i=1:100
for j=1:100
xk(i,j)=a1(1,i)*sin(w1*t(1,j)+fi1(1,i))+a2(1,i)*sin(w2*t(1,j)+fi2(1,i));
end
end

i) Plote um gráfico para a variação temporal dos primeiros 10 registros temporais

» plot(t,xk(1,1:100),'b')
0.4

0.3

0.2

0.1

» plot(t,xk(2,1:100),'g')
1.5

0.5

-0.5

-1

-1.5
0 2 4 6 8 10

» plot(t,xk(3,1:100),'y')
3

-1

-2

-3
0 2 4 6 8 10

» plot(t,xk(4,1:100),'m')
2

1.5

0.5

-0.5

-1

-1.5

-2
0 2 4 6 8 10

» plot(t,xk(5,1:100),'c')
3

-1

» plot(t,xk(6,1:100),'r')
2

1.5

0.5

-0.5

-1

-1.5

-2
0 2 4 6 8 10

» plot(t,xk(7,1:100),'w')
1.5

0.5

-0.5

-1

-1.5
0 2 4 6 8 10

» plot(t,xk(8,1:100),'b-')
1.5

0.5

-0.5

-1

-1.5
0 2 4 6 8 10

» plot(t,xk(9,1:100),'g-.')
2

1.5

0.5

-0.5

-1

» plot(t,xk(10,1:100),'y-.')
0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8
0 2 4 6 8 10

ii) Monte um histograma para o conjunto amostral num determinado instante de tempo e um
histograma para as variações temporais de uma determinada amostra.

» hist(xk(1:100,25))
25

20

15

10

0
-3 -2 -1 0 1 2

» hist(xk(49,1:100))
20

15

10

0
-2 -1 0 1 2

iii) Monte um programa para calcular a média e a variância amostrais

» for i=1:100
medvar(1,i)=mean(xk(1:100,i));
medvar(2,i)=cov(xk(1:100,i));
end

3. Gere um sinal aleatório composto de uma senoíde de frequência 30 Hz e amplitude 0,1 e


um sinal aleatório com distribuição normal ( μ=0, σ=10). Plote o sinal composto e ache a
sua função de correlação. É possível obter o sinal periódico a partir da correlação? Mostre
o resultado graficamente.

» t=[0:.01:9.99];
» x=0.1*sin(2*pi*30*t)+10*randn(size(t));
» t2=[-9.99:.01:9.99];
» plot(t2,xcorr(x))

Você também pode gostar