Forum: Mikrocontroller und Digitale Elektronik Tonsignal verzögern


von Kurt B. (kurt-b)


Lesenswert?

Hallo Leute,

Frage:
Ist es mit Mega/Tiny möglich ein Tonsignal (im Sprachbereich) 
aufzunehmen, um 100 msec zu verzögern und dann wieder auszugeben.

Gibt es alternativ fertige Bausteine die das bewerkstelligen.

Die Ausgabe muss ev. schon wärend des Einlesens beginnen.
Max Länge der NF ist irgendwo bei 300 msec.

Conrad hatt(e) mal solche/ähnliche Bausteine.
Es kommt nicht auf Hifi an.


Kurt

von Gast (Gast)


Lesenswert?

Taschenrechner zur Hand nehmen und den Speicherbedarf durchrechnen.

von Kurt B. (kurt-b)


Lesenswert?

Gast schrieb:
> Taschenrechner zur Hand nehmen und den Speicherbedarf durchrechnen.

Ich versuch mal mein Verständnis darzulegen

festen Takt, z.B.  10 Khz bereitlegen

NF über A/D Wandler einlesen
in RAM ablegen (Zeiger verwenden damit die Adresse auch bekannt ist)
Max Anzahl beachten

nach Verzögerung:

RAM lesen (eigener Zeiger)
auf Portpin ausgeben und mit RC filtern

solange ausgeben bis Ausgabezeiger gleich Einlesezeiger

bei 10 Khz Wandlerrate und 1 Sekunde Aufnahmedauer wären 10 kB RAM 
notwendig (8 Bit Auflösung)

Soweit verständlich/richtig?



Kurt

von spess53 (Gast)


Lesenswert?

Hi

>Gibt es alternativ fertige Bausteine die das bewerkstelligen.

Früher gab es sog. Eimerkettenschaltungen als IC. Wurden in der 
Musikelektronik für Echo, Hall etc. verwendet.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Mal kurz gesucht:

www.musikding.de/index.php/cat/c83_Delay-ICs.html

MfG Spess

von cm (christian mock) (Gast)


Lesenswert?

> bei 10 Khz Wandlerrate und 1 Sekunde Aufnahmedauer wären 10 kB RAM
> notwendig (8 Bit Auflösung)
>
> Soweit verständlich/richtig?

der rest ist OK, aber hier hast du einen groben irrtum: du mußt deinen 
speicher nur für die verzögerungszeit dimensionieren, wenn du ein sample 
wieder ausgegeben hast, kannst du es ja überschreiben.

dh. die sache funktioniert für deine 100ms verzögerung schon zb mit 
einem atmega8, der hat 1024 bytes RAM.

cm.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

8Bit kann man ohne zusätzliche Prozesse rein klangmäßig eigentlich 
vergessen, auch bei Sprache. Besser ist es in der Tat, mit externen 
16Bit ADC und DAC und ein wenig externem RAM zu arbeiten. Dafür würde 
ich einen Controller nehmen, der über ein Speicherinterface verfügt, zum 
Beispiel der ATMEGA1281. Der ATXMEGA kann immerhin mit 12Bit Audio on 
chip digitalisieren und wieder analog ausgeben. Für einen sauberen Klang 
reicht dies aber auch noch nicht ganz.

von mr.chip (Gast)


Lesenswert?

Die Sample-Rate kannst du durchaus noch etwas reduzieren, wenn die 
Qualität leiden darf. Tiefpass vor dem Sampeln aber nicht vergessen!

Ebenso könntest du noch an der Auflösung schrauben - 8 Bit reichen ja 
schon für sehr, sehr gute Sprachqualität. 4 Bit versteht man ebenfalls 
noch sehr gut, und ich habe schon gehört, dass man selbst mit 1 Bit 
Sprache noch versteht.

von Kurt B. (kurt-b)


Lesenswert?

