Elliptisch 12. Ordnung bis Elliptisch 4. Ordnung
(Ich bin nicht berechtigt, das Kopfgeld zu erhalten.) Ich habe versucht, ein Gegenbeispiel zu Frage 3 in Octave zu erstellen, war aber angenehm überrascht, dass ich es nicht konnte. Wenn die Antwort auf die Frage 3 Ja lautet, sollten gemäß Fig. 5 der Frage bestimmte Pole und Nullen zwischen einem Ellipsenfilter der Ordnung 4 und einem Ellipsenfilter der Ordnung 12 geteilt werden, hier explizit gezeigt:
Fig. 1: Pole und Nullen, die möglicherweise zwischen elliptischen Filtern der Ordnung und , in blau und in der Reihenfolge des aufsteigenden Parameters einer parametrischen Kurve nummeriert .
N=12N=4αf(α)
Entwerfen wir ein elliptisches Filter der Ordnung 12 mit einigen willkürlichen Parametern: 1 dB Durchlassbandwelligkeit, -90 dB Stoppbandwelligkeit, Grenzfrequenz 0,1234, S-Ebene statt Z-Ebene:
pkg load signal;
[b12, a12] = ellip (12, 0.1, 90, 0.1234, "s");
ra12 = roots(a12);
rb12 = roots(b12);
freqs(b12, a12, [0:10000]/10000);
Abbildung 2. Der Frequenzgang der Stärke des elliptischen Filters 12. Ordnung ellip
.
scatter(vertcat(real(ra12), real(rb12)), vertcat(imag(ra12), imag(rb12)));
Abbildung 3. Pole (rot) und Nullen (blau) des elliptischen Filters der Ordnung 12 mit ellip
. Horizontale Achse: Realteil, vertikale Achse: Imaginärteil.
Konstruieren wir einen Filter der Ordnung 4, indem wir ausgewählte Pole und Nullen des Filters der Ordnung 12 gemäß Abb. 1 wiederverwenden. Im speziellen Fall ist es ausreichend, die Pole und Nullen nach dem Imaginärteil zu ordnen:
[~, ira12] = sort(imag(ra12));
[~, irb12] = sort(imag(rb12));
ra4 = [ra12(ira12)(2), ra12(ira12)(5), ra12(ira12)(8), ra12(ira12)(11)];
rb4 = [rb12(irb12)(2), rb12(irb12)(5), rb12(irb12)(8), rb12(irb12)(11)];
freqs(poly(rb4), poly(ra4), [0:10000]/10000);
Abbildung 4. Frequenzgang der Stärke des Filters 4. Ordnung, dessen Pole und Nullen mit denen des Filters 12. Ordnung identisch sind (siehe Abb. 1). Durch Einzoomen erhält man eine Beschreibung des Filters: 3,14 dB Durchlassband-Equiripple. 27,69 dB Stopband Equiripple, Grenzfrequenz 0,1234.
Nach meinem Verständnis ist ein Equiripple-Pass-Band und ein Equiripple-Stop-Band mit so vielen Welligkeiten, wie es die Anzahl der Pole und Nullen zulässt, eine ausreichende Bedingung, um zu sagen, dass das Filter elliptisch ist. Aber lassen Sie uns versuchen, dies zu bestätigen, indem wir ein elliptisches Filter der Ordnung 4 ellip
mit der aus 3 erhaltenen Charakterisierung entwerfen und die Pole und Nullen zwischen den Filtern der beiden Ordnung 4 vergleichen:
[b4el, a4el] = ellip (4, 3.14, 27.69, 0.1234, "s");
rb4el = roots(b4el);
ra4el = roots(a4el);
scatter(vertcat(real(ra4), real(rb4)), vertcat(imag(ra4), imag(rb4)));
Das gegen:
scatter(vertcat(real(ra4el), real(rb4el)), vertcat(imag(ra4el), imag(rb4el)), "blue", "x");
Abbildung 5. Vergleich der Positionen der Pole (rot) und Null (blau) zwischen einem ellip
entworfenen Filter 4. Ordnung (Kreuze) und einem Filter 4. Ordnung (Kreise), der bestimmte Positionen der Pole und Null mit dem Filter 12. Ordnung teilt. Horizontale Achse: Realteil, vertikale Achse: Imaginärteil.
Die Pole und Nullen stimmen zwischen den beiden Filtern mit drei Dezimalstellen überein, was die Genauigkeit der Charakterisierung des vom Filter der Ordnung 12 abgeleiteten Filters war. Die Schlussfolgerung ist, dass zumindest in diesem speziellen Fall sowohl die Pole als auch die Nullstellen des Ellipsenfilters der Ordnung 4 und die des Ellipsenfilters der Ordnung 12 zumindest bis zu einer Genauigkeit erhalten werden könnten, indem sie gleichmäßig auf die gleichen parametrischen Kurven verteilt werden . Die Filter waren keine Filter vom Typ Butterworth oder Chebyshev I oder II, da sowohl das Durchlassband als auch das Sperrband Welligkeiten aufwiesen.
Elliptisch 4. Ordnung bis elliptisch 12. Ordnung
Können umgekehrt die Pole und Nullen des Filters 12. Ordnung aus einem Paar kontinuierlicher Funktionen approximiert werden, die an die Pole und Nullen des ellip
Filters 4. Ordnung angepasst sind ?
Wenn wir die vier Pole duplizieren (Abb. 5) und das Vorzeichen der realen Teile der Duplikate umdrehen, erhalten wir eine Art Oval. Während wir das Oval umrunden, ergeben die Polstellen, an denen wir vorbeikommen, eine periodische diskrete Folge. Es ist ein guter Kandidat für die periodische bandbegrenzte Interpolation, indem seine diskrete Fourier-Transformation (DFT) mit Nullen aufgefüllt wird. Von den resultierenden Polen werden diejenigen mit einem positiven Realteil verworfen, was die Anzahl der Pole auf halbiert . Anstelle der Nullen werden deren Kehrwerte interpoliert, ansonsten erfolgt die Interpolation wie bei den Polen. Wir beginnen mit dem gleichen Filter 4. Ordnung wie zuvor (ungefähr identisch mit Abb. 4):2412ellip
pkg load signal;
[b4el, a4el] = ellip (4, 3.14, 27.69, 0.1234, "s");
rb4el = roots(b4el);
ra4el = roots(a4el);
rb4eli = 1./rb4el;
[~, ira4el] = sort(imag(ra4el));
[~, irb4eli] = sort(imag(rb4eli));
ra4eld = vertcat(ra4el(ira4el), -ra4el(ira4el));
rb4elid = vertcat(rb4eli(irb4eli), -rb4eli(irb4eli));
ra12syn = -interpft(ra4eld, 24)(12:23);
rb12syn = -1./interpft(rb4elid, 24)(12:23);
freqs(poly(rb12syn), poly(ra12syn), [0:10000]/10000);
Abbildung 6. Frequenzgang der Stärke eines Filters 12. Ordnung, bei dem die Pole und Nullen von Kurven abgetastet wurden, die mit denen des Filters 4. Ordnung übereinstimmen.
Es ist nicht genau genug, um ein Modell der Antwort von Fig. 2 nützlich zu machen. Das Stopp-Band läuft ziemlich gut, aber das Pass-Band ist gekippt. Die Bandkantenfrequenzen sind ungefähr korrekt. Dies zeigt jedoch Potenzial, wenn man bedenkt, dass die parametrischen Kurven nur mit jeweils 4 Freiheitsgraden beschrieben wurden.
Schauen wir uns an, wie die Pole und Nullen mit denen des generierten Filters übereinstimmen:N=12 ellip
[b12, a12] = ellip (12, 0.1, 90, 0.1234, "s");
ra12 = roots(a12);
rb12 = roots(b12);
scatter(vertcat(real(ra12), real(rb12)), vertcat(imag(ra12), imag(rb12)), "blue", "x");
scatter(vertcat(real(ra12syn), real(rb12syn)), vertcat(imag(ra12syn), imag(rb12syn)));
Abbildung 7. Vergleich der Positionen von Pol (rot) und Null (blau) zwischen einem ellip
Filter 12. Ordnung (Kreuze) und einem Filter 12. Ordnung (Kreise), der vom Filter 4. Ordnung abgeleitet wurde. Horizontale Achse: Realteil, vertikale Achse: Imaginärteil.
Die interpolierten Pole sind ziemlich unterschiedlich, aber die Nullen stimmen relativ gut überein. Ein größeres als Ausgangspunkt sollte untersucht werden.N
Elliptisch 6. Ordnung bis elliptisch 18. Ordnung
Wenn Sie das Gleiche wie oben tun, aber bei der 6. Ordnung beginnen und bis zur 18. Ordnung interpolieren, wird ein scheinbar gut verhaltener Frequenzgang angezeigt, bei genauer Betrachtung treten jedoch immer noch Probleme im Durchlassbereich auf:
[b6el, a6el] = ellip (6, 0.03, 30, 0.1234, "s");
rb6el = roots(b6el);
ra6el = roots(a6el);
rb6eli = 1./rb6el;
[~, ira6el] = sort(imag(ra6el));
[~, irb6eli] = sort(imag(rb6eli));
ra6eld = vertcat(ra6el(ira6el), -ra6el(ira6el));
rb6elid = vertcat(rb6eli(irb6eli), -rb6eli(irb6eli));
ra18syn = -interpft(ra6eld, 36)(18:35);
rb18syn = -1./interpft(rb6elid, 36)(18:35);
freqs(poly(rb18syn), poly(ra18syn), [0:10000]/10000);
Abbildung 8. Von oben) ellip
erzeugter Filter 6. Ordnung , von unten) von dem Filter 6. Ordnung abgeleiteter Filter 18. Ordnung. Das vergrößerte Durchlassband hat nur zwei Maxima und eine Welligkeit von etwa 1 dB. Das Stoppband ist mit 2,5 dB Variation nahezu gleichwellig.
Ich vermute, dass die bandbegrenzte Interpolation bei den (realen) Polen nicht gut genug funktioniert.
Exakte Kurven für elliptische Filter
Es stellt sich heraus, dass elliptische Filter, für die , positive Beispiele für die Fragen 1 und 2 sind. C. Sidney Burrus, Digitale Signalverarbeitung und Digitalfilterdesign (Entwurf). OpenStax CNX. Am 18. November 2012 werden die Nullen und Pole der Übertragungsfunktion eines hinreichend allgemeinen Ellipsenfilters in Bezug auf den Jacobi-EllipsensinusMan beachte, dass Burrus Gl. 3.136 kann für Nullen wie folgt umgeschrieben werden :
NNz=NNp=NNNz=NNp=N sn(t,k).sn(t,k)=−sn(−t,k),szi, i=1…N
szi=jksn(K+K(2i+1)/N,k),(1)
Dabei ist eine Viertelperiode von für real und kann als Freiheitsgrad bei der Parametrisierung des Filters angesehen werden. Hiermit wird die Übergangsbandbreite im Verhältnis zur Durchlassbandbreite gesteuert. Erkennen von (siehe Gleichung 2 der Frage) wobei der Parameter der parametrischen Kurve ist:Ksn(t,k)t0≤k≤1(2i+1)/N=2αα
fz(α)=jksn(K+2Kα,k),(2)
Burrus Gl. 3.146 gibt die Pole der oberen linken Viertelebene einschließlich eines echten Pols für ungerades . Es kann für alle Pole mit einem beliebigen wie umgeschrieben werden :Nspi, i=1…NN
spi=cn(K+K(2i+1)/N,k)dn(K+K(2i+1)/N,k)sn(ν0,1−k2−−−−−√)×cn(ν0,1−k2−−−−−√)+jsn(K+K(2i+1)/N,k)dn(ν0,1−k2−−−−−√)1−dn2(K+K(2i+1)/N,k)sn2(ν0,1−k2−−−−−√),(3)
Dabei ist eine der elliptischen Jacobi-Funktionen. Einige Quellen haben als zweites Argument für all diese Funktionen und nennen es den Modul. Wir haben und nennen es den Modul. Die Variable kann als einer der beiden Freiheitsgrade der hinreichend allgemeinen parametrischen Kurven und einer der drei Freiheitsgrade eines ausreichend allgemeinen elliptischen Filters. Bei die Durchlassbandwelligkeit unendlich und bei wodn(t,k)=1−k2sn2(t,k)−−−−−−−−−−−−√k2k0<ν0<K´(k,ν0)(k,ν0,N)ν0=0ν0=K´K´Ist die Viertelperiode der Jacobi-Ellipsenfunktionen mit dem Modul , würden die Pole Nullen entsprechen. Mit ausreichend allgemein meine ich, dass es nur noch einen Freiheitsgrad gibt, der die Frequenz der Durchlassbandkante steuert und der sich als gleichmäßige Skalierung beider parametrischer Kurvenfunktionen um denselben Faktor manifestiert. Die Teilmenge der elliptischen Filter, die und einen nicht reduzierbaren Bruchteil , werden bei Änderung des trivialen Freiheitsgrades in eine andere Teilmenge unendlicher Größe in der Dimension transformiert .1−k2−−−−−√fp(α), fz(α),Nz/Pz=1N
Durch die gleiche Substitution wie bei den Nullen kann die Parameterkurve für die Pole wie folgt geschrieben werden:
fp(α)=cn(K+2Kα,k)dn(K+2Kα,k)sn(ν0,1−k2−−−−−√)×cn(ν0,1−k2−−−−−√)+jsn(K+2Kα,k)dn(ν0,1−k2−−−−−√)1−dn2(K+2Kα,k)sn2(ν0,1−k2−−−−−√).(4)
wir die Funktionen und Kurven in Oktave für Werte von und ( im Code), die aus Burrus-Beispiel 3.4 kopiert wurden:kν0v0
k = 0.769231;
v0 = 0.6059485; #Maximum is ellipke(1-k^2)
K = 1024; #Resolution of plots
[snv0, cnv0, dnv0] = ellipj(v0, 1-k^2);
dnv0=sqrt(1-(1-k^2)*snv0.^2); # Fix for Octave bug #43344
[sn, cn, dn] = ellipj([0:4*K-1]*ellipke(k^2)/K, k^2);
dn=sqrt(1-k^2*sn.^2); # Fix for Octave bug #43344
a2K = [0:4*K-1];
a2KpK = mod(K + a2K - 1, 4*K)+1;
fza = i./(k*sn(a2KpK));
fpa = (cn(a2KpK).*dn(a2KpK)*snv0*cnv0 + i*sn(a2KpK)*dnv0)./(1-dn(a2KpK).^2*snv0.^2);
plot(a2K/K/2, real(fza), a2K/K/2, imag(fza), a2K/K/2, real(fpa), a2K/K/2, imag(fpa));
ylim([-2,2]);
a = [1/6, 3/6, 5/6];
ai = round(a*2*K)+1;
scatter(vertcat(a, a), vertcat(real(fza(ai)), imag(fza(ai)))); ylim([-2,2]); xlim([0, 2]);
scatter(vertcat(a, a), vertcat(real(fpa(ai)), imag(fpa(ai))), "red", "x"); ylim([-2,2]); xlim([0, 2]);
Abbildung 9. und für Burrus Beispiel 3.4, analytisch erweitert auf Periode . Die drei Pole (rote Kreuze) und die drei Nullen (blaue Kreise, einer unendlich und nicht gezeigt) des Beispiels werden in Bezug auf bei und gleichmäßig abgetastet aus diesen Funktionen gemäß Gl. 2 der Frage. Mit der Erweiterung wird der Kehrwert vonfz(α)fp(α)α=0…2αα=1/6, α=3/6,α=5/6,Im(fz(α))(nicht gezeigt) oszilliert sehr sanft, was es einfach macht, sich durch eine abgeschnittene Fourier-Reihe wie in den vorherigen Abschnitten anzunähern. Die anderen periodisch erweiterten Funktionen sind ebenfalls flüssig, lassen sich aber nicht so einfach annähern.
plot(real(fpa)([1:2*K+1]), imag(fpa)([1:2*K+1]), real(fza)([1:2*K+1]), imag(fza)([1:2*K+1]));
xlim([-2, 2]);
ylim([-2, 2]);
scatter(real(fza(ai)), imag(fza(ai))); ylim([-2,2]); xlim([-2, 2]);
scatter(real(fpa(ai)), imag(fpa(ai)), "red", "x"); ylim([-2,2]); xlim([-2, 2]);
Abbildung 10. Parametrische Kurven für Burrus Beispiel 3.4. Horizontale Achse: Realteil, vertikale Achse: Imaginärteil. Diese Ansicht zeigt nicht die Geschwindigkeit der Parameterkurve, so dass die drei Pole (rote Kreuze) und die drei Nullen (blaue Kreise, einer unendlich und nicht gezeigt) nicht gleichmäßig auf den Kurven verteilt zu sein scheinen, selbst wenn sie mit sind in Bezug auf den Parameter der parametrischen Kurven.α
Das elliptische Filterdesign mit den von Burrus angegebenen exakten und entspricht vollständig der Abtastung mit den exakten und , sodass die Methoden gleichwertig und verfügbar sind. Frage 1 bleibt offen. Es kann sein, dass andere Filtertypen unendlich viele Untergruppen haben, die durch und und . Von den Methoden zur Approximation der elliptischen parametrischen Kurven sind diejenigen, die nicht von der genauen Funktionsform abhängen, möglicherweise auf andere Filtertypen übertragbar. Ich halte dies für die wahrscheinlichsten Methoden, die elliptische Filter verallgemeinern, wie beispielsweise eine Teilmenge von allgemeinen Equiripple-Filtern. Für sie können exakte Formeln für Pole und Nullen unbekannt oder unlösbar sein.fp(α)fz(α)fp(α)f