Edinburgh Speech Tools  2.1-release
FIR filters
Collaboration diagram for FIR filters:

Functions

void FIRfilter (EST_Wave &in_sig, const EST_FVector &numerator, int delay_correction=0)
 
void FIRfilter (const EST_Wave &in_sig, EST_Wave &out_sig, const EST_FVector &numerator, int delay_correction=0)
 
void FIR_double_filter (EST_Wave &in_sig, EST_Wave &out_sig, const EST_FVector &numerator)
 
void FIRlowpass_filter (EST_Wave &sigin, int freq, int order=DEFAULT_FILTER_ORDER)
 
void FIRlowpass_filter (const EST_Wave &in_sig, EST_Wave &out_sig, int freq, int order=DEFAULT_FILTER_ORDER)
 
void FIRhighpass_filter (EST_Wave &in_sig, int freq, int order)
 
void FIRhighpass_filter (const EST_Wave &sigin, EST_Wave &out_sig, int freq, int order=DEFAULT_FILTER_ORDER)
 
void FIRhighpass_double_filter (EST_Wave &sigin, int freq, int order=DEFAULT_FILTER_ORDER)
 
void FIRhighpass_double_filter (const EST_Wave &int_sig, EST_Wave &out_sig, int freq, int order=DEFAULT_FILTER_ORDER)
 
void FIRlowpass_double_filter (EST_Wave &sigin, int freq, int order=DEFAULT_FILTER_ORDER)
 
void FIRlowpass_double_filter (const EST_Wave &in_sig, EST_Wave &out_sig, int freq, int order=DEFAULT_FILTER_ORDER)
 

Detailed Description

Finite impulse response (FIR) filters which are useful for band-pass, low-pass and high-pass filtering.

FIR filters perform the following operation:

\[y_t=\sum_{i=0}^{O-1} c_i \; x_{t-i}\]

where $O$ is the filter order, $c_i$ are the filter coefficients, $x_t$ is the input at time $t$ and $y_t$ is the output at time $t$. Functions are provided for designing the filter (i.e. finding the coefficients).

Function Documentation

void FIRfilter ( EST_Wave in_sig,
const EST_FVector numerator,
int  delay_correction = 0 
)

General purpose FIR filter. This function will filter the waveform sig with a previously designed filter, given as numerator. The filter coefficients can be designed using one of the designed functions, e.g. design_FIR_filter.

See also
design_FIR_filter, design_lowpass_FIR_filter, design_highpass_FIR_filter,
FIRfilter, FIRlowpass_filter, FIRhighpass_filter

Definition at line 336 of file filter.cc.

void FIRfilter ( const EST_Wave in_sig,
EST_Wave out_sig,
const EST_FVector numerator,
int  delay_correction = 0 
)

General purpose FIR filter. This function will filter the waveform sig with a previously designed filter, given as numerator. The filter coefficients can be designed using one of the designed functions, e.g. design_FIR_filter.

See also
design_FIR_filter, design_lowpass_FIR_filter, design_highpass_FIR_filter,
FIRfilter, FIRlowpass_filter, FIRhighpass_filter

Definition at line 349 of file filter.cc.

void FIR_double_filter ( EST_Wave in_sig,
EST_Wave out_sig,
const EST_FVector numerator 
)

General purpose FIR double (zero-phase) filter. This function will double filter the waveform sig with a previously designed filter, given as numerator. The filter coefficients can be designed using one of the designed functions, e.g. design_FIR_filter. Double filtering is performed by filtering the signal normally, reversing the waveform, filtering again and reversing the waveform again. Normal filtering will impose a lag on the signal depending on the order of the filter. By filtering the signal forwards and backwards, the lags cancel each other out and the output signal is in phase with the input signal.

See also
design_FIR_filter, design_lowpass_FIR_filter, design_highpass_FIR_filter,
FIRfilter, FIRlowpass_filter, FIRhighpass_filter

Definition at line 408 of file filter.cc.

void FIRlowpass_filter ( EST_Wave sigin,
int  freq,
int  order = DEFAULT_FILTER_ORDER 
)

Quick function for one-off low pass filtering. If repeated lowpass filtering is needed, first design the required filter using design_lowpass_filter, and then use FIRfilter to do the actual filtering.

See also
design_FIR_filter, design_lowpass_FIR_filter, design_highpass_FIR_filter, FIRfilter, FIRhighpass_filter, FIRlowpass_filter
Parameters
sigininput waveform, which will be overwritten
freq
ordernumber of filter coefficients, eg. 99

Definition at line 526 of file filter.cc.

