-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinterpolacao.m
110 lines (80 loc) · 1.93 KB
/
interpolacao.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
% Interpolacao
% video associado: https://youtu.be/gdS1V3e5GR4
% LAA 16/03/2018
clear
close all
% vetor de tempo "continuo"
delta=pi/100;
t=0:delta:3*pi;
% sinal continuo
m_de_t=sin(t);
figure(1)
set(gca,'FontSize',18)
plot(t,m_de_t)
axis([-0.1 10 -1.1 1.1])
xlabel('t')
ylabel('m(t)')
% tempo de amostragem
T=pi/3;
% frequencia de amostragem
ws=2*pi/T;
% vetor de "tempo" com instantes de amostragem
t_amos=t(1:round(T/delta):end);
% vetor de indices correspondentes aos instantes de amostragem
k=1:round(T/delta):length(t);
% sinal estrelado (apos o amostrador). Ainda eh um sinal continuo.
m_estrela=m_de_t(k);
figure(1)
hold on
stem(t_amos,m_estrela)
ylabel('m(t), m*(t)')
hold off
% resposta ao impulso de um interplador "ideal" (funcao sinc)
% usaremos um vetor de tempo bem mais longo e comecando em tempo negativo
% para calcular a sinc:
t_sinc=-10*pi:delta:10*pi;
h_de_t=sinc(t_sinc/T);
% centro da sinc
c=find(h_de_t==max(h_de_t));
figure(2)
set(gca,'FontSize',18)
plot(t_sinc,h_de_t)
axis([-10 10 -0.3 1.1])
xlabel('t')
ylabel('h(t)')
m_int=zeros(1,c-k(end));
for j=1:length(k)
m_int=m_int+m_estrela(j)*h_de_t(c-(k(j)-1):c-(k(j)-1)+c-k(end)-1);
end
figure(1)
hold on
plot(t,m_int(1:length(t)))
ylabel('m(t), m*(t), m~(t)')
hold off
%% Segurador de ordem zero
% para ficar melhor, reduzimos delta e T
% vetor de tempo "continuo"
delta=pi/1000;
t=0:delta:3*pi;
% sinal continuo
m_de_t=sin(t);
% tempo de amostragem
T=pi/10;
% frequencia de amostragem
ws=2*pi/T;
% vetor de "tempo" com instantes de amostragem
t_amos=t(1:round(T/delta):end);
% vetor de indices correspondentes aos instantes de amostragem
k=1:round(T/delta):length(t);
% sinal estrelado (apos o amostrador). Ainda eh um sinal continuo.
m_estrela=m_de_t(k);
[th,mzoh]=zoh2(m_estrela,delta,T);
figure(3)
set(gca,'FontSize',18)
plot(t,m_de_t,th(1:length(mzoh)),mzoh)
hold on
stem(t_amos,m_estrela)
hold off
axis([-0.1 10 -1.1 1.1])
xlabel('t')
ylabel('m(t), m*(t), m~(t)')