FIR1

Diese Seite drucken.   -    www.hilsenbeck.com/matlab


Mit diesem Befehl können die Filterkoeffizienten von FIR-Filtern
berechnet werden. (Finite Impulse Response, endliche Impulsantwort)


Dabei ist 

N    - die Filterordnung
Wn   - die Grenzfrequenz

Die Grenzfrequenz Wn ist ein Wert zwischen 0 und 1, dabei entspricht
1 der halben Abtastfrequenz. 

      2 * fg           Grenzfrequenz
Wn = -------
        fT             Abtastfrequenz


» freqz ( fir1(32, 0.25) );                    Tiefpass
» freqz( fir1(32, 0.25, 'high' ) );            Hochpass

Berechnet einen FIR-Filter 32. Ordnung.
Bei einer Abtastfrequenz von 10 kHz ist die Grenzfrequenz 1.25 kHz.
Standardmäßig wird ein Hamming-Fenster benutzt.


Tiefpass 32. Ordnung; Grenzfrequenz 0.25; Hamming-Fenster


Tiefpass 32. Ordnung; Grenzfrequenz 0.25; Hamming-Fenster


Wird für Wn ein 2-Element Vektor angegeben, so kann ein Bandpass
oder eine Bandsperre berechnet werden.

» b=fir1( 32, [0.25 0.5 ] );            Bandpass
» b=fir1( 32, [0.25 0.5 ], 'stop' );    Bandsperre

Standardmäßig wird ein Hamming-Fenster benutzt.


Bandpass 32. Ordnung; Grenzfrequenzen 0.25 und 0.5; Hamming-Fenster


Bandsperre 32. Ordnung; Grenzfrequenz 0.25 und 0.5; Hamming-Fenster


Andere Fensterfunktionen können wie folgt angegeben werden:

Allgemein:  fir1( N, Wn, boxcar(N+1) );

» b=fir1( 32, 0.25, boxcar(33) );
» b=fir1( 32, 0.25, 'high', blackman(33) );
» b=fir1( 32, [0.25 0.5 ], 'stop', bartlett(33) );


 


» help fir1

FIR1 FIR filter design using the window method.
B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter
and returns the filter coefficients in length N+1 vector B.
The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0 
corresponding to half the sample rate. The filter B is real and
has linear phase, i.e., even symmetric coefficients obeying B(k) =
B(N+2-k), k = 1,2,...,N+1.

If Wn is a two-element vector, Wn = [W1 W2], FIR1 returns an
order N bandpass filter with passband W1 < W < W2.
B = FIR1(N,Wn,'high') designs a highpass filter.
B = FIR1(N,Wn,'stop') is a bandstop filter if Wn = [W1 W2].

If Wn is a multi-element vector, 
Wn = [W1 W2 W3 W4 W5 ... WN],
FIR1 returns an order N multiband filter with bands
0 < W < W1, W1 < W < W2, ..., WN < W < 1.
B = FIR1(N,Wn,'DC-1') makes the first band a passband.
B = FIR1(N,Wn,'DC-0') makes the first band a stopband.

For filters with a passband near Fs/2, e.g., highpass
and bandstop filters, N must be even.

By default FIR1 uses a Hamming window. Other available windows,
including Boxcar, Hanning, Bartlett, Blackman, Kaiser and Chebwin
can be specified with an optional trailing argument. For example,
B = FIR1(N,Wn,kaiser(N+1,4)) uses a Kaiser window with beta=4.
B = FIR1(N,Wn,'high',chebwin(N+1,R)) uses a Chebyshev window.

By default, the filter is scaled so the center of the first pass band 
has magnitude exactly one after windowing. Use a trailing 'noscale' 
argument to prevent this scaling, e.g. B = FIR1(N,Wn,'noscale'), 
B = FIR1(N,Wn,'high','noscale'), B = FIR1(N,Wn,wind,'noscale').

See also KAISERORD, FIRCLS1, FIR2, FIRLS, FIRCLS, CREMEZ,
REMEZ, FREQZ, FILTER.