Zunächst haben Sie Ihren Digitalfilter wahrscheinlich falsch gestaltet. Sie haben verwendet Wn = 5000/Fs
, aber der digitale Wn-Parameter möchte eine Zahl von 0 bis 1, wobei 1 Fs / 2 ist, also würden Sie normalerweise für ein 5000-Hz-Filter sagen, dass Wn = 5000/(Fs/2)
.
Angenommen, Sie haben dies gemeint, möchten Sie ein analoges Butterworth-Tiefpassfilter 2. Ordnung mit einer Grenzfrequenz von 5000 Hz entwerfen.
Verwenden Sie zunächst [b,a] = butter(n,Wn,'s')
, um die Ausgabe in der analogen Domäne anstelle der digitalen z-Domäne abzurufen.
[b, a] = Butter (n, Wn, 's') entwirft ein analoges Butterworth-Tiefpassfilter der Ordnung n mit der Winkelgrenzfrequenz Wn rad / s. Es gibt die Filterkoeffizienten in den Zeilenvektoren b und a der Länge n + 1 in absteigenden Potenzen von s zurück, die aus dieser Übertragungsfunktion abgeleitet wurden:
Wenn Sie möchten, dass die Grenzfrequenz 5 kHz (= 2π⋅5000 Radian / s) beträgt, verwenden Sie butter(2,2*pi*5000,'s')
beispielsweise. In GNU Octave bekomme ich:
> [b, a] = butter(2,2*pi*5000,'s')
b = 9.8696e+008
a = 1.0000e+000 4.4429e+004 9.8696e+008
Die Übertragungsfunktion wäre dann also
H(s)=9.8696×108s2+4.4429×104s+9.8696×108
Butterworth-Filter bestehen immer aus N Polen, die in einem Halbkreis um die linke Seite des Einheitskreises angeordnet sind (und Sie können sie tatsächlich direkt auf diese Weise entwerfen). Dies hat 2 Pole bei -22214,4 ± 22214,4j. Um einen praktischen Filter zu erstellen, gruppieren Sie die komplexen konjugierten Paare in Abschnitte 2. Ordnung und erstellen für jeden einen Biquad-Filter. In Ihrem Fall handelt es sich bereits um einen einzelnen Abschnitt 2. Ordnung, sodass Sie nur einen Filter benötigen.
Dann ordnen Sie das einer Schaltung zu, wie einer von diesen: http://en.wikipedia.org/wiki/Butterworth_filter#Filter_design
Die Kondensatorreaktanz beträgt und die Induktivitäten sind , daher ist die Übertragungsfunktion1CsLs
H(s)=Vout(s)Vin(s)=1C1s∥R2L1s+R1+1C1s∥R2=R2CL1R2s2+(CR1R2+L1)s+(R2+R1)
Damit
- Zähler:
- R2 = 9,8696e + 008 Ω = 987 MΩ
- Nenner:
- C * L1 * R2 = 1
- C * R1 * R2 + L1 = 4,4429e + 004
- R2 + R1 = 987 MΩ
Also dann ist R1 = 0 und L1 = 44,4 kH? und C = 22,8 fF ?? ... Oh Mann, ich erinnere mich nicht an dieses Zeug.
Eigentlich ... obwohl diese Werte völlig verrückt sind, funktionieren sie in einer Simulation.
Sie können dann alle Werte gleichzeitig auf vernünftigere Werte skalieren. Multiplizieren Sie den Kondensator mit einem bestimmten Wert und teilen Sie die Induktivität und den Widerstand durch denselben Wert, um das Filter gleich zu halten. Zum Beispiel bringt uns das Multiplizieren mit 1 Million in einen vernünftigeren Bereich:
- C = 22,8 fF * 1000000 = 22,8 nF
- R2 = 987 MΩ / 1000000 = 987 Ω
- L1 = 44,4 kH / 1000000 = 44,4 mH
Hey, es funktioniert!
Praktisch aber? Verwenden Sie einfach wie alle anderen Filterdesign-Software.