Index-> contents reference index search Up-> SPT_HELP FIR Filter Design hilbert Prev Next SPT_HELP-> SPTFunctionsByCategory Mathematical Functions Data Manipulation Functions SignalGeneratorMain AnalogFilterFunctions FIR Filter Design Window Functions IIR Filter Design FourierFunctions Plotting Functions Histogram Functions FIR Filter Design-> linfir pwlfir hilbert rcfir srrcfir pbfir makercos hilbert Headings-> Description Example Reference

Hilbert Transformer FIR Design
 Syntax `y = hilbert(`Ntaps`) ("RECTANGULAR" assumed)` Syntax `y = hilbert(`Ntaps,wintype`) (all windows except "GAUSSIAN" and "KAISER")` Syntax `y = hilbert(`Ntaps,wintype,winparam`) ("GAUSSIAN" and "KAISER" windows only)` Include: `include spt\hibert.oms` See Also linfir , pwlfir , rcfir , srrcfir , pbfir
``` ARGUMENTS:    INPUTS:       Ntaps    = INPUT, scalar, any numerical type. Filter length in                  [taps]. Coerced to INTEGER.       wintype  = INPUT, string. One of ["RECTANGULAR"|                  "TRIANGULAR"|"HAMMING"|"HANNING"|"NUTTALL"|                  "BLACKMAN"|"GAUSSIAN"|"KAISER"].       winparam = INPUT, scalar, any numerical type. Parameter                  used by GAUSSIAN or KAISER window functions.                  Coerced to DOUBLE.    RETURN: Returns DOUBLE column vector Hilbert Transformer FIR            filter of length Ntaps. ```
Description ``` ```Designs and returns a Hilbert transformer FIR digital filter as a column vector. ``` ```Creates a linear phase, windowed Hilbert Transformer FIR filter of length 'Ntaps'. Function returns a column vector of type DOUBLE. 'Ntaps' may be of any numerical type and is coerced to INTEGER before local processing. 'Ntaps' must be ODD-valued, and must be >=3 or novalue is returned. ``` ```The ideal Hilbert transformer is a filter with unity gain and a phase shift of 90 degrees at all frequencies. The Hilbert transform is useful in creating 'analytic' signals and generally where quadrature related signals are required. The Hilbert transform of a sinewave is another sinewave delayed by 90 degrees. The Hilbert transformer FIR has an additional delay of (Ntaps-1)/2 samples due to the causality of the filter. ``` ```A window function may be applied to the resulting FIR filter. 'wintype' is a string specifying the window type to be applied. 'winparam' is the numerical parameter used with the GAUSSIAN and KAISER window functions. If you leave off 'wintype' and 'winparam', a "RECTANGULAR" window is assumed. For windows other than "GAUSSIAN" and "KAISER", 'winparam' may be omitted. Error handling is done by 'winddata()' function.

Example
Make a 31-tap Hilbert transformer. ``` Ntaps = 31                       # Number of taps win   = "TRIANGULAR";            # Window Type fs    = 10d3                     # sampling rate h     = hilbert(Ntaps,win)       # HAMMING h t     = seq(Ntaps)-1d0;          # Tap index M     = 100;                     # Number points for freq response fmin  = 10d0;                    # freq min plot fmax  = fs/2-1d0;                # freq max plot df    = (fmax-fmin)/M;           # freq increment f     = (seq(M+1)-1d0)/M*fs/2d0; # freq vector HdB   = db20(gainz(h,1,f,fs));   # dB response ``` The filter taps are: ``` { -0.00297465 0 -0.0102969 0 -0.0202817 0 -0.0347042 0 -0.0573682 0 -0.0981634 0 -0.193352 0 -0.669296 0 0.669296 0 0.193352 0 0.0981634 0 0.0573682 0 0.0347042 0 0.0202817 0 0.0102969 0 0.00297465 } ``` Plots of the filter and it's frequency response are: ``` ``` ``` ```Reference ``` ```Stearns & David