Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8
Rafael Deliano
Guest
Sat Feb 27, 2010 12:40 pm
Quote:
Heute löte ich an meinem 0,1 ... 30 Hz Sinus-Wobbler.
DDS oder Schwebungssummer
Der Junginschinör der das Ding eigentlich bauen soll, hat
sich auch erstmal ein Evaluationboard mit einem monströsen
DDS-IC bestellt.
Mein unspektakulärer Vorschlag und was ich hier als Demo
für die Zeitschrift aufbaue ist 8 Bit Controller mit 8 Bit
D/A-Wandler.
Die zuständigen Stellen hättens aber gerne noch frugaler
( keine Software, keine Firmware ... ) ca. in CD40xx weil
der Einsatz in Aeroplan an heikler Stelle stattfindet und
low-tech besonders zulassungsfreundlich ist.
Gängigere Anwendung:
http://www.embeddedforth.de/temp/gs.pdf
Der interessantere Teil ist die Erzeugung des sweep:
wenn man den Timer nur inkrementiert erhält man "doppelt
exponentiell", was aber Anwender eigentlich nicht will.
Hatte aber der alte ( Nf-Wobbler ) Wandel&Goltermann WM-20.
Muß man umformen daß "exponentiell" ( in der Literatur
auch "logarithmisch" genannt ) daraus wird. Oder eben mit
mehr Würgen die Grundform "linear" die allerdings bei
den Frequenzen wegen der langen sweep-Zeit vom Anwender
auch selten gewünscht ist.
MfG JRD
horst-d.winzler
Guest
Sat Feb 27, 2010 1:03 pm
Rafael Deliano schrieb:
Quote:
Heute löte ich an meinem 0,1 ... 30 Hz Sinus-Wobbler.
DDS oder Schwebungssummer ;-)
Der Junginschinör der das Ding eigentlich bauen soll, hat
sich auch erstmal ein Evaluationboard mit einem monströsen
DDS-IC bestellt.
Mein unspektakulärer Vorschlag und was ich hier als Demo
für die Zeitschrift aufbaue ist 8 Bit Controller mit 8 Bit
D/A-Wandler.
Die zuständigen Stellen hättens aber gerne noch frugaler
( keine Software, keine Firmware ... ) ca. in CD40xx weil
der Einsatz in Aeroplan an heikler Stelle stattfindet und
low-tech besonders zulassungsfreundlich ist.
Gängigere Anwendung:
http://www.embeddedforth.de/temp/gs.pdf
Der interessantere Teil ist die Erzeugung des sweep:
wenn man den Timer nur inkrementiert erhält man "doppelt
exponentiell", was aber Anwender eigentlich nicht will.
Hatte aber der alte ( Nf-Wobbler ) Wandel&Goltermann WM-20.
Muß man umformen daß "exponentiell" ( in der Literatur
auch "logarithmisch" genannt ) daraus wird. Oder eben mit
mehr Würgen die Grundform "linear" die allerdings bei
den Frequenzen wegen der langen sweep-Zeit vom Anwender
auch selten gewünscht ist.
MfG JRD
Schade das keine Schaltung dabei ist. Ich mags gern bildhaft, also mit
etwas "handfestem" dabei.
Ich habe hier einen Link, der vielleicht inspierend wirken kann. Ohne
Mikroprozessor ;-)
Quote:
http://www.dl7awl.de/2ton.htm
--
mfg hdw
Axel Schwenke
Guest
Sat Feb 27, 2010 1:55 pm
Rafael Deliano <Rafael_DelianoENTFERNEN_at_t-online.de> wrote:
Quote:
Der Junginschinör der das Ding eigentlich bauen soll, hat
sich auch erstmal ein Evaluationboard mit einem monströsen
DDS-IC bestellt.
Mein unspektakulärer Vorschlag und was ich hier als Demo
für die Zeitschrift aufbaue ist 8 Bit Controller mit 8 Bit
D/A-Wandler.
Die kanonische Minimallösung ist hier:
http://www.myplace.nu/avr/minidds/index.htm
Das Wobbeln fehlt natürlich noch. Aber bei 0.1 - 30Hz ist es
ja kein Problem, die innere Schleife noch etwas aufzublasen.
XL
Rafael Deliano
Guest
Sat Feb 27, 2010 2:35 pm
Quote:
Schade das keine Schaltung dabei ist. Ich mags gern bildhaft, also mit
etwas "handfestem" dabei.
Schwierig da Artikel nicht ansatzweise fertig:
http://www.embeddedforth.de/temp/wobbler.pdf
Sinus wird aus 256x8 Tabelle im Timer1-Interrupt erzeugt.
Sweep macht Timer2 in der Hauptschleife.
Wird dann mal so wie hier aussehen:
http://www.embeddedforth.de/temp/natke.pdf
MfG JRD
Dirk Ruth
Guest
Sat Feb 27, 2010 9:17 pm
Rafael Delianoschrieb:
"
Quote:
Hab ich auch schon einiges zur Sounderzeugung auf einem Controller
gemacht, allerdings mit Obertönen und Envelope. Das mit den Obertönen
(oder Polyphonie) geht auf einem Controller der in einem Befehl
addieren und multiplizieren über zwei Array kann etwas einfacher und
deutlich schneller.
Ich lass da einfach ein Index über das Wavetable laufen, zudem immer
ein Offset addiert wird. Als Schleife läuft dann immer nur das durch:
Index = (Index + Offset) % (sizeof(Wavetable) -1);
Sample = Wavetable[Index];
Der Offset ist abhängig von der Frequenz und würde bei einem Sweep
entsprechend einer Tabelle verändert werden, ist also bei dir keine
Konstante.
Wäre für das große C (65,4Hz) z.B.
Wavetablesize (1024) * Frequenz (654) * Nachkommastellen( 128) /
Kommastelle-Frequenz (10) / Sample-Frequenz (15000)
Das Wavetable ist bei mir aber 257 Byte groß und umfaßt 1/4 sinus, es
wird also bei der Berechnung noch entsprechend ausgeswitcht und der
Index angepasst. 257 Byte deshalb, weil dann aus der Modulo-Division
eine simple Shift-Operation wird, bzw. nur noch High-Bits ausgenullt
werden.
In den Sourcen ist das natürlich alles noch etwas umfangreicher, da
mit binären Nachkommastellen gearbeitet und Offsets addiert werden, da
z.B. das Wavtable nur bis 90Grad geht, aber im Grunde wars das schon.
Dirk
Winfried Salomon
Guest
Sun Feb 28, 2010 12:57 am
Hallo Joerg,
Joerg schrieb:
[....]
Quote:
weiß jemand, was der Seamonkey 2.03 bei mir da macht? Das war doch
bisher nicht so

