Digitale Signalverarbeitung, Signal detektieren

Am 13.10.2018 um 11:59 schrieb Rafael Deliano:

Frequenzdifferenz von z.B. 200 Hertz vorsehen. Da ist es aber egal, ob ich schneller oder langsamer abtaste.

Der ADU-INT macht 22kHz. Wenn ich die Frequenz des Senders auf 10,9 kHz

AVR noch passen. Es liegt aber an der Grenze.

Es geht momentan um eine Zusatzfunktion die bisher von einer anderen

in meinem Microcontroller, der eigentlich etwas anderes macht, aber dasselbe Eingangssignal verarbeitet nebenher mitzumachen.

Reply to
Stefan
Loading thread data ...

Am 13.10.2018 um 15:43 schrieb Marte Schwarz:

dass das gesuchte Signal bei ca. 10kHz liegt und die maximale Abtastrate die ich realisieren kann bei 22kHz.

das Signal so wie weiter oben beschrieben erst nach ca. 100 Hz mische

zwischen zwei Abtastungen sondern immer dann wenn ich ein Array mit

Reply to
Stefan

Am 13.10.2018 um 11:00 schrieb Stefan:

kenne ich nicht.

Gregor

--
X-ggl-fuck-off: yes
Reply to
Gregor Szaktilla

Hi Stefan,

Wieso AKF, Du kennst doch die Ausgangsfunktion, gegen die kannst Du doch korellieren.

Marte

Reply to
Marte Schwarz

Am 13.10.2018 um 16:55 schrieb Marte Schwarz:

die Genauikeit der Quarze ausreicht.

Bei der AKF vergleiche ich dagegen das Signal mit sich selbst.

Empfangssignals, also die Periodendauer in ms. Das funktioniert auch,

der Peak der AKF zu erwarten ist.

Damit bin ich dann aber wieder bei deinem Vorschlag.

Das ist aber im Prinzip auch nichts anderes als die Sache mit dem Software-Mischer die ich weiter oben beschrieben habe.

Reply to
Stefan

Am 13.10.2018 um 11:17 schrieb Stefan:

Wenn Du diesen Vorgang mit der halben Umtastrate vornimmst, entspricht

Grundwelle.

den 2ten Teil, also im Prinzip ein Vorzeichenwechsel der eingelesenen Werte mit "++--" und "+--+".

Resultaten die Wurzel der Quadratsumme (Betragsbildung) bilden.

Gruss Udo

Reply to
Newdo

Am 14.10.2018 um 14:21 schrieb Newdo:

mein Prozessor nicht.

Ist klar, aber das ist auch zu aufwendig.

getrennte Quarzoszillatoren habe, so dass ich von einem wenn auch geringen Frequenzfehler ausgehen muss.

Ich hab das inzwischen auf dem PC in Delphi simuliert und bin glaube ich auf den richtigen Weg.

Ich taste das System nicht exakt mit der doppelten Frequenz ab sondern mit einer Abweichung von ca. 100 Hz.

Dadurch erhalte ich eine entsprechende Schwebung / Mischprodukt, das ich

Der Gleichanteil verschwindet bereits bei der Abtastung durch die Multiplikation mit +-1.

Das ganze sollte in weniger als 10uS zu rechnen sein, kann also direkt in der INT-Routine des ADUs passieren.

Auslesen sofort wieder gestartet.

Reply to
Stefan

Am 14.10.2018 um 16:16 schrieb Stefan:

noch mal nachgedacht:

Grad bzw. PI/2 abtasten.

Das geht aber nicht, weil zu langsam.

Dann jeweils jeden zweiten Abtastwert, also die geradzahligen als Sin() und jeden ungeradzahligen als cos() verarbeiten.

Das Problem mit dem geometrischen Mittel bleibt aber. Quadrieren und Wurzelziehen geht nicht. Aber es muss nicht genau sein, deshalb reicht einfaches Addieren der beiden Signalzweige.

Reply to
Stefan

formatting link

MfG JRD

Reply to
Rafael Deliano

Am 14.10.2018 um 18:44 schrieb Rafael Deliano:

Wird zeitlich auch etwas knapp wenn ich das jeweils zwischen zwei Abtastungen rechnen will.

ob ich ein gewisses Minimalsignal habe.

Ich mache da eigentlich zwei Auswertungen, d.h. wenn das Signal stark genug ist, interessiert mich die erste Flanke des Pulspaketes.

Wenn das Signal zu schwach ist, um diese Flanke sicher zu erkennen will ich nur wissen, ob es noch da ist, oder ob der Sender ausgefallen ist.

Reply to
Stefan

Ich dachte nicht an ein Oszilloskop, sondern an die Daten, die

Reply to
Edzard Egberts

Hab ich auch schon dran gedacht, aber das ist nicht so einfach.

Reply to
Stefan

Ist so eine schlechte Erfahrung von mir - alles kontrollieren, denn was man nicht sieht, sieht oft ganz anders aus, als man sich das vorstellt.

Reply to
Edzard Egberts

Goertzel ist schonmal ein guter Tipp. Wenn der uC total untermotorisiert ist oder gleichzeitig zuviele andere Jobs erledigen muss, kann sich auch eine Betrachtung von Wave Digital Filtering lohnen. Das kam von Prof.Fettweise im Ruhrgebiet. Es ist aber nicht ganz trivial, sich einzuarbeiten.

formatting link

Er mischt allerdings auch andere Frequenzen auf null herunter, z.B.

20kHz, wenn Du das nicht vorher analog wegfilterst. [...]
--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg

Versteh ich schon, geht mir im Prinzip genauso. Deshalb simuliere ich das erstmal am PC in Delphi.

Reply to
Stefan

Stefan :

Vielleicht gibt Dir ja diese APP-Note des MSP430 ein paar Anregungen:

formatting link

TI benutzt Wave Digital Filter um DTMF zu dekodieren. Einfach nur mit 16bit Schiebe- und Add-Befehlen und ohne Hardwaremultiplizierer und das mit ner

filtern, Auslastung der CPU ist da dann nur 55% (der Autor hat sich aber

sollte es ihmo machbar sein bei 20kHz da nur 1 Filter laufen zu lassen.

Stream, so wie es reinkommt kommt s hinten wieder raus.

M.

Reply to
Matthias Weingart

Am 16.10.2018 um 11:15 schrieb Matthias Weingart:

Also genau so, wie ich es brauche.

auch ganz gut aus. Ich schau mir das aber trotzdem mal an.

Stefan

Reply to
Stefan

WDF haben eine ziemlich steile Lernkurve, musste ich teilweise mal durch. Sie sind dafuer sehr sparsam bei den uC Resourcen. Wenn Du bereits anderweitig eine Loesung mit ausreichender Filterguete simuliert hast, bei der der uC nicht bis Oberkante Unterlippe voll wird, dann wuerde ich das so lassen.

--
Gruesse, Joerg 

http://www.analogconsultants.com/
Reply to
Joerg

Ich hatte Goertzel mal implementiert. Die Bandbreite und Einschwingzeit

formatting link

formatting link

Ist recht einfach zu implementieren. Ich hatte da aber glaube ich noch

nach Anwendungsfall brauchst du das nicht.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.