Forum: Digitale Signalverarbeitung / DSP / Machine Learning Anzahl von benötigten Abtastwerte verringern


von K. M. (Gast)


Lesenswert?

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"

von ui (Gast)


Lesenswert?

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.

von Der Andere (Gast)


Lesenswert?

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.

von Der Andere (Gast)


Lesenswert?

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.

von lalala (Gast)


Lesenswert?

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.

von K. M. (Gast)


Lesenswert?

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.

von WeissNichtRecht (Gast)


Lesenswert?

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.

von Dergute W. (derguteweka)


Lesenswert?

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

von K. M. (Gast)


Lesenswert?

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

von Der Andere (Gast)


Lesenswert?

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.

von K. M. (Gast)


Lesenswert?

Ich habe daher auch nur eine Bandbreite von 300kHz, da ich einen AAF 
Bessel Filter 8.Ordnung benützt habe.

Kann man über Bluetooth 7.2Mbit/s bringen?

von K. M. (Gast)


Lesenswert?

Ich bring es nicht über Bluetooth.

Vielleicht hilft mir die Multiraten - Signalverarbeitung. Kennt sich 
damit jemand aus?

von Jan K. (jan_k)


Lesenswert?

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?

: Bearbeitet durch User
von K. M. (Gast)


Lesenswert?

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.

von lalala (Gast)


Lesenswert?

Maha S. schrieb:
> Es ist halt ein Selbstbau Oszi

Das muss doch nicht kontinuierlich messen, oder? Also 1s messen, 
buffern, dann übertragen, fertig.

von Route_66 H. (route_66)


Lesenswert?

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.

von Der Andere (Gast)


Lesenswert?

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.

von Karl (Gast)


Lesenswert?

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).

von Michael W. (Gast)


Lesenswert?

Karl schrieb:
> Nyquist/Shannon gilt
> nur für unendlich lange Messungen.
??? Sagt wer???

von Karl (Gast)


Lesenswert?

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.

von Der Andere (Gast)


Lesenswert?

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.

von Possetitjel (Gast)


Lesenswert?

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?

von K. M. (Gast)


Lesenswert?

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.

von K. M. (Gast)


Lesenswert?

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

von Michael W. (Gast)


Lesenswert?

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.

von lalala (Gast)


Lesenswert?

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).

von 1N 4. (1n4148)


Lesenswert?

> 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.

von Michael W. (Gast)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.