Ich möchte:
Geben Sie eine analoge Audiospur ein
Konvertieren Sie ihn mit dem Mikrocontroller-ADC in einen digitalen Ausgang
Lassen Sie dann die Zeitgeber der Mikrocontroller/Platinen die Daten in ausgewählten Intervallen abtasten
Resampeln Sie die „gesampelte Audiospur“ mit dem doppelten Inhalt der höchsten Frequenz
Konvertieren Sie es als perfekte Rekonstruktion der ursprünglichen Audiospur wieder in analog
Mit der Fourier-Analyse bestimme ich die höchste Frequenz, mit der ich den Track abtasten werde.
Es klingt einfach genug und geradlinig, aber was ich brauche, ist, dies in C zu programmieren und meinen MSP430-Chip / Experimentierplatine zu verwenden, um den Track zu sampeln. Ich werde Texas Instruments CCS und Octave zum Programmieren und Debuggen verwenden. Ich verwende das Experimentierboard MSP430F5438 .
Ist C die richtige Sprache dafür? Kann ich Beispiele dafür bekommen, wie man den Track mit C auf der Nyquist-Frequenz abtastet? Welcher Code in C weist das Board an, die ADC-Komponente zu verwenden? Und alle empfohlenen Informationen, die ähnlich sind oder mir bei diesem Projekt helfen werden.
Sie können Ihr gesamtes Projekt auf einem Desktop-PC durchführen. In der Tat, wenn ich es tun müsste, würde ich mit dem Desktop beginnen:
Ich glaube, ich würde dies in mehreren Durchgängen implementieren, um das Debuggen zu erleichtern:
Dies mag wie viele Schritte erscheinen, aber es ist viel wahrscheinlicher, ein funktionierendes Ergebnis zu erzielen, als alles in einer riesigen MSP430-Anwendung heldenhaft zu codieren und dann zu versuchen, es auf dem Entwicklungsboard zu debuggen.
Sie müssen das Familienhandbuch und das Datenblatt verwenden - hier zu finden. Es wird Ihnen sagen, wie Sie den ADC einrichten und einige grundlegende Beispiele geben, außerdem hat TI Beispielcode für die MSP430-Chipreihe, die ADC10- und ADC12-Beispiele enthält.
Sie werden die Dinge viel einfacher finden, wenn Sie einen richtigen DSP verwenden, ich würde einen dsPIC verwenden. Microchip verfügt über FFT-Bibliotheken.
Vielleicht möchten Sie sich das DSC-Starter-Kit ansehen . Es bietet Ihnen die gesamte Software und Hardware, die Sie für den Einstieg in die Audioaufzeichnung auf einem Mikrocontroller benötigen. Es hat auch einige Beispielprogramme.
DFT ist etwas schwieriger, aber es gibt vorgefertigte Bibliotheken dafür. Das Problem besteht darin, einen freien zu finden und sicherzustellen, dass Sie über genügend RAM verfügen, um alle erforderlichen Berechnungen durchzuführen.
Ein Programm kann nur Frequenzen mit halber Abtastrate erkennen. Es gibt zwei Möglichkeiten, damit umzugehen:
Oversampling : Abtasten mit mehr als dem Doppelten der maximal möglichen Frequenz (z. B. 48 kHz > 2 x 20 kHz), dann Komprimieren der Daten durch Tiefpass (Dezimierung) bei der höchsten berechneten Frequenz.
Unterabtastung : Abtasten Sie mit einer Mindestfrequenz und entscheiden Sie sich dann für eine Abtastung mit einer höheren Frequenz, basierend auf dem Leistungspegel in Ihrem höchsten berechneten Frequenzbin (FFT-Term). Wenn es über einem bestimmten Schwellenwert liegt, erhöhen Sie die ADC-Abtastfrequenz.
Der einzige Weg, um in Echtzeit erfolgreich zu sein, ist Oversampling , da Undersampling entweder das Resampling der Teile überspringen muss, die es bereits mit einer zu niedrigen Frequenz abgetastet hat, oder eine Wiederholung anfordern muss.
Das verlinkte Entwicklungsboard scheint für diese Anwendung teuer zu sein. Gibt es mehr zu Ihrem Projekt? Es enthält Codebeispiele für Audio-Sampling und -Verarbeitung: SLAC227 (siehe FFT.c).
tyblu
Martin
tyblu
Martin
tyblu
Martin
tyblu
tyblu