Hallo,
Ich würde gerne eine Verzögerung von 2 Sekunden bei einem analogen
Tonsignal ( 300Hz - 3400Hz ) erreichen. Gibt es dafür einen simplen
analogen Ansatz?
ADC + Speicher + DAC halte ich für etwas übertrieben.
Danke für die Hilfe,
Manfred O.
Naja, der klassische analoge Ansatz ist bei alten Gitarreneffekten zu
finden:
gurgel: Bandecho :)
Tonbandschleife mit zwei Köpfen, einer schreibt, der zweite macht die
Wiedergabe.
Manfred O. schrieb:> Ich würde gerne eine Verzögerung von 2 Sekunden bei einem analogen> Tonsignal ( 300Hz - 3400Hz ) erreichen. Gibt es dafür einen simplen> analogen Ansatz?
Tonband-Endlosschleife und mehrere Tonköpfe, wie man es früher bei
Echogeräten gemacht hat. Ist analog, aber du brauchst eben ein
Tonbandgerät dafür.
Ansonsten, wenn es klein, zuverlässig und preiswert werden soll, wirst
du wohl nicht um ICs herumkommen.
Manfred O. schrieb:> Danke für die schnelle Hilfe,>> ja es soll klein, zuverlässig und preiswert sein ;).>> Okay, das heißt ADC + µC + FIFO + DAC ?
Zum Beispiel. Ich denke, es sollte mit dem STM32F4 machbar sein. Der hat
schon alles on Board, was du brauchst. Da ich auch erst mit dem STM
angefangen habe mich zu beschäftigen, könnte sich bitte mal jemand
anders dazu äußern. Ich will hier keinen Unsinn verbreiten. Ich könnte
mir vorstellen, daß es damit relativ einfach machbar ist.
Udo Schmitt schrieb:> http://de.wikipedia.org/wiki/Hallger%C3%A4t#Federhall
Damit eine Verzögerung(!) von 2 Sekunden? Hall ja, aber eine Verzögerung
bedeutet ja, daß man das Eingangssignal zwei Sekunden später am Ausgang
wieder möglichst unverändert zur Verfügung hat. Das wage ich bei einem
Federhall zu bezweifeln. (Auch wenn der Federhall einen ganz tollen und
unverwechselbaren Charme in der Musik hat).
Wenn's näherungsweise Qualität haben soll, muss der FIFO Zeit *
Kanalzahl 22 kHz 2 Byte groß sein, also mindestens 88 K pro Kanal
für 2 Sekunden. Das übersteigt den SRAM der meisten MCUs bei weitem. Und
22 KSPS klingt bei Audio schon ziemlich Scheiße, man will eher 44 KSPS.
Marian B. schrieb:> Wenn's näherungsweise Qualität haben soll, muss der FIFO Zeit *> Kanalzahl 22 kHz 2 Byte groß sein, also mindestens 88 K pro Kanal> für 2 Sekunden. Das übersteigt den SRAM der meisten MCUs bei weitem. Und> 22 KSPS klingt bei Audio schon ziemlich Scheiße, man will eher 44 KSPS.
Da ging irgendwas mit der Formatierung schief. Versuchs nochmal ohne
Sternchen :-)
Hallo,
dass es einiges an RAM bedarf, den die meisten ( kleinen ) µC nicht
haben, ist mir bewusst. Der Ansatz mit dem externen DRAM sieht sehr
interessant aus, habe mir schon ähnliches gedacht, aber ein Projekt dazu
noch nicht gefunden, das werde ich mir mal zu gemüte führen!
Danke
Route 66 schrieb:> Zu Qualitätsanforderungen hast Du ja nichts gesagt.
Doch, hat er. Zumindest die NF-Bandbreite des Signals.
Manfred O. schrieb:> Ich würde gerne eine Verzögerung von 2 Sekunden bei einem analogen> Tonsignal ( 300Hz - 3400Hz ) erreichen.
npn schrieb:> Route 66 schrieb:>> Zu Qualitätsanforderungen hast Du ja nichts gesagt.>> Doch, hat er. Zumindest die NF-Bandbreite des Signals.
Noch spärlicher kann man Audioqualität wohl nicht beschreiben!
npn schrieb:> Das wage ich bei einem> Federhall zu bezweifeln. (Auch wenn der Federhall einen ganz tollen und> unverwechselbaren Charme in der Musik hat).
Das war ein nicht ganz ernst gemeinter Hinweis an den TO weil er meint,
sowas müsste 'analog' doch viel einfacher gehen.
:-)
Ich finde es immer wieder lustig wie der ein oder andere Jungspund es
gar nicht verstehen kann wie 'einfach' moderne Digitaltechnik, hier µCs
(oder DSPs) mache Dinge machen, die früher wirklich nur mit großem
Aufwand zu lösen waren.
Anderes Beispiel sind Ringkernspeicher oder (mein persönicher Favorit)
der Quecksilber Laufzeitspeicher. Siehe
http://de.wikipedia.org/wiki/Verz%C3%B6gerungsleitung
Route 66 schrieb:> npn schrieb:>> Route 66 schrieb:>>> Zu Qualitätsanforderungen hast Du ja nichts gesagt.>>>> Doch, hat er. Zumindest die NF-Bandbreite des Signals.>> Noch spärlicher kann man Audioqualität wohl nicht beschreiben!
Das ist gerade mal Telefonqualität, ausreichend für Sprachübertragung.
Mehr nicht. Und wenn du das mit beispielsweise 8kHz sampelst, ist das
mehr als ausreichend. Oder willst du die 3kHz wirklich mit 44,1kHz
sampeln? Dadurch wird auch keine CD-Qualität draus.
Also reicht die Angabe von Manfred völlig aus.
NurEinGast schrieb:> Früher gabs auch noch Eimerkettenspeicher.> http://de.wikipedia.org/wiki/Eimerkettenspeicher
Kam mir auch erst in den Sinn :-)
Damit habe ich auch schon einiges genaut damals. Da waren z.B. die
"Echomikrofone" noch angesagt. Aber ich glaube, auf 2 s zu kommen, ist
nicht ganz einfach. Oder man müßte mehrere hintereinanderschalten. Oder
den Takt verringern, was aber wieder auf Kosten der Auflösung geht.
Abgesehen davon sind die mittlerweile wohl ziemlich schwer aufzutreiben.
npn schrieb:> Das ist gerade mal Telefonqualität,
Du meinst sicher Telefonbandbreite.
Google mal, oder sieh bei Wiki nach, was der Unterschied ist.
Ich bin zu faul, Dir das hier zu erklären.
Manfred O. schrieb:> Danke für die schnelle Hilfe,>> ja es soll klein, zuverlässig und preiswert sein ;).>> Okay, das heißt ADC + µC + FIFO + DAC ?
Behringer sharc dsp 110, 0...2.5s Delay
rgds
Manfred O. schrieb:> dass es einiges an RAM bedarf, den die meisten ( kleinen ) µC nicht> haben, ist mir bewusst. Der Ansatz mit dem externen DRAM sieht sehr> interessant aus, habe mir schon ähnliches gedacht, aber ein Projekt dazu> noch nicht gefunden, das werde ich mir mal zu gemüte führen!
Ein STM32F4 Discovery bord hat 192kByte (externes) RAM, das sollte
genuegen, und is bei dem Preis wahrscheinlich unschlagbar.
ZigZeg
Route 66 schrieb:> npn schrieb:>> Das ist gerade mal Telefonqualität,>> Du meinst sicher Telefonbandbreite.> Google mal, oder sieh bei Wiki nach, was der Unterschied ist.> Ich bin zu faul, Dir das hier zu erklären.
Jetzt reite mal nicht auf akademischen Spitzfindigkeiten herum. Fakt ist
doch, daß du diese Bandbreite mit max. 8kHz sampeln mußt, um das Signal
(fast) 1:1 zu erfassen und auch wieder ausgeben zu können. Jede höhere
Samplerate verbessert das Ergebnis nicht, sondern erfordert nur einen
größeren Speicherbedarf. Und nur darum ging es hier.
Jetzt kann man sich noch trefflich streiten, ob nun 16bit ausreichend
sind oder vielleicht doch 24 oder 32bit. Aber da kommen wir schon wieder
zum Ausgangspunkt zurück. Es ist lediglich die Bandbreite eines
Sprachkanals und keine HiFi- oder CD-Aufzeichnung!
> und is bei dem Preis wahrscheinlich unschlagbar.
Die Zeiten ändern sich. Vor kurzem noch ADC und PWM optimiert, damit
überhaupt beides gleichzeitig läuft. Heute ist der billigste Controller
mit Quick&Dirty Code sowieso schnell genug.
Route 66 schrieb:> Bandbreite != Qualität
Stimmt. Sind zwei verschiedene Wörter. :-)
Kommt natürlich immer drauf an, was du unter Qualität verstehst. Wenn
man die so definiert, daß man z.B. Morsezeichen bestens aufzeichnen und
wiedergeben kann, dann kann man durchaus mit einer Bandbreite von 50Hz
eine Qualität von 100% erreichen.
Trotzdem Krümelkackerei!
Ich stell mal dagegen: Kleine Bandbreite->niedrige Qualität (im Sinne
von Audioqualität, wie sie z.B. bei Musikwiedergabe gebräuchlich ist).
Und jetzt bleib auf dem Teppich mit den akademischen Fürzen. :-))
Du weißt genau, um was es hier geht.
npn schrieb:> Jetzt reite mal nicht auf akademischen Spitzfindigkeiten herum. Fakt ist> doch, daß du diese Bandbreite mit max. 8kHz sampeln mußt, um das Signal> (fast) 1:1 zu erfassen und auch wieder ausgeben zu können. Jede höhere> Samplerate verbessert das Ergebnis nicht, sondern erfordert nur einen> größeren Speicherbedarf. Und nur darum ging es hier.
Er sagt x bis 3.4 kHz Tonsignal. Er hat nichts von Bandbreite gesagt.
7 kHz kann ausreichen (macht aber den AA-Filter aufwändig, da hohe
Steilheit nötig). Wenn er aber z.B. ein Instrument mit 3.4 kHz
Grundton verzögern will, reicht das bei weitem nicht.
Marian B. schrieb:> Er sagt x bis 3.4 kHz Tonsignal. Er hat nichts von Bandbreite gesagt.> 7 kHz kann ausreichen (macht aber den AA-Filter aufwändig, da hohe> Steilheit nötig). Wenn er aber z.B. ein Instrument mit 3.4 kHz> Grundton verzögern will, reicht das bei weitem nicht.
Wenn man das so interpretiert, dann kann man ja auch sagen: Egal was man
übertragen will, man muß IMMER alles bis 20kHz oder mehr übertragen.
Denn wenn man z.B. eine Geige sampelt, die einen Grundton von 3,4kHz
spielt, reichen die Obertöne bis weit in den zweistelligen kHz-Bereich.
Da er aber ausdrücklich von "300Hz bis 3400Hz" sprach und nicht von
"Grundton bis 3400Hz einschließlich aller seiner Oberwellen", gehe ich
davon aus, daß die "300Hz bis 3400Hz" einem Sprachkanal entsprechen.
Aber warum hauen wir uns denn die Köppe ein? Soll sich doch mal Manfred
dazu äußern. Alles andere ist doch nur Rätselraten.
Hallo,
bevor das hier noch entgleitet ;).
Es geht wirklich um ein reines Sprachsignal, und zwar via Telefon (
deshalb die definitive Begrenzung bis 3400Hz, alles darüber wird sowieso
nicht übertragen ).
Daher reichen tatsächlich theoretisch 7kHz sampling Rate für mein
vorhaben.
Habe jetzt noch nach einen C-Code gesucht, um einen DRAM mittels AVR
anzusteuern und dabei das hier entdeckt: http://www.myplace.nu/avr/dram/
Das sieht mir relativ einfach aus.
Leider habe ich keine Ahnung von asm, deshalb helfen mir ( wenn sie auch
schneller wären eventuell ) die asm Codes zur DRAM Ansteuerung recht
wenig.
Da aber meine Aufgabe für den µC nicht allzu groß ist (vom Refresh des
DRAMs und einlesen / ausgeben der Werte abgesehen ), müsste es mit C
funktionieren denke ich.
Hat noch jemand diesbezüglich Tipps für mich?
Georg schrieb:> Marian B. schrieb:>> Das übersteigt den SRAM der meisten MCUs bei weitem>> Stell dir vor, man kann SRAMs kaufen - z.B. 128 k für 2 Euro.>> Georg
Und davon abgesehen, der STM32F429 hat schon intern 256k SRAM. Und
extern kann man auch reichlich ansteuern...
Damit kannst du schon fast die fünfte von Beethoven aufnehmen :-)))
Wenn's tatsächlich ein AVR werden soll, SRAM ist deutlich einfacher
anzusteuern, vom Timing her unkritisch. Heute sind auch SRAMs billig,
die dafür groß genug sind, da muß man sich kein DRAM antuen, mit der
komplizierten Ansteuerung, und den kritischen Timings. Man kann einen
AVR mit SRAM-Interface nehmen, für diese Aufgabe tut es aber einer ohne
genausogut, man hat genug Zeit die Ansteurung 'zu Fuß' zu machen. Selbst
512 kb sind noch billig, da kann man dann auch schon schneller abtasten,
und sich viel Stress bei den Filtern sparen, oder gleich über einen
1-Bit A/D und D/A nachdenken, die UART-Schnittstelle als SPI betrieben
eignet sich da hervorragend. Die Hardware-SPI ist da nicht geeignet, da
sie keinen lückenlosen Bitstrom erfassen / ausgeben kann, der UART im
SPI-Modus kann das, dank seiner Pufferung.
Ich will eigentlich schon länger mal einen Sprachrekorder auf dieser
Basis bauen, habe aber irgendwie zu viele Ideen, und Projekte, und so
liegt Vieles auf Eis.
Mit freundlichen Grüßen - Martin
Hallo,
eigentlich nur, weil ich keine Ahnung von 32 Bit Controllern habe, und
bislang nur 8-Bit AVR programmiert habe. Und für diese kleine eigentlich
unwichtige Aufgabe, möchte ich mich nicht ans Erlernen der großen
machen. Da es weder Vorteile, noch Einsparungen bringt.
Manfred O. schrieb:> Hallo,>> bevor das hier noch entgleitet ;).>> Es geht wirklich um ein reines Sprachsignal, und zwar via Telefon (> deshalb die definitive Begrenzung bis 3400Hz, alles darüber wird sowieso> nicht übertragen ).
Für das "Entgleiten hast Du selbst mit Deinen Anforderungen gesorgt!
Was man von einer Salami mal so erwartet: scheibchenweise.