Frage

Wie in diesem Beispiel Wie zu extrahieren Frequenzinformation von einem Eingangsaudiostrom (unter Verwendung von Portaudio)? ich bin neugierig auf Portaudio und numpy ...

Ich bin nicht 100% sicher fft, wie kann ich ein Stück passieren numpy und zurück drei Werte von -1,0 bis 1,0 für Bässe, Mitten und Höhen bekommen?

Ich habe nichts dagegen, wenn dies nur für einen Kanal, wie ich Sinn des Audio-Teils davon machen kann, ist es die Mathematik ist, die vor mir schwimmen, wenn ich sie anschaue:)

War es hilfreich?

Lösung

Eigentlich würde man nicht ein Fourier-Transformation verwenden, um dies zu tun.

Splitting jedes Audiosignal in Bass, Mitten und Höhen in der Regel wird mit Hilfe von Filtern erfolgen. Ein Filter ist eine Signalverarbeitungseinrichtung, daß bestimmte Frequenzbereiche abschwächt. Filter können Bau digital oder elektrisch sein. Zum Beispiel werden sie in den Audio-Crossover-Systeme Lautsprecher verwendet wird.

Um den tieffrequenten Bass-Teil erhalten Sie einen Tiefpassfilter verwenden würden. Tiefpassfilter Filter aus hohen Frequenzen. Sie werden auch als ‚High-Cut‘ Filter genannt.
Um die Mittenfrequenz Mittelteil zu erhalten würden Sie einen Bandpassfilter verwenden. Bandpaßfiltern Filter beide aus niedrigen und hohen Frequenzen. Sie werden auch als ‚glocken Filter‘ genannt.
Um den Hochfrequenz-Höhen Teil bekommen würden Sie einen Hochpassfilter verwenden. Hochpassfilter Filter aus irgendwelchen tiefen Frequenzen. Sie werden auch als 'Low-Cut' Filter genannt.

Eigentlich könnte man auch nur verwenden, um die Hochpass- und Tiefpassfilter. Wenn Sie beide gefilterten Signale von dem ursprünglichen Signal subtrahieren, wäre das Ergebnis ein Bandpass-gefilterten Signal. Das spart Ihnen einen Filter.

Jeder Filter wird eine Grenzfrequenz hat. Die Grenzfrequenz ist eine spezielle Frequenz, aus dem der Filter sollte Filterung starten. Je nach Filterordnung wird das Signal um 6 dB / Okt (1. Ordnung), 12 dB / Okt (2. Ordnung), 18 dB / Okt (3. Ordnung) abgeschwächt werden, etc. Für Ihre Anwendung, eine 2. Ordnung Design wahrscheinlich in Ordnung.
Beachten Sie, dass Filter im allgemeinen Chaos mit Ihrem Signal in gewisser Weise und je höher die Ordnung, die diese mehr hörbar bekommen. By the way, ist diese reine Physik und gilt für die gesamte Signalverarbeitung einschließlich Fourier-Transformationen.

diese drei Filter verwendet wird (können) äquivalent ein Fourier-Transformation mit nur drei Spektralpunkten zu tun.

Andere Tipps

Die Fourier-Transformation , erwähnt in der ausgewählten Antwort auf die Frage SO Sie zeigen, gibt Ihnen das „Spektrum“ - eine große Sammlung von Werten, die Schallintensität in jedem der verschiedenen Bereichen / Scheiben von Frequenzen (ausgedrückt zum Beispiel in Hertz) zu geben.

Wie übersetzen (sagen wir) tausend Intensitäten (eines pro 10-Hertz-Scheibe des Spektrums, sagen wir) in nur drei Zahlen, wie Sie es wünschen, ist natürlich ganz heuristisches Problem - zum Beispiel könnten Sie einfach entscheiden die Frequenzbereiche entsprechen, „Bass“ und „Höhen“, mit allem, was in-zwischen „Mitte“ zu sein, und die Durchschnittsintensitäten in jedem berechnen. Für was es wert ist, glaube ich, eine gemeinsame Konvention für „Bass“ ist bis 250Hz auf, für „Höhen“ 6KHz und höher (in-zwischen „Midrange“ ist), cfr z.B. diese Seite - aber es ist eher eine willkürliche Konvention, so, "Pick your poison" ! -)

Sobald Sie die relativ Ebenen Sie sie zueinander in Bezug wollen werden normalisieren und skalieren sie angemessen zu liegen in Ihrem gewünschten Bereich (vermutlich auf einer logarithmischen Skala, weil das ist, wie das menschliche Gehör funktioniert ; -).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top