szf.m

From Spinach Documentation Wiki
Revision as of 18:52, 5 June 2026 by Kuprov (talk | contribs) (Rename Arguments section heading to Parameters)
Jump to: navigation, search

Applies a discrete single-zero filter:

   Y(k)=X(k)/(1-z)-z*X(k-1)/(1-z);

to a Spinach optimal control module waveform. Treats odd rows of multi-row waveform arrays as real, and even rows as imaginary, components of a complex signal.

Syntax

   [w,J]=szf(w,z)

Parameters

   w   - waveform, one time slice per column, and 
         rows arranged as XYXY... with respect to 
         in-phase and quadrature parts on each 
         control channel

   z   - a vector (one element per XY control pair) 
         containing the filter coefficient:

          p=exp(-r*dt+1i*(omega-omega_rf)*dt)

         where r is the damping rate, omega is the 
         pole frequency, omega_rf is the rotating 
         frame frequency, and dt is the time dis-
         cretisation step.

Outputs

   w   - distorted waveform, same dimension as the 
         input waveform; leaving sufficient ring-
         down margin is the user's responsibility

   J   - Jacobian matrix with respect to vectori-
         sations of the output and the input arrays

See also

Optimal_control_function_list:_distortions_and_penalties

Version 2.11, authors: Uluk Rasulov, Ilya Kuprov