Respuesta Impulsional

Anuncio
1. Cálculo de la Secuencia de Ponderación
1. Cálculo de la Secuencia de Ponderación ______________________________ 1
1.1. Respuesta Impulsional por Correlación__________________________________ 2
1.1.1. Exitación con Ruido Blanco ___________________________________________ 3
1.1.2. Excitación Escalón __________________________________________________ 6
1.1.3. Forma de mejorarlo__________________________________________________ 7
1.1.4. Función de Matlab __________________________________________________ 9
1
1.1. Respuesta Impulsional por Correlación
n=1000;
A=[1 -1.5 .7];
B=[0 1 .5];
C=[1];
F=[1];
D=[1];
th=poly2th(A,B,C,D,F,1,1);
%A(q) y(t) = [B(q)/F(q)] u(t-nk) + [C(q)/D(q)] e(t)
e=(rand(n,1)-.5);
m=100;
plot(e(1:m)),grid;
0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
0
20
40
60
80
100
Respuesta al impulso
2
ui=zeros(20,1);
ui(1)=1;
rii=idsim(ui,th);
plot(rii);grid
2.5
2
1.5
1
0.5
0
-0.5
-1
0
5
10
15
20
1.1.1. Exitación con Ruido Blanco
n=1000;
urb=sign(rand(n,1)-.5);
plot(urb(1:m)),grid;
3
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
20
40
60
80
100
400
600
800
1000
z=[urb e];
yrb=idsim(z,th);
plot(yrb);grid
15
10
5
0
-5
-10
-15
0
200
4
zrb=[yrb urb];
M=19;
R=covf(zrb,M+1);
Ryy=[R(1,M+1:-1:2)';R(1,:)'];
Ruu=[R(4,M+1:-1:2)';R(4,:)'];
vuu=Ruu(M+1);
vyu=sqrt(Ryy(M+1)*vuu);
r(:,1)=[-M:1:M]';
Ryu=[R(3,M+1:-1:2)';R(2,:)']/vyu;
rirb=Ryu(M+1:2*M+1)*vyu/vuu;
% o más simple,
rirb=R(2,:)'/R(4,1);
plot([rii rirb]);grid
%plot(r(:,2:4));grid
2.5
2
1.5
1
0.5
0
-0.5
-1
0
5
10
15
20
5
1.1.2. Excitación Escalón
ues=ones(n,1);
z=[ues e];
yes=idsim(z,th);
plot(yes(1:50));grid
12
10
8
6
4
2
0
0
10
20
30
40
50
zes=[yes ues];
M=19;
R=covf(zes,M+1);
ries=R(2,:)'/R(4,1);
plot([rii rirb ries]);grid
%plot(r(:,2:4));grid
6
8
7
6
5
4
3
2
1
0
-1
0
5
10
15
20
1.1.3. Forma de mejorarlo
Blanquear entrada y salida
%fp=1;
nf=10; % tamaño del filtro de blanqueo
M=20; % tamaño de la respuesta
% se blanquea entrada y salida
a=th2poly(ar(zes(:,2),nf,'fb0'));
zesb(:,1)=filter(a,1,zes(:,1));
zesb(:,2)=filter(a,1,zes(:,2));
M=19;
R=covf(zesb,M+1);
riesb=R(2,:)'/R(4,1);
plot([rii rirb riesb]);grid
Warning: Matrix is singular to working precision.
> In C:\MATLAB\toolbox\ident\ar.m at line 113
Warning: Rank deficient, rank = 1
tol =
1.9563e-011.
7
> In C:\MATLAB\toolbox\ident\ar.m at line 119
2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
0
5
10
15
20
plot(zesb(1:30,2));grid
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
5
10
15
20
25
30
El filtro blanqueador es un derivador
a(1:3)
8
ans =
1.0000
-1.0000
0
1.1.4. Función de Matlab
rcra=cra(zes,20,10,0);
plot([rii rirb rcra]);grid
Warning: Matrix is singular to working precision.
> In C:\MATLAB\toolbox\ident\ar.m at line 113
In C:\MATLAB\toolbox\ident\cra.m at line 49
Warning: Rank deficient, rank = 1
tol =
1.9563e-011.
> In C:\MATLAB\toolbox\ident\ar.m at line 119
In C:\MATLAB\toolbox\ident\cra.m at line 49
2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
0
5
10
15
20
9
Descargar