Tonsignal verzögern

OP #1442811
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
OP #1442849
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
Gast #1442935
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.
(Firma: TravelRec.) Persönliche Seite #1442950
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.
Gast #1442951
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.
OP #1443013
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
Gast #1443026
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.
Gast #1443028
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.
OP #1443077
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
(Firma: TravelRec.) Persönliche Seite #1443085
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.
Gast #1443098
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.
OP #1443193
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
(Firma: TravelRec.) Persönliche Seite #1443804
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.
Gast #1444044
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.

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