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