2013-04-03 5 views
6

Ich möchte keine Bibliotheken verwenden- Ich möchte von Grund auf neu schreiben. Ich möchte einen WEFAX-Decoder über Funk senden. Unterschiedliche Audiofrequenzen werden in verschiedene Pixel-Dunkelheiten konvertiert. Graustufen nur - keine Farbe.Suche nach Grundlagen zum Lesen von Audio-Frequenzen in C

Es gibt 120 Zeilen pro Minute mit je über 1000 Pixel. Ich möchte die Frequenz erkennen und sie in einen 8-Bit-Wert umwandeln. Das Hardware-Äquivalent wäre etwas wie ein LM567-Frequenz-Spannungswandler.

Ich habe keine Ahnung, wo ich anfangen soll. Ist das so etwas wie eine FIR oder IIR? Kann mir jemand auf Code hinweisen, den ich studieren kann? Ich schreibe nicht für Windows, streng unix.

Alan

+0

Siehe "Frequenzschätzung", "Tonhöhenerkennung" und "(schnelle) diskrete Fourier-Transformation". –

+0

Werfen Sie einen Blick auf [Aquila] (http://aquila-dsp.org/) oder [aubio] (http://aubio.org/). (Auch wenn Sie von Grund auf neu schreiben möchten, sollten Sie sich ansehen, wie andere Leute es gemacht haben, wenn Sie nicht wissen, wie Sie überhaupt anfangen sollen.) –

Antwort

0

Sie IQ-Daten Unter der Annahme haben, können Sie mit einem einfachen FM-Demodulator starten umgesetzt mit einem Phasendifferenzierer. Frequenz ist die Ableitung der Phase, so dass Sie einfach die Phasendifferenz von Sample zu Sample berechnen können, um eine Schätzung des ursprünglichen FM-Signals zu erhalten. Eine einzelne Ausgabeprobe kann wie durch etwas gegeben werden:

y[k] = arctan(imag(x[k])/real(x[k])) - arctan(imag(x[k-1])/real(x[k-1])) 

Sie können auch durch mehrfache Sprünge in der Ausgabe zu vermeiden, von 2*pi einige Phase durchführen müssen auspacken. Weitere Informationen finden Sie im Abschnitt zur sofortigen Frequenz here.

Der Ausgang des FM-Demod sollte grundsätzlich Ihr Bild sein, da es ein Signal erzeugt, das in der Amplitude variiert, wie sich das ursprüngliche Signal in der Frequenz änderte. Sie müssen es erneut auf das richtige Pixelraster anwenden und die Graustufen richtig skalieren/quantisieren.

Es kann die Bildqualität verbessern, um den Ausgang des FM-Demodulators zu Tiefpassfilter zu filtern, um auch Geräusche zu reduzieren.