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.
Danke für die schnelle Hilfe, ja es soll klein, zuverlässig und preiswert sein ;). Okay, das heißt ADC + µC + FIFO + DAC ?
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 :-)
Udo Schmitt schrieb: > http://de.wikipedia.org/wiki/Hallger%C3%A4t#Federhall Es soll nicht verhallt, sondern nur verzögert werden. Ich würde da bei Ebay für 15 Euro ein fertiges (Multi-)Effektgerät kaufen und passend einstellen...
Hallo! Zu Qualitätsanforderungen hast Du ja nichts gesagt. Das hier: http://elm-chan.org/works/vp/report.html geht bis 1,7 Sekunden.
300Hz - 3400Hz. 7kHz Samplerate brauchen nur 28k Speicher.
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.
> Abgesehen davon sind die mittlerweile wohl ziemlich schwer aufzutreiben.
MN3207 gibt es reichlich.
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.
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
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 :-)))
npn schrieb: > 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. :-)
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
Wozu den Aufwand mit externen RAM. Bei 8kHz Samplarate reicht internes RAM und ein 32Bit Controller bringt auch für 22kHz genug internes RAM mit?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.