Complex frequency shift transformation




Apply a Complex frequency shift transformation to the digital transfer function object (Hd) centred at frequency point, Fo. Where, Fo is specified in same base unit as the sampling frequency, Fs, i.e. Hz, kHz etc. The function returns a new (frequency shifted) digital transfer object in Hds.

This transform may be used for designing a complex bandpass filter, whereby a real lowpass filter’s frequency response is shifted up or down the spectrum in order to produce a complex bandpass filter. Complex bandpass filters are useful for communication applications and signal property analysis, as they provide a simple way of obtaining the instantaneous frequency, phase and amplitude of sinusoid.

DFormat: allows you to specify the display format of resulting digital filter object.

symbolic Display a symbolic representation of the filter object. If the order > 10, the symbolic display option will be overridden and set to numeric.
numeric Display a matrix representation of the filter object
void Create a filter object, but do not display output


ClearH1;  // clear primary filter from cascade

interface f = {1,200,1,2};  // define cut-off frequency
interface fo = {0,200,10,10}; // define centre frequency of bandpass  
interface Rs = {10,100,5,60};  // define stopband attenuation
interface BW = {1,100,1,5};   // define bandwidth


fc={f,f+BW}; // define a transition band
Rp=0.001;    // define passband ripple in dB
Hd=butter(5,fc,Rp,Rs,"lowpass","void");  // 5th order Butterworth lowpass 
Hd=cplxfreqshift(Hd,fo,"symbolic");      // shift lowpass filter poles and zeros,
// and make a bandpass 

Num=getnum(Hd);   // get numerator coefficients
Den=getden(Hd);   // get denominator
Gain=getgain(Hd); // get gain

See also

bessel / butter / cheby1 / cheby2 / ellip / arbmagphase / cplxfreqshift / dcremover / notch / peaking