


[R2,rho] = PHPolyMatTrim(R1,gamma)
R2=PHPolyMatTrim(R1) trims the lag dimension of a parahermitian matrix R1 by
symmetrically removing the outer matrix coefficients. The function will
remove the matrix coefficient with the smallest Frobenius
norm, such that by the total energy of the trimmed parts does not exceed
one permille of the total energy in R1.
R2=PHPolyMatTrim(R1,gamma) trims such that the ratio between the removed
and total energy of R1 is less than gamma, with 0<=gamma<1.
[R2,rho]=PUPolyMatTrim(R1) or [R2,rho]=PUPolyMatTrim(R1,r) additionally
returns the ratio of the actual suppressed energy in R2.
This function is related to PUPolyMatTrim() and the 'trim' operation
described in [1,2].
Input parameters:
R1 parahermitian matrix
gamma maximum ratio between the maximum energy removed at outer lags
and the total energy
default: 1/1000
Output parameters:
R2 trimmed parahermitian matrix
rho ratio of removed energy
References:
[1] J.G. McWhirter, P.D. Baxter, T. Cooper, S. Redif, and J. Foster, "An EVD
Algorithm for Para-Hermitian Polynomial Matrices," IEEE Transactions on
Signal Processing, vol. 55, no. 5, pp. 2158-2169, May 2007.
[2] C.H. Ta and S. Weiss, "Shortening the Order of Paraunitary Matrices in
SBR2 Algorithm", 6th International Conference on Information, Communi-
cations & Signal Processing, Singapore, pp. 1-5, Dec. 2007.

0001 function [R2,rho] = PHPolyMatTrim(R1,gamma) 0002 %[R2,rho] = PHPolyMatTrim(R1,gamma) 0003 % 0004 % R2=PHPolyMatTrim(R1) trims the lag dimension of a parahermitian matrix R1 by 0005 % symmetrically removing the outer matrix coefficients. The function will 0006 % remove the matrix coefficient with the smallest Frobenius 0007 % norm, such that by the total energy of the trimmed parts does not exceed 0008 % one permille of the total energy in R1. 0009 % 0010 % R2=PHPolyMatTrim(R1,gamma) trims such that the ratio between the removed 0011 % and total energy of R1 is less than gamma, with 0<=gamma<1. 0012 % 0013 % [R2,rho]=PUPolyMatTrim(R1) or [R2,rho]=PUPolyMatTrim(R1,r) additionally 0014 % returns the ratio of the actual suppressed energy in R2. 0015 % 0016 % This function is related to PUPolyMatTrim() and the 'trim' operation 0017 % described in [1,2]. 0018 % 0019 % Input parameters: 0020 % R1 parahermitian matrix 0021 % gamma maximum ratio between the maximum energy removed at outer lags 0022 % and the total energy 0023 % default: 1/1000 0024 % 0025 % Output parameters: 0026 % R2 trimmed parahermitian matrix 0027 % rho ratio of removed energy 0028 % 0029 % References: 0030 % [1] J.G. McWhirter, P.D. Baxter, T. Cooper, S. Redif, and J. Foster, "An EVD 0031 % Algorithm for Para-Hermitian Polynomial Matrices," IEEE Transactions on 0032 % Signal Processing, vol. 55, no. 5, pp. 2158-2169, May 2007. 0033 % [2] C.H. Ta and S. Weiss, "Shortening the Order of Paraunitary Matrices in 0034 % SBR2 Algorithm", 6th International Conference on Information, Communi- 0035 % cations & Signal Processing, Singapore, pp. 1-5, Dec. 2007. 0036 0037 % S. Weiss and J. Corr, University of Strathclyde, 14/11/2014 0038 0039 % check input parameters 0040 if nargin<2, 0041 gamma = 0.001; 0042 end; 0043 0044 % check limit 0045 Norm1 = PolyMatNorm(R1); 0046 E = gamma*Norm1; 0047 [M,~,L] = size(R1); 0048 0049 % trim from sequentially from front or back, where ever the matrix with the 0050 % smallest norm can be found, until the desired amount of energy has been 0051 % removed 0052 Etrim = 0; 0053 IndexRemove = 1; 0054 Efront = norm(R1(:,:,IndexRemove),'fro').^2; 0055 while ((Etrim + 2*Efront) <= E), 0056 Etrim = Etrim + 2*Efront; 0057 IndexRemove = IndexRemove+1; 0058 Efront = norm(R1(:,:,IndexRemove),'fro').^2; 0059 end; 0060 0061 % output 0062 R2 = R1(:,:,IndexRemove:L+1-IndexRemove); 0063 Etrim = Etrim - 2*Efront; 0064 rho = Etrim/Norm1;