MATLAB IIR filterdesign funksjoner buttord og smør

Matlab Iir Filter Design Functions Buttord



Design ButterworthJegIRFilteret kan bruke en smørfunksjon og en bakordfunksjon.
Først: Bruk buttord-funksjonen til å finne minimumsrekkefølge og cutoff-frekvens: [n, Wn] = buttord (Wp, Ws, Rp, Rs).
Forstå: I formelen ovenfor representerer n rekkefølgen på filteret, og Wn representerer filterets avskjæringsfrekvens. Disse to parametrene kan bestemmes ved hjelp av buttord-funksjonen. Forenklet sagt, ved Wp er ringkoeffisienten i passbåndet eller maksimal demping i passbåndet Rp, for eksempel (3db), og ved Ws er minimum demping i stoppbåndet Rs (for eksempel 40db), og vi The Wn oppnådd som standard er frekvensen på (-3db). Så: Når Rp er valgt som 3 dB, er Wn i BUTTER lik Wp i BUTTORD.

1, rumpe



Funksjonsbetydning: design Butterworth-filter (parametere som rekkefølge og avskjæringsfrekvens bør bestemmes)



Function usage form: [n, Wn] = buttord (Wp, Ws, Rp, Rs)



[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')

[N, Wn] = buttord (Wp, Ws, Rp, Rs) returns the lowest order n of the digital Butterworth filter, the passband ripple does not exceed Rp dB, and the stopband attenuation is at least Rs dB.
Wp and Ws are the passband and stopband edge frequencies of the filter, normalized to 0 to 1, where 1 corresponds to πrad / sample.
Also returns the scalar (or vector) corresponding cut-off frequency Wn.
To design a Butterworth filter, use the output parameters n and Wn as the input to the butter.

[N, Wn] = buttord (Wp, Ws, Rp, Rs, 's') Find the minimum order n and cutoff frequency Wn of the analog Butterworth filter. Specify the frequency Wp and Ws in radians per second. The pass band or stop band can be infinite.



(1) n — lowest filter order
Integer standard

The lowest filter order, returned as an integer scalar.

(2) Wn-cutoff-frekvens
skalar skalar | vektor
Kuttfrekvensen returneres i form av skalar eller vektor.

(3) Wp — avskjæringsfrekvens for passbånd
skalar | binær vektor

Passbåndsavskjæringsfrekvensen, spesifisert som en skalar- eller binærvektor, med en verdi mellom 0 og 1, der 1 tilsvarer den normaliserte Nyquist-frekvensen πrad / prøve.

Hvis Wp og Ws begge er skalarer og WpHvis Wp og Ws begge er skalære og Wp> Ws, returnerer buttord rekkefølgen og avskjæringsfrekvensen til høypassfilteret. Stoppbåndet til filteret er 0 til Ws, og passbåndet er Wp til 1.
Hvis Wp og Ws begge er vektorer, og intervallet spesifisert av Ws inkluderer intervallet spesifisert av Wp (Ws (1)Hvis Wp og Ws begge er vektorer, og intervallet spesifisert av Wp inneholder en spesifisert av Ws (Wp (1)

(4) Ws - stopp båndavskjæringsfrekvens
skalar | binær vektor

Stoppbåndets avskjæringsfrekvens, spesifisert som en skalar- eller binærvektor, med en verdi mellom 0 og 1, der 1 tilsvarer den normaliserte Nyquist-frekvensen πrad / prøve.

Datatype: enkelt | dobbelt

(5) Rp-passbånds krusning
skalar skalar

Passbåndsrypp, spesifisert som en skalar mengde, i dB.

Datatype: enkelt | dobbelt

(6) Rs-stop bånddemping
skalar skalar
Demping av stoppbånd er spesifisert som en skalar mengde og enheten er dB.

Datatype: enkelt | dobbelt

Ordensforutsigelsesformelen i Buttords rekkefølge gjelder for simuleringsområdet i både analoge og digitale situasjoner.
For digitale saker vil den konvertere frekvensparametrene til s-domenet før estimering av rekkefølge og naturlig frekvens. Deretter blir funksjonen konvertert tilbake til z-domenet.

buttord konverterer innledningsvis passbåndsfrekvensen til ønsket filter til 1 rad / sekund (for lavpass- og høypassfilter) og –1 og 1 rad / sekund (for båndpass og båndstoppfilter) for å utvikle lavpass filter prototyper. Deretter beregner den minimumsbestillingen som kreves av lavpassfilteret for å oppfylle stoppbåndsspesifikasjonene.

Eksempler:

For data som samples ved 1000 Hz, må du utforme et lavpasfilter hvis ringbånd i passbåndet fra 0 til 40 Hz ikke skal overstige 3 dB, og dempningen av stoppbåndet skal være minst 60 dB. Finn filterrekkefølgen og kuttfrekvensen.

[b,a] = butter(n,Wn)

Spesifiser filteret i henhold til annenordensdel og plott frekvensresponsen.

[b,a] = butter(n,Wn,ftype)

Resultatet er:

2 、 smør

[z,p,k] = butter(___)

[A,B,C,D] = butter(___)

[___] = butter(___,'s')

[b, a] = butter (n, Wn) returns the transfer function coefficients of the nth-order low-pass digital Butterworth filter with normalized cutoff frequency Wn.
example
[b, a] = butter (n, Wn, ftype) Design a low-pass, high-pass, band-pass or band-stop Butterworth filter based on the value of ftype and the number of elements of Wn. The final bandpass and bandstop design is about 2n.
Note: For information on numerical issues that affect the formation of transfer functions, see Limits.
example
[z, p, k] = butter (___) Design a low-pass, high-pass, band-pass or band-stop digital Butterworth filter and return its zero, pole and gain. The grammar may include any input parameters in the previous grammar.
example
[A, B, C, D] = butter (___) design a low-pass, high-pass, band-pass or band-stop digital Butterworth filter, and return the specified state space representation matrix.
example
[___] = butter (___, 's) Design a low-pass, high-pass, band-pass or band-stop analog Butterworth filter with a cut-off frequency of Wn.

n — filter order
integer scalar
The order of the filter, specified as an integer scalar.

Data type: double precision

Wp = 40/500 Ws = 150/500 [n,Wn] = buttord(Wp,Ws,3,60) The result is: n = 5 Wn = 0.0810 

[z,p,k] = butter(n,Wn) sos = zp2sos(z,p,k) freqz(sos,512,1000) title(sprintf('n = %d Butterworth Lowpass Filter',n))

(1) Wn-cutoff-frekvens
skalar | binær vektor
Kuttfrekvens, spesifisert som en skalar- eller to-element-vektor. Kuttfrekvensen er frekvensen der amplituderesponsen til filteret er 1 / √2.

Hvis Wn er en skalar, vil smør designe et lavpas- eller høypassfilter med en avskjæringsfrekvens på Wn.
Hvis Wn er en toelementvektor [w1 w2], hvor w1For digitale filtre må avskjæringsfrekvensen være mellom 0 og 1, hvor 1 tilsvarer halvparten av Nyquists hastighetssamplingsfrekvens eller πrad / prøve.
For analoge filtre må avskjæringsfrekvensen uttrykkes i radianer / sekund og kan ha en hvilken som helst positiv verdi.
Datatype: dobbel presisjon

(to)

ftype — filtertype
“Lav” | “Båndpass” | 'høy' | 'Stoppe'
Filtertype, angitt som ett av følgende:

'Lav' spesifiserer et lavpasfilter med en kuttfrekvens på Wn. 'Lav' er standardverdien for den skalære Wn.
'high' angir et høypassfilter med kuttfrekvensen på Wn.
Hvis Wn er en to-elementsvektor, spesifiserer 'bandpass' et bandpassfilter av rekkefølge 2n. Når Wn har to elementer, er standardinnstillingen 'båndpass'.
Hvis Wn er en to-elementsvektor, spesifiserer 'stop' et båndstoppfilter av orden 2n.

(3) b, a-overføring funksjonskoeffisient
linjevektor
Overføringsfunksjonskoeffisienten til filteret, for lavpass- og høypassfiltre, returnerer en radvektor med lengden n + 1 for båndpas- og båndavvisningsfiltre, returnerer 2n + 1 linjefigur.

For digitale filtre uttrykkes overføringsfunksjonen av b og a som

For analoge filtre uttrykkes overføringsfunksjonen av b og a som

z, p, k-null, pol og forsterkning
kolonnevektor, skalar
Nullpunktet, polen og forsterkningen til filteret returneres som to kolonnevektorer med lengde n (2n for båndpass og båndstoppdesign) og en skalar.

For digitale filtre er overføringsfunksjonen representert med z, p og k som

A, B, C, D - tilstandsmatrise
matrise
Statens romrepresentasjon av filteret, returnert som en matrise. Hvis m = n for lavpas- og høypass design, og m = 2n for båndpas- og bånd-avvisningsfiltre, er A m × m, B er m × 1, C er 1 × m, og D er 1 × 1.

For digitale filtre knytter tilstandsrommatrisen tilstandsvektoren x, inngang u og utgang y på følgende måter:

Eksempler:

Design et sjetteordens lavpas Butterworth-filter med en kuttfrekvens på 300 Hz. For data som samples ved 1000 Hz, tilsvarer det rad / prøve. Plott amplitude og faserespons. Bruk den til å filtrere 1000 prøver av tilfeldige signaler.

fc = 300 fs = 1000 [b,a] = butter(6,fc/(fs/2)) freqz(b,a)

dataIn = randn(1000,1) dataOut = filter(b,a,dataIn)

Den normaliserte kantfrekvensen til 6. ordens Butterworth båndstoppfilter er rad / prøve.
Plott amplitude og faserespons. Bruk den til å filtrere tilfeldige data.

[b,a] = butter(3,[0.2 0.6],'stop') freqz(b,a)

dataIn = randn (1000.1)
dataOut = filter (b, a, dataIn)

Qualcomm Butterworth filter

Design et 9.-ordens høypass Butterworth-filter. Spesifiser en avskjæringsfrekvens på 300 Hz. For data som samples ved 1000 Hz, tilsvarer det rad / prøve. Plotamplitude og faseresponser. Konverter nuller, stolper og gevinster til andre ordens deler for bruk av fvtool.

[z,p,k] = butter(9,300/500,'high') sos = zp2sos(z,p,k) fvtool(sos,'Analysis','freq')

Bandpass Butterworth filter

Design et 20-orders Butterworth båndpasfilter med en lavere avskjæringsfrekvens på 500 Hz og en høyere avskjæringsfrekvens på 560 Hz. Spesifiser en samplingsfrekvens på 1500 Hz. Bruk statlig romrepresentasjon. Bruk designfilt til å designe et identisk filter.

[A,B,C,D] = butter(10,[500 560]/750) d = designfilt('bandpassiir','FilterOrder',20, ... 'HalfPowerFrequency1',500,'HalfPowerFrequency2',560, ... 'SampleRate',1500)

Konverter statlig plassrepresentasjon til andreordensdel. Bruk fvtool til å visualisere frekvensresponsen.

sos = ss2sos(A,B,C,D) fvt = fvtool(sos,d,'Fs',1500) legend(fvt,'butter','designfilt')

Sammenligning av analoge IIR lavpasfilter

Design et 5. ordens analoge Butterworth lavpassfilter med en kuttfrekvens på 2 GHz. Multipliser for å konvertere frekvens til radianer per sekund. Beregn filterets frekvensrespons ved 4096 poeng.

n = 5 f = 2e9 [zb,pb,kb] = butter(n,2*pi*f,'s') [bb,ab] = zp2tf(zb,pb,kb) [hb,wb] = freqs(bb,ab,4096)

Design et 5.-ordens Chebyshev Type I-filter med samme kantfrekvens og 3 dB passbåndsring. Beregn frekvensresponsen.

[z1,p1,k1] = cheby1(n,3,2*pi*f,'s') [b1,a1] = zp2tf(z1,p1,k1) [h1,w1] = freqs(b1,a1,4096)

Design et 5. ordens Chebyshev Type II-filter med samme kantfrekvens og 30 dB stoppbånddemping. Beregn frekvensresponsen.

[z2,p2,k2] = cheby2(n,30,2*pi*f,'s') [b2,a2] = zp2tf(z2,p2,k2) [h2,w2] = freqs(b2,a2,4096)

Design et 5.-ordens elliptisk filter med samme kantfrekvens, 3 dB passbåndsvipp og 30 dB stoppbånddemping. Beregn frekvensresponsen.

[ze,pe,ke] = ellip(n,3,30,2*pi*f,'s') [be,ae] = zp2tf(ze,pe,ke) [he,we] = freqs(be,ae,4096)

Plott dempningen i desibel. Uttrykk frekvensen i gigahertz. Sammenlign filtrene.

plot(wb/(2e9*pi),mag2db(abs(hb))) hold on plot(w1/(2e9*pi),mag2db(abs(h1))) plot(w2/(2e9*pi),mag2db(abs(h2))) plot(we/(2e9*pi),mag2db(abs(he))) axis([0 4 -40 5]) grid xlabel('Frequency (GHz)') ylabel('Attenuation (dB)') legend('butter','cheby1','cheby2','ellip')

Butterworth og Chebyshev II-filtre har et flatt passbånd og et bredt overgangsbånd. Chebyshev Type I og elliptiske filtre har raskere avrullingshastighet, men har en passbåndsring. Inngangsfrekvensen til Chebyshev II designfunksjonen setter starten på stoppbåndet i stedet for slutten på passbåndet.