.
Vielleicht die Zeilenlaenge verstellen?
ist auf 72 Spalten eingestellt, geändert wurde seit langem nichts am
Profil. Scheint ein Problem der neuesten Version zu sein, die auch bei
Firefox auftritt. Müßte mal sehen, ob irgendwo 1 Email-Adresse für
Bugreport zu finden ist.
"New and improved" :-)
Ich bin bei Software schon oefter auf alte Versionen zurueckgegangen.
nicht alles Neue muß besser sein, fällt mir in letzter Zeit immer öfters
auf. Letztens hat hier jemand einen Link gepostet in dem stand, wie aus
einem gut durchdachten Programm nach einiger Optimierung ein
irreparables fehlerhaftes Monster wurde. Das erinnert mich an so
einiges. Und beim Versuch die Fehler zu beseitigen gelingt das nicht,
weil sie durch neue noch kompliziertere ersetzt werden.
[.....]
Quote:
http://www.fairchildsemi.com/ds/BC%2FBC337.pdf
Habe mal parallel noch eine mögliche Verbesserung mit Schottky
gepostet, die vielversprechend aussieht. Das obige Datenblatt vom
BC337 ist unvollständig, sämtliche Diagramme fehlen. Ja, so sehen oft
die Datenblätter aus, die man heute aus dem Internet bekommt

. In
meinem ´78er Valvo-Datenbuch sieht das ganz anders aus, sowas war
früher mal teuer. Dort kann ich die Sättigungswerte auch tatsächlich
im Diagramm ablesen, hab ich ja so gemacht, stimmen mit der Simulation
überein.
Kommt noch dicker: Neuerdings veroeffentlichen Hersteller von PIN-Dioden
allen Ernstes Datenblaetter wo jegliche Angabe zur Carrier Lifetime
fehlt. Fiel mir echt nix mehr ein. Also sind hier seit langer Zeit
Uralt-Datenblaetter sauber alphabetisch archiviert und haben
Kleinod-Status. Das hat mir (und anderen) schon oefter aus der Patsche
geholfen.
Tja, sieht wohl nach dem Trend aus, nur noch Applikation Notes
nachzubauen. Mal sehen, ob wir den Rückfall in die Steinzeit noch
miterleben, ich hoffe nicht.
mfg Winfried
Winfried Salomon
Guest
Sun Feb 28, 2010 1:02 am
Hallo Rafael,
Rafael Deliano schrieb:
Quote:

