projection_factor.m

来自「多小波处理包。对于多小波的使用很有帮助。」· M 代码 · 共 52 行

M
52
字号
function [F,Ft] = projection_factor(U,V,m,r)

%  PROJECTION_FACTOR -- build projection factor
%
%        F      = projection_factor(U,m,r)    (orthogonal)
%        [F,Ft] = projection_factor(U,V,m,r)  (biorthogonal)
%
%  A projection factor is a biorthogonal polyphase matrix pair of the form
%
%        F(z)  = (I - U(V^*U)^{-1}V^*) + U(V^*U)^{-1}V^* z
%        Ft(z) = (I - V(U^*V)^{-1}U^*) + V(U^*V)^{-1}U^* z
%
%  Such factors are used for factoring or building polyphase matrices.
%  M and R are dilation factor and multiplicity. These are
%  necessary to give F the correct type.
%
%  If V is not given, use V = U, which produces an orthogonal factor.

% Copyright (c) 2004 by Fritz Keinert (keinert@iastate.edu),
% Dept. of Mathematics, Iowa State University, Ames, IA 50011.
% This software may be freely used and distributed for non-commercial
% purposes, provided this copyright statement is preserved, and
% appropriate credit for its use is given.
%
% Last update: Feb 20, 2004

if (length(V) == 1)
% V is a scalar, so this parameter must actually be m
    r = m;
    m = V;
    V = U;
end

VU = V'*U;
if (isa(VU,'sym'))
    VU = simplify(VU);
end
if (issingular(VU))
    error('V^*U is singular');
end

UVUV = U * (VU \ V');
if (isa(UVUV,'sym'))
    UVUV = simplify(UVUV);
end

F = mpoly({eye(size(U,1)) - UVUV, UVUV},0,'polyphase',m,r);
if (nargout > 1)
    Ft = F.';
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?