www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tonsignal verzögern


Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Taschenrechner zur Hand nehmen und den Speicherbedarf durchrechnen.

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Mal kurz gesucht:

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

MfG Spess

Autor: cm (christian mock) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was haben die 8Bit mit der Samplerate zu tun???

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

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

MfG Spess

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: cm (christian mock) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Route_66 (Gast)
Datum:
Angehängte Dateien:
  • preview image for vp.png
    vp.png
    6,52 KB, 163 Downloads

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.