void FIRlowpass_filter ( const EST_Wave in_sig,
EST_Wave out_sig,
int  freq,
int  order = DEFAULT_FILTER_ORDER 
)

Quick function for one-off low pass filtering. If repeated lowpass filtering is needed, first design the required filter using design_lowpass_filter, and then use FIRfilter to do the actual filtering.

Parameters
in_siginput waveform
out_sigoutput waveform
freqcutoff frequency in Hertz
ordernumber of filter coefficients , e.g. 99
See also
design_FIR_filter, design_lowpass_FIR_filter, design_highpass_FIR_filter, FIRfilter, FIRhighpass_filter

Definition at line 518 of file filter.cc.

void FIRhighpass_filter ( EST_Wave in_sig,
int  freq,
int  order 
)

Quick function for one-off high pass filtering. If repeated lowpass filtering is needed, first design the required filter using design_lowpass_filter, and then use FIRfilter to do the actual filtering.

Parameters
in_siginput waveform, which will be overwritten
freqcutoff frequency in Hertz
ordernumber of filter coefficients, eg. 99
See also
design_FIR_filter, design_lowpass_FIR_filter, design_highpass_FIR_filter
FIRfilter, FIRlowpass_filter, FIRhighpass_filter

Definition at line 534 of file filter.cc.

void FIRhighpass_filter ( const EST_Wave sigin,
EST_Wave out_sig,
int  freq,
int  order = DEFAULT_FILTER_ORDER 
)

Quick function for one-off high pass filtering. If repeated highpass filtering is needed, first design the required filter using design_highpass_filter, and then use FIRfilter to do the actual filtering.

Parameters
in_siginput waveform
out_sigoutput waveform
freqcutoff frequency in Hertz
ordernumber of filter coefficients, eg. 99
See also
design_FIR_filter, design_lowpass_FIR_filter, design_highpass_FIR_filter
FIRfilter, FIRlowpass_filter, FIRhighpass_filter

Definition at line 541 of file filter.cc.

void FIRhighpass_double_filter ( EST_Wave sigin,
int  freq,
int  order = DEFAULT_FILTER_ORDER 
)

Quick function for one-off double low pass filtering.

Normal low pass filtering (FIRlowpass_filter) introduces a time delay. This function filters the signal twice, first forward and then backwards, which ensures a zero phase lag. Hence the order parameter need only be half what it is for (FIRlowpass_filter to achieve the same effect.

Parameters
in_siginput waveform, which will be overwritten
freqcutoff frequency in Hertz
ordernumber of filter coefficients, eg. 99
See also
FIRhighpass_filter

Definition at line 584 of file filter.cc.

void FIRhighpass_double_filter ( const EST_Wave int_sig,
EST_Wave out_sig,
int  freq,
int  order = DEFAULT_FILTER_ORDER 
)

Quick function for one-off double low pass filtering.

Normal low pass filtering (FIRlowpass_filter) introduces a time delay. This function filters the signal twice, first forward and then backwards, which ensures a zero phase lag. Hence the order parameter need only be half what it is for (FIRlowpass_filter) to achieve the same effect.

Parameters
in_siginput waveform
out_sigoutput waveform
freqcutoff frequency in Hertz
ordernumber of filter coefficients, eg. 99
See also
FIRhighpass_filter

Definition at line 572 of file filter.cc.

void FIRlowpass_double_filter ( EST_Wave sigin,
int  freq,
int  order = DEFAULT_FILTER_ORDER 
)

Quick function for one-off zero phase high pass filtering.

Normal high pass filtering (FIRhighpass_filter) introduces a time delay. This function filters the signal twice, first forward and then backwards, which ensures a zero phase lag. Hence the order parameter need only be half what it is for (FIRhighpass_filter) to achieve the same effect.

Parameters
in_siginput waveform, which will be overwritten
freqcutoff frequency in Hertz
ordernumber of filter coefficients, eg. 99
See also
FIRlowpass_filter

Definition at line 549 of file filter.cc.

void FIRlowpass_double_filter ( const EST_Wave in_sig,
EST_Wave out_sig,
int  freq,
int  order = DEFAULT_FILTER_ORDER 
)

Quick function for one-off zero phase high pass filtering.

Normal high pass filtering (FIRhighpass_filter) introduces a time delay. This function filters the signal twice, first forward and then backwards, which ensures a zero phase lag. Hence the order parameter need only be half what it is for (FIRhighpass_filter) to achieve the same effect.

Parameters
in_siginput waveform
out_sigoutput waveform
freqcutoff frequency in Hertz
ordernumber of filter coefficients, eg. 99
See also
FIRlowpass_filter

Definition at line 560 of file filter.cc.