Complex frequency shift transformation
Syntax
Hds=cplxfreqshift(Hd,Fo,DFormat)
Description
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 |
Example
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 Main() 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