In Anlehnung an Bellangers klassische digitale Signalverarbeitung - Theorie und Praxis geht es nicht darum, wo Ihre Grenzfrequenz liegt, sondern darum, wie viel Dämpfung Sie benötigen, wie viel Welligkeit Sie im Signal tolerieren und vor allem wie verengen Sie Ihren Übergang von Pass- zu Stopband (Übergangsbreite) muss sein.
Ich gehe davon aus, dass Sie einen linearen Phasenfilter wünschen (obwohl Sie die minimale Latenz angeben, halte ich einen minimalen Phasenfilter im Allgemeinen nicht für eine gute Idee, es sei denn, Sie wissen genau, was Sie mit Ihrem Signal danach tun werden). . In diesem Fall ist die Filterreihenfolge (die Anzahl der Abgriffe)
N≈ 23Log10[ 110 δ1δ2]fsΔ f
mit
fsΔ fδ1δ2 die Abtastrate die Übergangsbreite, dh der Unterschied zwischen dem Bandende und dem Bandanfang die welligkeit im passband, dh "Wie viel von der ursprünglichen Amplitude können Sie sich leisten, um zu variieren" die Unterdrückung in der Stop-Band .
Lassen Sie uns einige Zahlen einstecken! Sie haben eine Grenzfrequenz von fs100 , also werde ich geheneinfach weiter und holen SieÜbergangsbreite nicht mehr sein wird alsHälfte davon, alsoΔ f= fs200 .
Ausgehend von der SDR / RF-Technologie ist eine Unterdrückung von 60 dB in der Regel völlig ausreichend - Hardware ohne verrückte Kosten kann unerwünschte Signale nicht besser aus Ihrem Eingang fernhalten. Verschwenden Sie also keine CPU mit einem fantastischen Filter, der besser ist als was deine Hardware kann. Daher δ2= - 60 dB = 10- 3 .
Nehmen wir an, Sie können mit einer Amplitudenschwankung von 0,1% im Durchlassbereich leben (wenn Sie mit mehr leben können, sollten Sie auch erwägen, die Unterdrückungsanforderung weniger streng zu gestalten). Das ist δ1= 10- 4 .
Also, schließen Sie dies an:
NTommys Filter≈ 23Log10[ 110 δ1δ2]fsΔ f= 23Log10[ 110 ⋅ 10- 4⋅ 10- 3]fsfs200= 23Log10[ 110 ⋅ 10- 7]200= 23Log10[ 110- 6]200= 23( log10106)200= 23⋅ 6 ⋅ 200= 800 .
Mit Ihren 200 Taps sind Sie also weit weg, wenn Sie in Ihrem Filter ein extrem schmales Durchlassband verwenden, wie ich es angenommen habe.
Beachten Sie, dass dies nicht haben ein Problem sein - vor allem, ein 800-Taps Filter ist beängstigend, aber ehrlich gesagt, nur auf den ersten Blick:
- Wie ich in dieser Antwort bei StackOverflow getestet habe : CPU's sind heutzutage schnell , wenn Sie eine CPU-optimierte FIR-Implementierung von jemandem verwenden. Ich habe zum Beispiel die FFT-FIR-Implementierung von GNU Radio mit genau der oben angegebenen Filterspezifikation verwendet. Ich habe eine Leistung von 141 Millionen Samples pro Sekunde - das könnte für Sie ausreichen oder nicht. Hier ist unser fragenspezifischer Testfall (für dessen Erstellung ich Sekunden benötigt habe):
- MMM= 50120050= 24
- 96kSs≪lächerlich141FRAUs
- 1100
Für eine schnelle und sehr praktische Schätzung mag ich die Faustregel von Fred Harris:
woher:
Dämpfung ist die gewünschte Dämpfung in dB,
Dies kommt dem sehr nahe, was Sie für ein lineares Phasenfilter mit einer Durchlassbandwelligkeit von 0,1 dB erhalten würden. Ich verwende diese Faustregel oft, um eine erste Vorstellung von der Anzahl der benötigten Abgriffe zu bekommen und sie dann durch Iteration im Filterentwurfsprozess zu ändern.
Zu beachten ist auch, dass diese Faustregel einen guten Einblick in die Faktoren bietet, die die Anzahl der Abgriffe tatsächlich bestimmen: Stoppbanddämpfung und Steilheit des Übergangsbands (und Durchlassbandwelligkeit, aber in der Regel - zumindest für Filter, für die ich entworfen habe Funkkommunikationsanwendungen - die Dämpfungsanforderung würde über der Welligkeit dominieren). Es fehlt also Ihre Frage, wie schnell Sie zu einem Stopp-Band übergehen müssen, wenn Sie einen Cutoff bei Fs / 100 angeben.
Das Herumspielen mit diesen Zahlen kann auch die Bedeutung der Verarbeitungsreduzierung unter Verwendung von Dezimierungsansätzen demonstrieren.
quelle
Ergänzen Sie die akzeptierte Antwort um einige zusätzliche Verweise. Ich werde nicht die Formeln schreiben, die beteiligt sein können. Diese Formeln ergeben meistens Faustregeln oder Annäherungen, von denen aus man beginnen kann. Sie können an diesen Zahlen für Ihr tatsächliches Design herumspielen.
Einer der Gründe für Bellangers Entwurf ist: Über die Komplexität der Berechnungen in digitalen Filtern, 1981, Proc. EUR. Conf. Schaltungsentwurf, M. Bellanger. Es ist ziemlich schwer zu bekommen, aber es ist machbar . Interessanterweise werden auch Formeln zur Bewertung der Anzahl der Bits pro Koeffizient angegeben, die bei der Implementierung mit endlicher Arithmetik berücksichtigt werden sollten. Eine zugänglichere Version auf Französisch ist: Evaluation de la complexité des filtres numériques , 1982.
Einige andere Formeln sind in Finite Impulse Response Filter Design , Handbook for Digital Signal Processing, 1993, T. Samamaki, zusammengefasst.
In jüngerer Zeit können Sie Genaue Schätzung der minimalen Filterlänge für optimale FIR-Digitalfilter lesen , 2000, K. Ichige et al.
Schließlich wird in der Veröffentlichung Effizientes Design von FIR-Filtern mit minimalen Filterordnungen unter Verwendung der 10-Norm-Optimierung von 2014 ein Design gefordert , bei dem die Reihenfolge schrittweise verringert wird.
quelle
Die wichtigsten praktischen Probleme, die ich mir vorstellen kann, sind die Anzahl der Frequenzabtastungen, die bei der Optimierung verwendet werden, da das Verhalten zwischen den Frequenzen zu unerwünschten Effekten führen kann. Wie gut die Passform sein kann, hängt natürlich von der Anzahl der Gewindebohrer ab. Ich denke man könnte sagen, dass die minimale Anzahl von Abgriffen ist, wenn das Problem nicht mehr realisierbar ist. Eine Lösung wäre also, das Machbarkeitsproblem zu lösen.
quelle