Ich habe beliebige Signale bis zu 300kHz mit Amplituden bis zu 5V. Diese
Signale werden mit dem ADC(12Bit) des dsPIC33EP32GS502 abgetastet. Der
ADC läuft mit 1MS/s. Mein Problem ist nun, dass ich die Daten kontaktlos
übermitteln muss. Da die WLAN Module von Microchip nicht zu gebrauchen
sind(keine ausreichende Doku), wollte ich nun wieder zu Bluetooth
zurückkommen.
Mein Problem: 1MSamples * 16Bit(Datenlänge) = 16Mbps (hoffe das ich
richtig rechne)
Aber ich bringe keine 16Mbps über eine Bluetooth Leitung. Hat jemand von
euch eine Idee, wie ich die Datenrate auf ein Minimum senken kann?
Bezüglich WLAN: Ich habe es auch mit ESP8266 probieren wollen, aber die
WLAN Module von Expressif schaffen nur maximal 7Mbps. Ich hab mir die
ganzen Datenblätter durchgesehen, aber es ist wirklich keine ordentliche
Doku vorhanden. Anderseits ist mir WLAN etwas zu kompliziert.
Beitrag "ESP8622 Übertragungsgeschwindigkeiten"
Komprimieren?
Gibt es ja diverse Algorithmen, auch für µC.
Dann musst du halt wesentlich mehr rechnen und auf der gegenseite wieder
entpacken.
Alternativ (in abhängigkeit von deinen Werten) kannst du auch selbst
eine einfache Komprimierung durchführen (z.B. Anstatt 1000x ne 0 zu
übertragen einfach [1000]0 übertragen). Musst du halt auch auf der
gegenseite wieder entpacken.
Maha S. schrieb:> Hat jemand von> euch eine Idee, wie ich die Datenrate auf ein Minimum senken kann?
1. Bandbreite des Nutzsignals verringern und Abtastrate verkleinern
2. ADC Auflösung verringern
3. Einen anderen µC nehmen mit dem du schneller bist (LAN, USB 3.0) und
ein fertiger Protokollstack existiert den du einfach in dein Projekt
einbinden und benutzen kannst.
ui schrieb:> Komprimieren?> Gibt es ja diverse Algorithmen, auch für µC.
Eine Million Werte pro Sekunde in Echtzeit komprimieren? Schafft das der
µC?
Was passiert wenn die Daten so sind, daß sie wenig komprimiert werden
können? Dann läuft die Kommunikation über.
Wenn das System zuverlässig sein soll dürfte das dann ein Problem sein.
Maha S. schrieb:> Ich habe beliebige Signale bis zu 300kHz mit Amplituden bis zu 5V.
Wenn Du die 12 Bit Auflösung brauchst, und die Daten wirklich beliebig
sind, kannst Du es auf maximal 600ksamples/s (Nyquist) mal 1.5 bytes pro
Sekunde zusammenschieben. D.h. 900 kbyte pro s.
Das mit dem komprimieren hab ich mir auch schon gedacht, aber ich Der
Andere zustimmen, dass der RAM überläuft.
lalala schrieb:> Wenn Du die 12 Bit Auflösung brauchst, und die Daten wirklich beliebig> sind, kannst Du es auf maximal 600ksamples/s (Nyquist) mal 1.5 bytes pro> Sekunde zusammenschieben. D.h. 900 kbyte pro s.
Die 12Bit brauche ich eigentlich nicht, aber weil der ADC die kann
benütz ich die einfach.
lalala schrieb:> sind, kannst Du es auf maximal 600ksamples/s (Nyquist) mal 1.5 bytes pro> Sekunde zusammenschieben. D.h. 900 kbyte pro s.
kannst du den Teil vielleicht nochmal erklären.
Maha S. schrieb:> Die 12Bit brauche ich eigentlich nicht, aber weil der ADC die kann> benütz ich die einfach.
Nur weil das Messgerät es kann, muss man ja nicht die volle Auflösung
weitergeben. Oder würdest Du auch mit einem Messschieber (aka
"Schieblehre") die Fensteröffnung in einem Rohbau messen. Ein Zollstock
(-> Gliedermessstab) reicht da vollkommen aus. Will heißen: einfach die
"überflüssigen" Bits des Messwertes weglassen, und schon reduziert sich
die Datenmange auf das Notwendige. Ob das dann schon ausreicht, musst Du
wissen.
Dann noch mit der Abtastrate soweit runter, dass der Herr Nyquist noch
zufrieden ist, und schon wird es noch etwas weniger.
Moin,
Das:
Maha S. schrieb:> Ich habe beliebige Signale
Beisst sich ganz stark mit dem:
Maha S. schrieb:> Hat jemand von> euch eine Idee, wie ich die Datenrate auf ein Minimum senken kann?
Eine Kompression geht immer nur dann, wenn man irgendwelche Redundanz in
den Daten hat und die finden kann oder schon kennt. Nicht bei beliebigen
Signalen.
Und allgemein beisst sich drahtloses Funkgedoens mit garantierter
Uebertragungsrate...
Gruss
WK
Dergute W. schrieb:> Und allgemein beisst sich drahtloses Funkgedoens mit garantierter> Uebertragungsrate...>> Gruss> WK
Die Datenraten sind schon in Ordnung, bei den Mircochip Modulen, aber
die haben keine für Anfänger taugliche Doku
Maha S. schrieb:> für Anfänger
beisst sich mit den Anforderungen!
Maha S. schrieb:> Die 12Bit brauche ich eigentlich nicht, aber weil der ADC die kann> benütz ich die einfach.
Dann reduziere auf 8 Bit und du hast nur noch 2/3 der Datenmenge! Siehe
mein Beitrag oben Punkt 2.
Maha S. schrieb:> kannst du den Teil vielleicht nochmal erklären.
Wenn man analoge Daten in digitale wandelt, sollte man die Grundlagen
von Nyquist verstanden haben. Um die Signale wieder rekonstruieren zu
können braucht man MINDESTENS die doppelte Abtastrate.
Glerichzeitig braucht man aber auch ein entsprechend steiles
Eingangsfilter, damit man keine Faltungen höherfrequenterer Signale
misst.
lalala schrieb:> kannst Du es auf maximal 600ksamples/s (Nyquist) mal 1.5 bytes pro> Sekunde zusammenschieben.
Aber nur in der Theorie. Praktisch ist 1Msamples schon ein ganz guter
Wert.
Maha S. schrieb:> Ich bring es nicht über Bluetooth.>> Vielleicht hilft mir die Multiraten - Signalverarbeitung. Kennt sich> damit jemand aus?
Was soll die denn bringen?
Wenn du 300 kHz Bandbreite brauchst, musst du mind. doppelt so schnell
abtasten. Du hast 1 MHz. Ob du dann noch eine Dezimierung (== Multiraten
DSP) auf 600 kHz (Verhältnis 3/5) machen möchtest musst du entscheiden.
Ich glaube das macht nur begrenzt Sinn. Wenn das Analogfilter schon
steil genug ist, sodass deine Amplitude bei 600 kHz schwach genug (==
stark genug gedämpft, das bedeutet mind. im Bereich eines LSB deiner
gewünschten ADC Auflösung) ist, kannst du auch gleich mit 600 kHz
abtasten.
Brauchst du definitiv die 300 kHz Bandbreite?
Jan K. schrieb:> Brauchst du definitiv die 300 kHz Bandbreite?
Es ist halt ein Selbstbau Oszi für ein Projekt. Zunächst wollte ich ein
Oszi bauen mit 1MHz Bandbereite, aber ich komme wegen der kontaktlosen
Übertragung nicht hin(zu langsam). Die Microchip Module sind zu
"wegwerfen", bezüglich WLAN und Bluetooth.
Eigentlich bräuchte ich ein neues kontaktloses Medium, welches min.
8Mbit/s schafft.
Maha S. schrieb:> Jan K. schrieb:>> Brauchst du definitiv die 300 kHz Bandbreite?>> Es ist halt ein Selbstbau Oszi für ein Projekt.
Wenn die junge Blonde nicht ständig neue Threads zum selben
Gesamtproblem eröffnen würde, könnte Jeder sofort den Sinn und den
Zusammenhang ihrer Fragerei erkennen.
So muß ständig doppelt und dreifach nachgefragt werden!
Forenregeln sind nicht umsonst da.
Eine Sauerei und Frechheit ist das.
Maha S. schrieb:> Es ist halt ein Selbstbau Oszi für ein Projekt
Passt noch viel weniger zu:
Maha S. schrieb:> Anfänger
Ansonsten schreibt lalala ja wie es geht.
Triggern, messen bis der Puffer voll ist und dann übertagen und
auswerten.
Maha S. schrieb:> Es ist halt ein Selbstbau Oszi für ein Projekt. Zunächst wollte ich ein> Oszi bauen mit 1MHz Bandbereite,
Oh je. Ach was sag ich, das wollten wir alle mal :-)
- Überdenke Deine Anforderungen. Ein "echtes" Oszi mit 300 kHz
Analog-Bandbreite tastet mit mehr als 1 MS/s ab. Nyquist/Shannon gilt
nur für unendlich lange Messungen. Wenn es was taugen soll, man also
innerhalb der Bandbreite die Signalform beurteilen können soll, geh in
Richtung 10x Überabtastung.
- Überdenke Deine Anforderungen. Wozu 300 kHz und 1 MS/s? Weil es der uC
kann?
- Überdenke Deine Anforderungen. Kontinuierliche Messung? Wozu?
- Überdenke Deine Anforderungen. 12 bit? Wozu?
- Überdenke Deine Anforderungen. Aliasing unterbinden? Was hast Du vor?
Wie Du schon feststellst gibt es genug zu tun. Z.B. 100 kHz 8 bit
kontinuierlich, 1 MS/s blockweise (so schnell es eben geht).
Markus W. schrieb:> ??? Sagt wer???
Icke!
Wenn man keine Haare spalten möchte ist doch klar, was ich gemeint hab,
oder? Das Abtasttheorem gilt natürlich immer, aber die oft fälschlich
getroffene Annahme, dass doppelte Abtastfrequenz ausreichend wäre gilt
halt nur für unendlich lange Messungen, also im realen Leben nie.
Markus W. schrieb:> ??? Sagt wer???
Der gesunde Menschenverstand.
Schau dir z.B. mal die Tektronix TBS1000 Serie an. (Habe ich jetzt
zufällig ausgewählt) Die haben eine analoge Bandbreite von 30 bis
200MHz, aber eine Samplerate von 1GS/s oder 2 GS/s.
Warum glaubst du macht Tektronix das?
Wenn denen 60MS/s bis 400MS/s reichen würden, dann würden sie das tun!
Denn das würde Geld sparen.
Der Andere schrieb:> Der gesunde Menschenverstand.
Nun ja...
> Schau dir z.B. mal die Tektronix TBS1000 Serie an. (Habe> ich jetzt zufällig ausgewählt) Die haben eine analoge> Bandbreite von 30 bis 200MHz, aber eine Samplerate von> 1GS/s oder 2 GS/s.> Warum glaubst du macht Tektronix das?
Weil sie gute Oszis bauen.
Zum einen ist die analoge Bandbreite NICHT auf den -3dB-Punkt
bezogen; der Abfall ist geringer -- oder anders gesagt: Die
analoge Bandbreite der Kisten ist in Wahrheit größer.
Zum anderen bestehen beim AA-Tiefpass eines Oszis nicht nur
Forderungen an den Amplituden-, sondern auch welche an den
Phasengang.
Steilflankige Filter haben jedoch in der Regel den Nachteil,
dass sie zum Klingeln neigen; Impulse zeigen also hinter dem
Filter ein Überschwingen, das im Messsignal vor dem Filter gar
nicht vorhanden ist. Für einen Oszi ist das nicht hinnehmbar.
Infolgedessen macht man das Filter nicht so steilflankig,
muss dann aber höher abtasten, damit Shannon/Nyquist/Kotel-
nikow zufrieden sind (=das Abtasttheorem erfüllt ist).
> Wenn denen 60MS/s bis 400MS/s reichen würden, dann würden> sie das tun!> Denn das würde Geld sparen.
Du glaubst, Tektronix ist berühmt geworden, weil sie dem
Käufer immer das Allerbilligste angedreht haben? Wirklich?
Ich habe jetzt einen PICMZ0512EFK064 ausgewählt. Der kann laut dem
Microchip Homepage 18MS/s. Wenn man aber in das Datenblatt schaut
(S.651) steht auf einmal nur 3.125MS/s. Die vom Microchip Marketing
haben wohl die Sample Raten addiert, oder irre ich mich?
Beim Filter habe ich einen Bessel Filter 8.Ordnung. Die anderen waren zu
instabil bzw. hatten keine konstante Gruppenlaufzeit, welche ich
benötige. Bei 8Bit komme ich immerhin auf 4.16MS/s.
Der Andere schrieb:> Ansonsten schreibt lalala ja wie es geht.> Triggern, messen bis der Puffer voll ist und dann übertagen und> auswerten.
Nur kurz eine Verständnisfrage: Ich würde es nun so machen wie es lalala
geschrieben hat. Wenn ich nun z.B. 36kSamples zusammenbringe, und diese
grafisch darstellen will, dann hätte ich bei niederfrequenten Signalen
ein Problem. Ich würde zu "schnell" abtasten und könnte keine
vollständige Periode darstellen. z.B ein Rechteck mit 1Hz
Der Andere schrieb:> Markus W. schrieb:>>> ??? Sagt wer???>> Der gesunde Menschenverstand.
Das ist ein schwaches Argument!
> Schau dir z.B. mal die Tektronix TBS1000 Serie an.
Auch die sampeln nicht ewig.
Das oversampling, das Oszilloskope betreiben, hängt an der begrenzen
Qualität der Filter. Man mittelt damit die Fehler im Stoppband weg.
Ein Signal kann generell beliebig sein und muss nicht unendlich
ausgedehnt sein, damit Nyquist gilt. Nyqusit muss nur für jedes Sample
eingehalten werden. Es gibt ja auch dynamische Abtastungen und
Datenspeicherungen.
Maha S. schrieb:> h würde zu "schnell" abtasten und könnte keine vollständige Periode> darstellen. z.B ein Rechteck mit 1Hz
Machs wie beim echten Oszi, vor Messung Auswahl des Zeitbereichs (div).
> Wenn du 300 kHz Bandbreite brauchst, musst du mind. doppelt so schnell> abtasten. Du hast 1 MHz. Ob du dann noch eine Dezimierung (== Multiraten> DSP) auf 600 kHz (Verhältnis 3/5) machen möchtest musst du entscheiden.
Kann man das abgetastete Signal nicht auf 300kSamples/s und 8 o. 12bit
dezimieren, es enthält doch keine Anteile oberhalb 300kHz. Der Empfänger
macht dann eine sinc-Interpolation und stellt das Signal dar.
Markus W. schrieb:> Das oversampling, das Oszilloskope betreiben, hängt an der begrenzen> Qualität der Filter. Man mittelt damit die Fehler im Stoppband weg.
soweit d'accord
> Ein Signal kann generell beliebig sein und muss nicht unendlich> ausgedehnt sein, damit Nyquist gilt.
das wird an den Hochschulen aber anders erklärt