PWM Audio Signal

Gast #5054485
Lesenswert?

Hallo Leute,

ich lese mit meinem TMS320C6713 ein analoges Audio Signal über den Mic 
oder LINe Eingang ein und sample ihn mit 44 oder 48KHz. Nun möchte ich 
dieses Signal in eine PWM Wandlen. Diese PWM sollte so rund 700-800KHZ 
also das 16 Fache haben. Ich muss also das Abgetastete Signal 
oversampeln (interpolieren) und dann über einen Komparator schicken um 
meine High und Low (0 und 1) zu erhalten.
Meine Frage liegt nun bei der überabtastung! Wie realisiere / 
programmiere ich die?

Ich lese mein input mit 48KHz ein
1
interrupt void c_int11(void){
2
  union { Uint32 combo; short channel[2]; } AIC23_data;
3
  DSK6713_AIC23_read(hAIC23_handle, &AIC23_data.combo);
4
  input = AIC23_data.channel[RIGHT];
nun würde ich einen zweiten interrupt erstellen welchen ich 16 mal öfter 
aufrufe (oversampling von 16) wo ich meine PWM erstelle.
1
interrupt void c_int14(void){
2
// wie erstelle ich jetzt genau meine normale PWM oder Delta Sigma Modulation oder so. eine Reine PWM mit 16 facher Frequenz. da fehlt mir irgendwie gerade das denken.
3
}

LG
Gast #5058908
Lesenswert?

Ich denke du verwendest einfach den falschen DSP. Dieser hat zwar jede 
Menge Audio Interfaces und Floatingpoint, aber keine PWM Hardware.

PWM per Software kannst du vergessen, du bräuchtest einen Interrupt mit 
zig MHz. Auch DeltaModulation geht nur in Hardware genügend schnell um 
eine gute Audioqualität zu erreichen.

Nimm also einen DSP mit eingebauten PWM Generatoren (meist als 
Motorcontroller bezeichnet).

Mit genügend schneller PWM kannst du eigentlich einfach jedes 48kHz 
Sample direkt ins PWM Register schreiben (evt Offset addieren und 
skalieren).

Andi
Beitrag #5070400 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren