[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;