. Kleine Korrektur wäre noch nötig, die Schottky-Diode müßte zwischen
Basis und Kollektor liegen.
Quote:
Heute löte ich an meinem 0,1 ... 30 Hz Sinus-Wobbler.
ICL8038?
mfg Winfried
Winfried Salomon
Guest
Sun Feb 28, 2010 1:33 am
Hallo Rafael,
Rafael Deliano schrieb:
Quote:
zu dem Tracking-Filter und dem Chirp fällt mir grade etwas ein, wie man
Übertragungsfunktionen bestimmen kann, weil ich das für bestimmte Fälle
letztens mal in der Simulation probiert habe. Mit einem sogenannten
Hilbert-Transformator und 2 Quadrierern geht das im Idealfall sogar ohne
Glättungsfilter. Der Hilbert-Transformator ist in Wirklichkeit ein
FIR-Filter, mit z.B. ARM-Controller IMHO hinreichend schnell
realisierbar, zumindest bei 30 Hz Sinus und sagen wir 1 KHz Abtastrate.
Wie sich eine Verzerrung des Sinus auswirkt, kann ich momentan aber
nicht sagen.
mfg Winfried
Winfried Salomon
Guest
Sun Feb 28, 2010 2:41 pm
Winfried Salomon schrieb:
Quote:
Hallo Rafael,
Rafael Deliano schrieb:
Schade das keine Schaltung dabei ist. Ich mags gern bildhaft, also mit
etwas "handfestem" dabei. ;-)
Schwierig da Artikel nicht ansatzweise fertig:
http://www.embeddedforth.de/temp/wobbler.pdf
Sinus wird aus 256x8 Tabelle im Timer1-Interrupt erzeugt.
Sweep macht Timer2 in der Hauptschleife.
Wird dann mal so wie hier aussehen:
http://www.embeddedforth.de/temp/natke.pdf
zu dem Tracking-Filter und dem Chirp fällt mir grade etwas ein, wie man
Übertragungsfunktionen bestimmen kann, weil ich das für bestimmte Fälle
letztens mal in der Simulation probiert habe. Mit einem sogenannten
Hilbert-Transformator und 2 Quadrierern geht das im Idealfall sogar ohne
Glättungsfilter. Der Hilbert-Transformator ist in Wirklichkeit ein
FIR-Filter, mit z.B. ARM-Controller IMHO hinreichend schnell
realisierbar, zumindest bei 30 Hz Sinus und sagen wir 1 KHz Abtastrate.
Wie sich eine Verzerrung des Sinus auswirkt, kann ich momentan aber
nicht sagen.
Das war ein Schnellschuß, viel einfacher geht es mit
Effektivwertberechnung, also quadratischer Mittelwert mit Tiefpaß,
daraus die Wurzel ziehen. Habe sowas mal mit 32 Bit-Controller letztens
mal gemacht, 8 Bit könnten aber etwas knapp werden.
mfg Winfried
Rafael Deliano
Guest
Sun Feb 28, 2010 5:37 pm
Quote:
viel einfacher geht es mit Effektivwertberechnung,
Die samplen einfach auf Platte des PCs und machen
dann riesige FFT:
http://www.embeddedFORTH.de/temp/g.pdf
Nettes Spielzeug wäre dieses:
http://www.embeddedFORTH.de/temp/w1.pdf
Macht auch lin und exp ( bzw.log) sweep.
Geht aber bis 10kHz.
Und vor allem macht via sin/cos Betrag & Phase.
Die Korrelatoren dürften Multiplizierer
+ Integratoren sein. Sind wegen Rauschunter-
drückung erwünscht.
Leider zu üppig für 8 Bit Controller.
MfG JRD
Winfried Salomon
Guest
Sun Feb 28, 2010 9:22 pm
Hallo Rafael,
Rafael Deliano schrieb:
Quote:
wenn man das auf eine Festplatte kriegt und genug Zeit hat, kann man
natürlich sehr vieles machen. Ich hatte auch mal Bitfehler eines 66
Megasamples 12 Bit-Wandlers rausgerechnet. Dazu wurden 256KB Worte in
schnelles Ram geschrieben, das zum Rechner auf die Festplatte geschickt,
der Fit der Daten dauerte dann aber Stunden, während die Messung nur
Sekunden dauerte.
Ich weiß ja nicht was Du genau messen willst, aber für ein unverzerrtes
System wäre die Effektivwertberechnung sicher machbar, zumindest für
kleine Frequenzen, obwohl 0.1 Hz dann mind. einige Sekunden Meßdauer
erfordern. Ich habe das mit einem LPC2468 kürzlich mal realisiert bei 10
KHz Samplerate, ist numerisch allerdings nicht ohne wegen der Filter.
Der andere Vorschlag entsprechend Trackingfilter ist eine kürzliche
Untersuchung von mir, den Betrag des Frequenzgangs von irgendwie
gestörten Systemen messen zu können. Existiert aber nur als
Simulinkmodell und die Umsetzung in die Praxis dürfte mit einigem
Aufwand verbunden sein.
Quote:
Nettes Spielzeug wäre dieses:
http://www.embeddedFORTH.de/temp/w1.pdf
Macht auch lin und exp ( bzw.log) sweep.
Geht aber bis 10kHz.
Und vor allem macht via sin/cos Betrag & Phase.
Die Korrelatoren dürften Multiplizierer
+ Integratoren sein. Sind wegen Rauschunter-
drückung erwünscht.
Leider zu üppig für 8 Bit Controller.
Ich habe mich mit dem Thema Korrelation nicht beschäftigt, es ähnelt
aber meinem Simulinkmodell, allerdings habe ich die Phase nicht
berücksichtigt. Hier würde ich 'nen DSP nehmen oder besser noch FPGA.
Bei Interesse könnte ich Dir das Modell mal schicken.
mfg Winfried
Rafael Deliano
Guest
Mon Mar 01, 2010 8:51 am
Quote:
Ich weiß ja nicht was Du genau messen willst,
Ich beschränke mich einstweilen auf den reinen Sinusgenerator.
Den Sweep-Teil daraus gedenke ich später wiederzuverwenden.
Quote:
für ein unverzerrtes System wäre die Effektivwertberechnung
sicher machbar,
Die Einschränkung ist für Praxis nicht sonderlich attraktiv.
Man kann damit zwar z.B. elektrische Filter messen ( wenig
Rauschen, wenig Klirr ), aber interessanter sind Regelstrecken
und da gibt Systron Donner schon den Ansatz richtig vor.
Quote:
Trackingfilter
Das Filter kommt in den Artikel weil es in der Literatur existiert.
Es ist aber eine halbherzige Nachbesserung der Sweep&FFT Variante.
Die hat bereits Probleme wenn man wegen Meßzeit von linear auf
exponentiellen Sweep übergeht.
Das Filter ist immer technisch aufwendiger zu realisieren als
ein simpler Korrelator.
Quote:
Ich habe mich mit dem Thema Korrelation nicht beschäftigt,
http://www.embeddedFORTH.de/temp/korr.pdf
Vgl. Bild 6, Bild 9 : wenn Sin/Cos ists wohl immer die 255te
Variante der Fouriertransformation ...
Quote:
Hier würde ich 'nen DSP nehmen oder besser noch FPGA.
Sin/Cos-Generator kann Controller.
Korrelator können zwei MACs machen:
www.qpsemi.com/Commercial_Datasheets/TRW_TMC2210.pdf
Die sind lieferbar:
http://cgi.ebay.com/CPU-TRW-2210G8C1-Gold-PGA-Vintage-Collectible-W-CARRIER_W0QQitemZ370299466399QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item563791729f
Müsste man warten dass der $-Kurs angenehmer wird und ACP-Surplus
auf 50% runterhandeln.
Das Ding erkennt aber anscheinend den overflow des 35 Bit Akkus
nicht.
Vom Aufwand her ist die Lösung auch etwas üppig, sonst wäre ich
schon am werkeln.
Vermute man kommt auch später mal mit ARM7 hin.
MfG JRD
Winfried Salomon
Guest
Mon Mar 01, 2010 11:56 pm
Hallo Rafael,
Rafael Deliano schrieb:
[.....]
Quote:
sowas wie in Bild 9 habe ich hier als Modell, allerdings mit
Doppelquadraturmischer in's Basisband und Hilbertransformator. Ob es mit
Korrelation verwandt ist, kann ich momentan nicht sagen, eine
Fouriertransformation ist auch nicht drin. Nur die Filter sind ziemlich
aufwendig, dafür werden Störungen und Nichtlinearitäten gut unterdrückt.
Quote:
Wußte garnicht, daß es TRW noch gibt, hatte früher mal solche Daten
gesammelt. MACs können die ARM7 aber auch, nur nicht so effektiv wie DSPs.
Quote:
Müsste man warten dass der $-Kurs angenehmer wird und ACP-Surplus
auf 50% runterhandeln.
Das Ding erkennt aber anscheinend den overflow des 35 Bit Akkus
nicht.
Vom Aufwand her ist die Lösung auch etwas üppig, sonst wäre ich
schon am werkeln.
Vermute man kommt auch später mal mit ARM7 hin.
Die Wortlänge von 32 Bit wird man vermutlich brauchen bei sehr komplexen
Filtern.
mfg. Winfried
Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8