cm (christian mock) schrieb:
>> bei 10 Khz Wandlerrate und 1 Sekunde Aufnahmedauer wären 10 kB RAM
>> notwendig (8 Bit Auflösung)
>>
>> Soweit verständlich/richtig?
>
> der rest ist OK, aber hier hast du einen groben irrtum: du mußt deinen
> speicher nur für die verzögerungszeit dimensionieren, wenn du ein sample
> wieder ausgegeben hast, kannst du es ja überschreiben.
>
> dh. die sache funktioniert für deine 100ms verzögerung schon zb mit
> einem atmega8, der hat 1024 bytes RAM.
>
> cm.


Danke euch für die guten Informationen.

Ich hab an einen Mega 32 gedacht, den hätt ich auf Platine.
Port A wär komplett frei.
Der Rest ist mit einem Display beschaltet, einige Pins brauch ist noch 
anderweitig.


Was ich noch nicht bedacht habe ist die Ausgabe.
Parr oder mit PWM

Bei parr wären 7 Bit des Port A verfügbar.
Über ein R2R Netzwerk gings direkt mit 7 Bit Auflösung raus.


Jedoch verunsichern mich die beiden gegenteiligen Aussagen von

mr.chip:
---------------
Die Sample-Rate kannst du durchaus noch etwas reduzieren, wenn die
Qualität leiden darf. Tiefpass vor dem Sampeln aber nicht vergessen!
----------

und

Travel Rec:
-----------
8Bit kann man ohne zusätzliche Prozesse rein klangmäßig eigentlich
vergessen, auch bei Sprache. Besser ist es in der Tat, mit externen ..
-----------

etwas. Was ist nun richtig?

Ich habe einen stark eingegrenten Frequenzbereich.
ab 1000 und bis ca 3000 Hz


Wenn hier wiederum ein einigermassen guter Sinus rauskommt dann ists ok.
Es kommt auch nur dieser Bereich im NF-Quellsignal vor.


Kurt

von holger (Gast)


Lesenswert?

>Wenn hier wiederum ein einigermassen guter Sinus rauskommt dann ists ok.
>Es kommt auch nur dieser Bereich im NF-Quellsignal vor.

Dann bau es halt einfach mal auf. Ist doch schnell gemacht.
7Bit R2R an PortA. Dann sampelst du mit z.B. 8kHz und gibst
das gleich wieder auf Porta aus. Dann kannst du entscheiden
ob das so ausreichend für dich ist. Mit 8 Bit R2R habe ich
früher Samples aus Eproms ausgegeben. Qualität war recht gut.
Später baust du das dann auf PWM um und fügst deine Verzögerung ein.

von MWS (Gast)


Lesenswert?

Such mal bei ELV nach Soundmodul, das ist nach einer Appnote von Atmel 
aufgebaut, Schaltplan für den Ausgangsfilter wäre auch aus dem ELV Pdf 
ersichtlich. Eingang per ADC, Ausgabe per PWM, funktioniert einwandfrei, 
hab' ich hier.

von Gast (Gast)


Lesenswert?

was haben die 8Bit mit der Samplerate zu tun???

von spess53 (Gast)


Lesenswert?

Hi

Das Samplen und die Ausgabe könntest du von hier übernehmen:

http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf

MfG Spess

von Kurt B. (kurt-b)


Lesenswert?

holger schrieb:
>>Wenn hier wiederum ein einigermassen guter Sinus rauskommt dann ists ok.
>>Es kommt auch nur dieser Bereich im NF-Quellsignal vor.
>
> Dann bau es halt einfach mal auf. Ist doch schnell gemacht.
> 7Bit R2R an PortA. Dann sampelst du mit z.B. 8kHz und gibst
> das gleich wieder auf Porta aus. Dann kannst du entscheiden
> ob das so ausreichend für dich ist. Mit 8 Bit R2R habe ich
> früher Samples aus Eproms ausgegeben. Qualität war recht gut.
> Später baust du das dann auf PWM um und fügst deine Verzögerung ein.

Hallo Leute, möchte es erstmal bei dem Verstandenem/von euch Geliefertem 
belassen, mich recht herzlich bedanken.

