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

```