Main Content


Crossover frequencies for specified gain



wc = getGainCrossover(sys,gain) returns the vector wc of frequencies at which the frequency response of the dynamic system model, sys, has principal gain of gain. For SISO systems, the principal gain is the frequency response. For MIMO models, the principal gain is the largest singular value of sys.


collapse all

Find the 0dB crossover frequencies of a single-loop control system with plant given by:


and PI controller given by:


G = zpk([],[-1,-1,-1],1);
C = pid(1.14,0.454);
sys = G*C;
wc = getGainCrossover(sys,1)
wc = 0.5214

The 0 dB crossover frequencies are the frequencies at which the open-loop response sys = G*C has unity gain. Because this system only crosses unity gain once, getGainCrossover returns a single value.

Find the 20 dB stopband of


sys is a notch filter centered at 10 rad/s.

sys = tf([1 0.05 100],[1 5 100]);
gain = db2mag(-20);
wc = getGainCrossover(sys,gain)
wc = 2×1


The db2mag command converts the gain value of -20 dB to absolute units. The getGainCrossover command returns the two frequencies that define the stopband.

Input Arguments

collapse all

Input dynamic system, specified as any SISO or MIMO dynamic system model.

Input gain in absolute units, specified as a positive real scalar.

  • If sys is a SISO model, the gain is the frequency response magnitude of sys.

  • If sys is a MIMO model, gain means the largest singular value of sys.

Output Arguments

collapse all

Crossover frequencies, returned as a column vector. This vector lists the frequencies at which the gain or largest singular value of sys is gain.


getGainCrossover computes gain crossover frequencies using structure-preserving eigensolvers from the SLICOT library. For more information about the SLICOT library, see

Version History

Introduced in R2012a