Der obige Vorschlag ist das was ich als erstes machen werde.
Dann kann ich selbst -entscheiden- obs mir reicht oder nicht.


Kurt

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bei mir fiel die Entscheidung gegen 8 und für 16 Bit aus. Für eine 
Türsprechanlage mit Quäkenleisesprecher reichen 8 Bit, aber für echtes 
Audio - naja. Auch ein eingegrenzter Übertragungsbereich bringt hier 
keine Vorteile seitens der Qualität. Beim ISDN-Telefon werden auch nur 8 
Bit und 8kHz benutzt, allerdings mit nichtlinearer Gewichtung der Bits 
(A-Law), was das Quantisierungsrauschen deutlich reduziert und so die 
Klangqualität deutlich steigert. Aber das willst Du sicher nicht 
wirklich. Sag doch mal genau, worum es geht.

von Gast (Gast)


Lesenswert?

> 8Bit kann man ohne zusätzliche Prozesse rein klangmäßig eigentlich
> vergessen, auch bei Sprache. Besser ist es in der Tat, mit externen ..

Nein, das stimmt definitiv nicht. Audio-Datei konvertieren und anhören! 
Knapp Radioqualität, aber viel besser als Stadionkommentator, Telefon 
oder Gegensprechanlage.

von Kurt B. (kurt-b)


Lesenswert?

Travel Rec. schrieb:

>  Sag doch mal genau, worum es geht.

Es war eine ganz spontane Idee.
Ich hab ein V24 Signal welches auf einen Modulator geschaltet ist.
Dieser wandelt es in ein AFSK Signal um welches dann übertragen wird.

Ich muss das V24 Signal u.A. etwas verzögern und dann erst übertragen.
Die Übertragungsstrecke hat keine DC-Kopplung.
Also steh ich vor der Entscheidung ob ich es so mache wies jetzt läuft, 
also ein FSK-Signal bastle oder gleich das sowieso vorhandene Signal 
hernehme.
Ums verwenden zu können muss ich es aber verzögern.
Darum die Anfrage ob das mit dem AVR auf einfache Weise geht.

Ich weiss dass so ein AFSK-Decoder ein einigermassen sauberes Signal 
braucht, vor allem mit hohem Klirrfaktor und Unsymetrie hat er Probleme.


Kurt

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Nein, das stimmt definitiv nicht. Audio-Datei konvertieren und anhören!
>Knapp Radioqualität, aber viel besser als Stadionkommentator, Telefon
>oder Gegensprechanlage.

Na gut - ich muß vielleicht sagen, daß ich tontechnisch schon eine Weile 
unterwegs bin, aber Radioqualität ist um Längen besser, als 8-Bit Audio. 
Das Quantisierungsrauschen liegt im Idealfall um -48db, und ist 
lediglich in lauten Aussteuerpassagen nicht wahrnehmbar. Bei Sprache, 
die naturgemäß Pausen enthält, ist das Rauschen sehr deutlich 
wahrnehmbar und störend. Die Reproduktion des Audiosignals an sich ist 
schon nicht schlecht, aber nix für meine Ohren. Ein guter Analogtuner 
liefert mit guter Radiostation deutlich bessere Werte.

von cm (christian mock) (Gast)


Lesenswert?

> Ich hab ein V24 Signal welches auf einen Modulator geschaltet ist.
> Dieser wandelt es in ein AFSK Signal um welches dann übertragen wird.

jetzt hab ich aber eine ganz blöde frage: wieso verzögerst du nicht 
einfach das v.24-signal? das ist digital und damit verlustfrei 
verzögerbar...

cm.

von Route_66 (Gast)


Angehängte Dateien:

Lesenswert?

@cm
>wieso verzögerst du nicht einfach das v.24-signal?

Ich glaube, er müßte im Gegenzug das V.24-Signal beschleunigen. Das geht 
aber nicht!

Eine andere Lösung im Anhang!

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.