Time Domain Inversion
From Wikimization
(Difference between revisions)
(memoryless weak nonlinearity) |
|||
Line 38: | Line 38: | ||
end | end | ||
end | end | ||
- | < | + | </pre> |
Current revision
%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