Memoryless Weak Nonlinearity Composition

From Wikimization

(Difference between revisions)
Jump to: navigation, search
Current revision (22:10, 2 December 2024) (edit) (undo)
 
Line 3: Line 3:
% zeta : memoryless weak power series z(x), first-order leading: [zeta_1, zeta_2 ... zeta_Nt]
% zeta : memoryless weak power series z(x), first-order leading: [zeta_1, zeta_2 ... zeta_Nt]
% xi : memoryless weak power series y(z), first-order leading: [ xi_1, xi_2 ... xi_Nh]
% xi : memoryless weak power series y(z), first-order leading: [ xi_1, xi_2 ... xi_Nh]
-
% Mapping coefficients constituting nonlinearity composition zeta & xi are not commutative.
+
% Mapping coefficients, constituting nonlinearity composition, zeta & xi are not commutative.
function y = composite2(zeta, xi, precision)
function y = composite2(zeta, xi, precision)
if nargin < 3, precision = 34; end
if nargin < 3, precision = 34; end

Current revision

% Compute composition y(z(x)) coefficients of x given mapping coefficients zeta & xi.
% zeta : memoryless weak power series z(x), first-order leading: [zeta_1, zeta_2 ... zeta_Nt]
% xi   : memoryless weak power series y(z), first-order leading: [  xi_1,   xi_2 ...   xi_Nh]
% Mapping coefficients, constituting nonlinearity composition, zeta & xi are not commutative.
function y = composite2(zeta, xi, precision)
   if nargin < 3, precision = 34; end
   mp.Digits(precision);  %Advanpix Multiprecision Toolbox
   zeta = zeta(:)'; 
   xi   =   xi(:)';
   y       = mp('0');
   z_power = mp('1'); 
   for power = 1:numel(xi)
      z_power = conv(z_power, zeta); 
      term = [zeros(1,power-1,'mp'), xi(power)*z_power];
      y    = term + [y, zeros(1,numel(term)-numel(y),'mp')];
   end
end
Personal tools