Forum: Digitale Signalverarbeitung / DSP / Machine Learning Üben mit Digitaler Signalverarbeitung mit einem Teensy 3.2


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Ich hoffe ich bin hier mit meiner Frage richtig.
Im Moment experimentiere ich mit einem TEENSY 3.2 und einem Analogboard. 
Leider habe ich noch fast keinerlei Erfahrung mit Digitaler 
Signalverarbeitung und wollte daher mit diesem Board mir etwas 
erarbeiten, da mir ein richtiger DSP einfach eine Nummer zu groß ist.

Es gibt zu diesem Board das AUDIO SYSTEM DESIGN TOOL, mit dem man 
graphisch sein Signalpfad erstellen kann. Im Anhang habe ich gezeigt mit 
was ich mich da gerade so beschäftige. I2s2 ist der analoge Line 
Stereoeingang, welcher abgetastet wird und der rechte Kanal direkt auf 
dem i2s1 durch den DAC an den Kopfhörerausgang gelangt. Der linke Kanal 
wird mit einem Sinussignal (440Hz) gemischt und dem zweiten Kanal des 
DAC zugeführt. Alles wunderbar.
Der Programmcode besteht aus einem generierten Programmteil durch das 
DESIGN TOOL und der Einstellung einiger Parameter, hier nur der 
Amplitude und der Frequenz des Sinus. Ein Hauptprogramm gibt es 
eigentlich nicht. Außer einem Delay passiert dort nichts. Dies bedeutet 
doch nun, dass das Sampeln des Audiosignals, die Sinuserzeugung und die 
Rückwandlung in das Analogsignal, parallel völlig losgelöst von meinem 
Hauptprogramm erfolgt.
Wenn ich aber wie im unteren Bild gezeigt nach dem Mischer z.B. eine 
Signalbearbeitung einbauen will (hier einfach jetzt eine Verstärkung um 
2) wie geht so etwas? Das Ganze läuft ja irgendwie durch den Abtasttakt 
getriggert ab, ich müsste also irgendwie ein Interrupt bekommen und dann 
auf die Daten nach dem Mischer zugreifen können um sie dann nach der 
Bearbeitung wieder in den „Datenstrom“ einschleusen können?
Ist das jetzt alles kompliziert ums Eck gedacht oder kann man das so 
irgendwie machen. Wie gesagt, ich will das zunächst in kleinen Schritten 
verstehen und hoffe die Frage ist jetzt nicht ganz konfus.
Besten Dank

von Signalverarbeiter (Gast)


Lesenswert?

nun, wenn man es richtig schön umständlich und kompliziert machen 
möchte, kann man das so machen.

Michael schrieb:
> AUDIO SYSTEM DESIGN TOOL
das wohl wenig Einsatz im professionellen Umfeld finden dürfte, denn 
dort werden leistungsfähige DSPs eingesetzt, wenn es um das schnelle 
Prototyping geht.

Geht es aber um effizientes Arbeiten mit kleinen Prozessoren, kommt der 
code direkt aus MATLAB und nicht aus extra vorgefertigten LIBs. Und 
wenn, dann sind es die optimierten LIBs der Hersteller wie z.B. 
VisualDSP+ / ADSP.

von Burkhard K. (buks)


Lesenswert?

Michael schrieb:
> und einem Analogboard

Was kann das Analogboard - hat das einen ADC? Hast Du ein Datenblatt 
dazu? Andersherum gefragt, wie oft (Samplerate) wird der ADC abgefragt 
bzw. der DAC angesteuert?

von Sebastian (Gast)


Lesenswert?

Hi Michael,

so du des Englischen mächtig bist solltest du die Frage ins Teensy-Forum 
bei PJRC stellen. Dort antworten dir womöglich auch die Entwickler.

LG, Sebastian

von W.S. (Gast)


Lesenswert?

Michael schrieb:
> 2) wie geht so etwas? Das Ganze läuft ja irgendwie durch den Abtasttakt
> getriggert ab, ich müsste also irgendwie ein Interrupt bekommen und
> dann...

Ich vermute mal, daß du mit allem, was du bislang angestellt hast, 
bereits in einer ISR gesteckt hast.

Aber mal ne ernsthsfte Frage: Was willst du da eigentlich lernen bzw. 
üben? Den Umgang mit besagtem DSP-Tool? Oder wie man ein maschinell 
erzeugtes Programm in einen Teensy hineinkriegt? Oder wie man die 
digitale Signalverarbeitung als solche tatsächlich macht?

W.S.

von Michael (Gast)


Lesenswert?

W.S. schrieb:
> Michael schrieb:
>
> Aber mal ne ernsthsfte Frage: Was willst du da eigentlich lernen bzw.
> üben? Den Umgang mit besagtem DSP-Tool? Oder wie man ein maschinell
> erzeugtes Programm in einen Teensy hineinkriegt? Oder wie man die
> digitale Signalverarbeitung als solche tatsächlich macht?
> W.S.

Zunächst besten Dank, dass ihr es mit meiner verqueren Frage versucht.
Nun das Analogboard ist einfach nur ein SGTL5000 Codec.
Was will ich lernen: Einfach ein bisschen mehr als nur zu wissen, dass 
ein Analogsignal (Audio) abgetastet wird und dann mathematisch 
bearbeitet wird bevor es wieder durch den DAC als Analogsignal 
ausgegeben wird. Mir fehlt der Mathematische Background aber wenn ich 
die Funktion eines Tiefpasses erster Ordnung realisiert bekomme wäre das 
schon mal nicht schlecht.
Klingt jetzt vielleicht  verrückt aber mit Excel habe ich schon einige 
Sachen durchgespielt. Ist aber halt sehr umständlich. Ein Audiosignal 
einspeisen und im Kopfhörer prüfen.

von Michael (Gast)


Lesenswert?

Es wird, habe mich ins PJRC Forum gestürzt, denke da finde ich die 
Antworten auf meine Frage.
Besten Dank

von W.S. (Gast)


Lesenswert?

Michael schrieb:
> Mir fehlt der Mathematische Background

Dann lies zuerst die DSP-Guide. Ist kostenlos, bloß herunterladen und 
lesen und verstehen. Dafür brauchst du keine Hardware.
http://www.dspguide.com/editions.htm

W.S.

von Burkhard K. (buks)


Lesenswert?

Michael schrieb:
> Mir fehlt der Mathematische Background aber wenn ich
> die Funktion eines Tiefpasses erster Ordnung realisiert bekomme wäre das
> schon mal nicht schlecht.

Du kannst das Signal per I2S einlesen, dann durch Deinen Filter jagen 
und per I2S wieder an den Codec übergeben. Filter lassen sich z.B. als 
FIR realisieren. Dazu bietet die Teensy Audio Library (Arduino IDE mit 
Teensyduino Plugin) eine ganze Menge an Funktionen und Beispielen: 
/opt/arduino-1.8.13/hardware/teensy/avr/libraries/Audio/. Um das zu 
nutzen, müsstest Du dich wohl von Deinem Audio Design Tool verabschieden 
- es sei denn, es benutzt genau diese Bibliothek und Du könntest den 
generierten Code einfach erweitern.

Ein bißchen zum Thema einlesen solltest Du Dich schon (das Buch von 
Stephen Smith / dspguide ist sehr gut verständlich). Um Beispiele und 
Filter durchzurechnen, lohnt es sich GNU Octave oder SciLab zu 
installieren.

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
Noch kein Account? Hier anmelden.