H-infinity sub-optimal causal IIR inverse filter

by

 

03 Feb 2011 (Updated )

This computes the ptimal inverse filter minimizing the H-infinity norm of the error system.

dfdesign_w(phi, w, d);
function [psi gopt] = dfdesign_w(phi, w, d);

% [psi gopt] = dfdesign(phi, d, n);
% DFDESIGN computes the H-infinity optimal inverse filter of phi(z).
% The resulting filter minimizes the H-infinity norm of the error system
%     E_w(z) = [z^(-d) - psi(z)phi(z)]w(z).
%
% If an error occurs, use "dfdesign_w_lmi.m".
%
% [INPUT]
% phi: target system (discrete-time)
% w: weighting function
% d: delay
%
% [OUTPUT]
% psi: resulting inverse filter
% gopt: optimal value

Ts = phi.Ts;
delayden = zeros(1, d+1);
delayden(1) = 1;
delay = tf(1, delayden, Ts);

g11=ss(delay, 'min')*w;
g12=ss(phi, 'min')*w;
g21=-1;
g22=0;
G = [g11,g12;g21,g22];
[psi,g,gopt] = hinfsyn(G,1,1,'METHOD','lmi'); 

Contact us