Hat jemand einen Vorschlag für eine Rechenvorschrift abseits einer FFT für einen Audiospektrumanalysator? Ich überlegen, das Signal herunter zu mischen ( sweep ) und dann mit einem Bandpass zu filtern.
Kaskadierte Halbbandfilter? Siehe: Beitrag ""LED-Spectrumanalyzer"software ohne Fouriertransformation"
Christoph M. schrieb: > Hat jemand einen Vorschlag für eine Rechenvorschrift abseits einer FFT > für einen Audiospektrumanalysator? Goertzel. > Ich überlegen, das Signal herunter zu mischen ( sweep ) ??? Was genau willst du da mischen? Ich denke, das Ziel beim einem Spektrumanalysator ist vielmehr: zu trennen. > und dann mit > einem Bandpass zu filtern. Genau das ist ein Goertzel de facto. Übrigens: mit dem Goertzel kann man das sogar mit einem ATtiny realisieren, der nichtmal in Hardware multiplizieren kann. No need for DSP. Siehe: Beitrag "Audio Spektrum Analyzer mit ATtiny85" DSP könnte man aber natürlich brauchen, wenn die Auflösung besser werden soll. Oder wenn man mehr Kanäle haben will. Bei Letzterem ist man aber dann relativ fix wieder bei der FFT als effizienterer Lösung...
Bernd schrieb: > Kaskadierte Halbbandfilter? > Siehe: Beitrag ""LED-Spectrumanalyzer"software ohne Fouriertransformation" Das ist nur die halbe Lösung. Was da rauskommt, ist ziemlich unbrauchbar als Audio-Spektrumanalysator. Selbst wenn der HB-Filter deutlich besser wäre...
c-hater schrieb: > Goertzel. Ja und zwar mit jeweils optimierten Frequenzen maximal in Terzabstand. FFT müsste es sehr hoch aufgelöst sein, um unten noch gut abzubilden. Was so einigermassen ginge, sind 4-5 Frequenzen pro Oktave und daran angeschlossen eine HBF-Kaskade nach unten.
Moin, Man kann die kaskadierten Halbbandfilter auch noch weiter aufbohren: Bei dem Beispiel von mir mit dem Atmega kommt ja am Ausgang jedes Hochpasses direkt die Pegelauswertung. Da koennte man z.b. noch jeweils eine(oder 3 oder 7 oder 15 oder ...) weitere HP/TP Kombi(s) reinbauen, um die detektierten Frequenzbereiche weiter aufzufieseln. Vorteil auch hier: alle Filter bleiben voellig identisch. Also z.b. bisher: 16k-8k -> zur Pegelbestimmung/Display 8k-0k -> auf die naechste HP/TP Kombi Jetzt neu: 16k-8k -> aufsplitten in 16k-12k und 12k-8k, dann erst Pegel bestimmen. 8k-0k -> auf die naechste HP/TP Kombi Gruss WK
Dergute W. schrieb: > Man kann die kaskadierten Halbbandfilter auch noch weiter aufbohren: Bei > dem Beispiel von mir mit dem Atmega kommt ja am Ausgang jedes Hochpasses > direkt die Pegelauswertung. Da koennte man z.b. noch jeweils eine(oder 3 > oder 7 oder 15 oder ...) weitere HP/TP Kombi(s) reinbauen, um die > detektierten Frequenzbereiche weiter aufzufieseln. > Vorteil auch hier: alle Filter bleiben voellig identisch. Das ist ein verdammt umständlicher Weg, um letztlich wieder eine FFT zu bauen (wenn auch ohne das erste "F")... Genau darauf läuft dein Konzept nämlich hinaus. Von der Wirkung (im Vollausbau) exakt wie eine Radix2-FFT, bloß rechenzeitbedarfsmäßig ganz erheblich schlechter als eine solche, denn die nutzt die algorithmischen Redundanzen, die sich bei deinem Ansatz zwangsläufig ergeben, von vornherein dazu, um eben Rechenzeit zu sparen. Man könnte sogar glatt ausrechnen, wann dein Konzept im Vergleich zur FFT den "break even" erreicht. Du wirst dich erschrecken, wie schnell das geht... Und übrigens: es ist nicht Ziel der Signalverarbeitung, mit möglichst wenig verschiedenen Filtern auszukommen, sondern typisch eher: die Aufgabe mit der verfügbaren Rechenleistung bestmöglich zu lösen. Wenn die bestmögliche Lösung zwei, drei oder vier verschiedene Filter erfordert, dann isses eben so.
Moin, Ja, wenn du meinst... Nachdem ich ja nicht fuer jedes kaskadierte Halbbandfilter irgendwelche Tantiemen krieg, ist's mir eigentlich eher wurscht, wenn's irgendwer aus irgendwelchen Gruenden nicht einsetzen mag. Gruss wK
Dergute W. schrieb: > Nachdem ich ja nicht fuer jedes kaskadierte Halbbandfilter irgendwelche > Tantiemen krieg, ist's mir eigentlich eher wurscht, wenn's irgendwer aus > irgendwelchen Gruenden nicht einsetzen mag. Auch wenn du es offensichtlich nicht wirklich verstanden hast: auch eine Radix2-FFT besteht letztlich aus vielen kaskadierten HB-Filtern, sogar welchen ziemlich exakt deiner Bauart. Sie benutzt sie nur viel effizienter als du das tust... Im Übrigen kannst du mich sowieso nicht meinen. Ich hab' doch im meiner ATtiny-Lösung auch kaskadierte Halbbandfilter verwendet (nur halt einen besseren als deinen). Ich war mir aber obendrein auch nicht zu schade, zusätzlich Goertzels zu verwenden. Bei geeigneter Verwendung waren die schlicht sehr billig, aber trotzdem sehr wirkungsvoll. Sehr viel wirkungsvoller als zweckentfremdete Halbbandfilter... Genau das ist, was ich mit meiner Darstellung des Zwecks und der typischen Herangehensweise bei der Signalverarbeitung ausdrücken wollte. Quasi-religiöses Schmalspurdenken führt hier (wie sonst auch) eher nicht zum optimalen Ergebnis...
c-hater schrieb: > Man könnte sogar glatt ausrechnen, wann dein Konzept > im Vergleich zur FFT den "break even" erreicht. Hic rhodus, hic salta.
Moin, Ein Vorteil der (Halbband)filterkaskaden ist die niedrige Rechenleistung bei grossen Frequenzverhaeltnissen; wenn also das hoechste und tiefste Frequenzband, das einen interessiert, sehr weit auseinander ist und wenn einen auch eher die Baender in einem logarithmischen Massstab und nicht in einem linearen Massstab interessieren. Was bei Audio oft der Fall ist. Wenn z.B. eine Hoch/Tiefpasskombi bei der vollen Abtastfrequenz den Rechenaufwand 1 pommes/quadratbratwurst braucht, braucht die gesamte Filterkaskade (bei Oktavausgaengen) immer etwas unter 2 pommes/quadratbratwurst. Und zwar voellig wurscht, ob ich ueber 10 Oktaven analysiere, oder ueber 100 Oktaven. Das sieht bei Fourier oder Goertzel dann etwas anders aus. Auch wenn ich sage, Oktavabstaende sind mir zu grob, also haeng ich an jeden Hochpassausgang der Originalkaskade noch eine HP/TP-Kombi, damit ich 2 Messwerte pro Oktave erhalte, dann steigt der Aufwand niemals ueber eine bestimmte Grenze. Hier waeren es dann 3 pommes/quadratbratwurst. Also ziemlich uebersichtlich. Gruss WK
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.