Time Domain Inversion
From Wikimization
(Difference between revisions)
Revision as of 21:46, 10 January 2025
%mapping coefficients by time domain inversion. December 24 2024 %For investigating solution uniqueness function [zeta inducedDC] = backsubztime3(Ep, z, Nh, testtone, unityGain, precision) version -blas; version -lapack; %load AMD AOCL libraries if nargin < 6 precision = 34; end mp.Digits(precision); N = numel(z); zeta = [-ones(N,1,'mp'), testtone.^(1:Nh)]\z; inducedDC = zeta(1); zeta(1) = []; if unityGain zeta = ug(zeta, Ep, precision); %unity gain and negativity check end end %adjust mapping coefficients for unity gain function xi = ug(xi, Ep, precision) version -blas; version -lapack; %load AMD AOCL libraries if nargin < 3 precision = 34; end mp.Digits(precision); zero = mp('0'); one = mp('1'); two = mp('2'); Nh = numel(xi); t = zero; for n=2:ceil(Nh/2) t = t + nchoosek(two*n-one,n-one)*(Ep/two)^(two*n-two)*xi(2*n-1); end xi(1) = one - t; %adjust for unity gain. if xi(1) < 0 xi(3:2:Nh) = -xi(3:2:Nh); %negativity check xi(1) = one + t; end end <\pre>