|
From: Susan on 23 Aug 2005 05:46 Dear forum, In the use of FIR filters by windowing, it seems that the window method of low pass filter design is not good for attenutaing low frequencies. For example, if the sample rate is chosen as 44100, then below a frequency of 1000Hz the filter can not attenuate these frequencies. Is this due to the main lobe width property? Perhaps someone can recommend a good FIR Filter method whish is good for attenuating low frequencies as well (20Hz and upwards to 20050 HZ) Thanks for recommendations, Susan Tsiang
From: Rune Allnor on 23 Aug 2005 07:23 Susan skrev: > Dear forum, > > In the use of FIR filters by windowing, it seems that the window > method of low pass filter design is not good for attenutaing low > frequencies. That's correct. Most of it is due to the definition of a 'low pass filter' as being a filter that does not attenuate low frequencies. > For example, if the sample rate is chosen as 44100, then > below a frequency of 1000Hz the filter can not attenuate these > frequencies. Is this due to the main lobe width property? Yes, this is due to the main lobe width. When you design a filter using the window function, you typically specify the filter as - FIR (as opposed to IIR) - Window type (with control parameter, in the case of a Kaiser window) - Low pass (as opposed to high pass, band pass, band stop) - Cut-off frequences of pass bands and stop bands, relative to the sampling frequency A good filter design routine then computes the filter length and the filter coefficients based on the parameters you supply. > Perhaps > someone can recommend a good FIR Filter method whish is good for > attenuating low frequencies as well (20Hz and upwards to 20050 HZ) Try to design your filtar as a high pass or bandpass filter. If you have access to the signal processing toolbox, you could also try to use the REMEZ function, although it has just changed name in the most recent version of matlab. Rune
From: Susan on 23 Aug 2005 08:13 Hi Rune, Thanks for your answers. THis is interesting to know because it seems like the Window method of Lowpass FIR design is only good for frequencies down to 1000Hz (at a sampling rate of 44100Hz). If for example I want my cutoff to be at 20Hz, it is simply not possible using a window. The windows I have tried only get down to a cutoff of about 1000Hz (which will probably correspond to the main lobe width, if I calculate using a given formula). This is not good for 'tunable' FIR filters which I might want to change the cutoff in real time between 20Hz and 2000Hz, as the filter appears to 'get stuck' at 1000Hz :-( This phenomena I is also observed with using very high FIR length (i.e. 501 coefficients) However, it needs to be FIR as I need linear phase. Maybe the Kaiser window will be better? But a lot of time spend developing if results unsatisfactory. Back to work, With regards, Susan Tsiang
From: Rune Allnor on 29 Aug 2005 06:43 Susan wrote: > Hi Rune, > > Thanks for your answers. THis is interesting to know because it seems > like the Window method of Lowpass FIR design is only good for > frequencies down to 1000Hz (at a sampling rate of 44100Hz). If for > example I want my cutoff to be at 20Hz, it is simply not possible > using a window. One problem to consider is the number of coefficients. The number of coefficients is usually determined by the width of the transition band, i.e. the distance between the pass-band cut-off frequency and the stop-band cut-off frequency. The general rule is that the main lobe width needs to fit into this transition band. For a 20 Hz filter bandwidth with a signal sampled at 44.1 kHz, the relative bandwidth is BW = 20 /44100 = 4.5e-4 which would require a filter with a few thousand coefficients to filter out properly. > The windows I have tried only get down to a cutoff of > about 1000Hz (which will probably correspond to the main lobe width, > if I calculate using a given formula). This is not good for 'tunable' > FIR filters which I might want to change the cutoff in real time > between 20Hz and 2000Hz, as the filter appears to 'get stuck' at > 1000Hz :-( This phenomena I is also observed with using very high FIR > length (i.e. 501 coefficients) These days a "very high filter length" would be six or seven digits. > However, it needs to be FIR as I need linear phase. Maybe the Kaiser > window will be better? But a lot of time spend developing if results > unsatisfactory. The Kaiser window will not help. The main benefit of the Kaiser window is a bit better control of the attenuation than with the other windows. In fact, be prepared to use a twice as long Kaiser window as, say, a triangular window, for the same filter spec. I would suggest you dropped a question at comp.dsp where you outline your application and what you try to achieve, along with a description of what you have tried. I know it is possible to implement low-freq filters effectively as sub-band filters, but I have never tried that myself. I don't know if that would be a feasible solution for your applicaion. Rune
|
Pages: 1 Prev: Face Detection with Adaboost using Matlab Next: No entry for terminal type... |