moien, so, ich habe nun an meinen 433 mhz sendern und empfängern schon gut rumgespielt und ich mag funk! :) aber nun würde ich gerne einen ganz stumpfen filter bauen, der bei meinen OOK signalen ein wenig was macht. ich kriege halt oft auf dem datenausgabepin so 8-100 mikrosekunden lange blips rein. ist halt schon klar, wenn andere geräte aus der nachbarschaft da auch senden und das die reste sind, die bei mir reinstrahlen. da würde ich nun gerne was vorschalten, dass diese ganz kurzen blips halt einfach irgendwo gestoppt werden. ich kenne mich da leider nicht so aus, aber würde da nicht ein einfacher kondensator da schon reichen? oder wie müsste ich da was genau dazwischen schalten, dass halt erst pulse einer gewissen länger weitergereicht werden dürfen. danke sehr :). Andreas
>ich kriege halt oft auf dem datenausgabepin so 8-100 mikrosekunden lange >blips rein. ist halt schon klar, wenn andere geräte aus der >nachbarschaft da auch senden und das die reste sind, die bei mir >reinstrahlen. >da würde ich nun gerne was vorschalten, dass diese ganz kurzen blips >halt einfach irgendwo gestoppt werden. Kannste knicken. Das kann man in Software lösen. Taste dein Signal in bestimmten Zeitabständen mit Hilfe eines Timers ab. Was zwischen den Abtastungen passiert ist dann egal. Was du also auf keinen Fall tun solltest ist deine Signale mit while(high) oder while(low) oder externen Interrupts zu vermessen.
Eine fehlende Info ist: Wie lange dauern denn deine regulären (erwünschten) Pulse? Ein Kondensator (mit Vorwiderstand) ist ein Tiefpass und kann schnelle Pulse abschwächen, diese Lösung ist in Digitalschaltkreisen jedoch "Pfusch". Mit dem Timer 555 oder einem µC wäre eine Pulsweitenunterscheidung möglich. Vorher sollte dir klar sein: - dass auch deine guten Pulse dadurch verzögert werden - was passiert, wenn Störpulse schnell aufeinander folgen
moien, ich müsste für meinen anwendungsfall mit ca 30 MHz abtasten, also effktiv. das heisst ja dann, dass ich mehrere takte für die analyse bei jedem diese takte machen müsste. da würde ich vll bei so 100 MHz abtasten und analysieren brauchen. also mein arduino wird das nicht können ;). daher würde ich das lieber per spezieller schaltung machen. aber bin über alles was überhaupt geht dankbar! grüße, Andreas
Andreas Hornig schrieb: > ich müsste für meinen anwendungsfall mit ca 30 MHz abtasten, also > effktiv. Dein Empfänger liefert am Ausgang eine Bandbreite nahezu 15MHz ???
Andreas Hornig schrieb: > ich kriege halt oft auf dem datenausgabepin so 8-100 mikrosekunden lange > blips rein. Andreas Hornig schrieb: > ich müsste für meinen anwendungsfall mit ca 30 MHz abtasten 100µs sind 10kHz, wie kommst Du dann auf 30MHz? Störungen kann man nur filtern, wenn sie sich in irgendwas eindeutig vom Nutzsignal unterscheiden. Was ist "OOK", was sind "blips"?
moien, Peter Dannegger schrieb: > 100µs sind 10kHz, wie kommst Du dann auf 30MHz? weil ich da noch was anderes mit machen will/muss, was mit 30MHz taktet und es auch öfter solche signldauern von kleiner 100micros gibt, nur halt seltener. > > Störungen kann man nur filtern, wenn sie sich in irgendwas eindeutig vom > Nutzsignal unterscheiden. mein nutzsignal ist deutlich länger 10ms, aber mich interessieren da die flanken vom signal selber. > > Was ist "OOK", was sind "blips"? on-off-keying und blips ist mein wort für super kurze störsignale, die halt als bit erkannt werden, weil sie über den threshold kommen, aber zu kurz für ein echtes bit sind. grüße, Andreas
Andreas Hornig schrieb: > weil sie über den threshold kommen, aber zu > kurz für ein echtes bit sind. 1. Lowpass Filtern. (Kürzere Impulse = höhere Frequenz) 2. Sinnvoll sampeln.
Dann wäre eigentlich die einfachste Lösung, von OOK auf FSK zu wechseln. Man könnte aber auch direkt Manchester senden.
Andreas Hornig schrieb: > blips ist mein wort für super kurze störsignale, die halt als > bit erkannt werden, weil sie über den threshold kommen, aber zu > kurz für ein echtes bit sind. Kannst natürlich auch "Spikes" sagen, dann versteht der Rest der Welt das auch... Wenn du einfach hinter deinem OOK noch eine klitzekleine Plausibilitätskontrolle anbringst (ich könnte jetzt mein Kürzel für Prüfsumme bringen: PS, oder das weltweit übliche nehmen: CRC), dann jucken dich solche "falschen" Bits überhaupt nicht. > weil ich da noch was anderes mit machen will/muss, was mit 30MHz taktet > und es auch öfter solche signldauern von kleiner 100micros gibt, nur > halt seltener. Wie jetzt? :-/
>also mein arduino wird das nicht können ;) >weil ich da noch was anderes mit machen will/muss, was mit 30MHz taktet Das kann dein Arduino auch nicht. So, was zum Teufel willst du da anschliessen?
Kannst du nicht einfach per Input-Capture die Länge der Pulse messen und die kurzen einfach ignorieren? Siehe Kapitel 18.8 in http://www.oreilly.de/catalog/arduinockbkger/Arduino_Kochbuch_englKap_18.pdf Die Interruptroutine liefert dir dann einen schönen Array mit 1-Längen und 0-Längen ohne Spikes, den du dann gemütlich abarbeitest.
Hi, ich habe mal meinen Empfänger an den Oszi gehängt. Es kommt alle 2 Sekunden ein 50ms Signal. Das sieht man auch zwischen den Spikes. Ein erster Tiefpassfilter ist auch schon drin, aber noch nicht perfekt. Als nächstes muss ich mal schauen, wie ich nun alles unter einem gewissen Wert einfach wegbügeln kann :). Grüße, Andreas
Lothar Miller schrieb: > Andreas Hornig schrieb: >> blips ist mein wort für super kurze störsignale, die halt als >> bit erkannt werden, weil sie über den threshold kommen, aber zu >> kurz für ein echtes bit sind. > Kannst natürlich auch "Spikes" sagen, dann versteht der Rest der Welt > das auch... Blip(s) ist eigentlich recht üblich im Funkbereich für kurze Signale.
schonmal mit einem schwellwert entscheider versucht? sprich: du legst die schwelle für die biterkennung über die höchste spitze des rauschens (spikes/blips/was auch immer)
ich, nicht du schrieb: > schonmal mit einem schwellwert entscheider versucht? > sprich: du legst die schwelle für die biterkennung über die höchste > spitze des rauschens (spikes/blips/was auch immer) moien, ich denke mir das schon, ja, aber ich weiss noch nicht, wie ich das genau mache! :) was muss ich denn machen, dass der nur spizen über ein bestimmtes level weiterleitet? grüße, Andreas
Andreas Hornig schrieb: > was muss ich denn machen, dass der nur spizen über ein bestimmtes level > weiterleitet? Einen Komparator verwenden. Das Signal wird mit einer Schwelle verglichen. Ist das Signal größer, schaltet der Ausgang um. http://www.mikrocontroller.net/articles/Komparator http://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen#Der_Komparator Gruß Dietrich
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.