Wednesday, 1 November 2017

Moving Average Peak Erkennung


Arduino Frequency Detection Als Nachfolger des Arduino Audio Input Tutorials, das ich letzte Woche geschrieben habe, habe ich eine Skizze geschrieben, die ein Signal analysiert, das in den Arduinos Analogeingang kommt und die Frequenz bestimmt. Der Code verwendet eine Abtastrate von 38,5 kHz und ist für beliebige Wellenformen verallgemeinert. Ive auch drehte die LED an Pin 13 in eine Clipping-Indikator, so dass Sie wissen, wenn Sie Ihre Signale Amplitude anpassen müssen, wie Sie es in die Arduino senden. Einige Projektideen für den hier vorgestellten Code sind: Pitch-reaktive Projekte - ändern Sie die Farbe von RGB-LEDs mit Tonhöhe oder machen Sie eine Sperre, die nur öffnet, wenn Sie eine bestimmte Tonhöhe oder Melodie Audio zu MIDI-Konvertierung singen - erhalten Sie das Arduino, um einen eingehenden zu übersetzen Signal in eine Reihe von MIDI-Nachrichten. Sehen Sie meine Anweisung über das Arduino zu senden und zu empfangen MIDI für viele Beispiel-Code, um Audio-Effekte zu bekommen - verwenden Sie die Frequenz Informationen, um ein Audiosignal aus der Ton () - Bibliothek oder mit einigen gespeicherten Samples zu rekonstruieren, um eine coole Effekte Boxsynthesizer Die Der erste Schritt dieses Projektes besteht darin, die Audioeingangsschaltung einzurichten. Ich schrieb hier eine ausführliche Anleitung. Schritt 1: Erkennung von Signal-Slope Zuerst wollte ich mit Peak-Detektion experimentieren, also schrieb ich ein Stück Code (unten), das ein hohes Signal ausgibt, wenn das eingehende Audiosignal eine positive Steilheit hat und bei der eingehenden Audiosignale ein niedriges Signal ausgibt Signal hat eine negative Steigung. Für eine einfache Sinuswelle erzeugt dies ein Pulssignal mit der gleichen Frequenz wie die Sinuswelle und ein Tastverhältnis von 50 (eine Rechteckwelle). Auf diese Weise befinden sich die Peaks immer dort, wo die Pulswelle zwischen ihren hohen und niedrigen Zuständen umschaltet. Der wichtige Teil des Codes ist unten wiedergegeben. All dieser Code findet im ADC-Interrupt statt (unterbricht und läuft jedes Mal, wenn ein neuer analoger Wert von A0 bereit ist, mehr Infos darüber, welche Interrupts sind und warum wir sie verwenden können finden Sie hier) prevData newDatastore vorheriger Wert newData ADCHget value from A0 if (newData gt prevData) PORTB B00010000set Pin 12 hoch sonst if (newData lt prevData) PORTB amp B11101111set Pin 12 low Ich sollte hier merken, dass ich in diesem Tutorial die direkte Portmanipulation zum Ausschalten und Einschalten des Ausgangsstiftes (Pin 12) Des Arduino. Ich habe das getan, weil die Portmanipulation eine viel schnellere Art ist, die Arduinos-Pins zu adressieren als der Befehl digitalWrite (). Da musste ich den ganzen Code in eine Interrupt-Routine setzen, die bei 38.5kHz abging, brauchte ich den Code so effizient wie möglich zu sein. Sie können mehr über Portmanipulation auf der Arduino Website lesen. Oder sehen Sie die Kommentare Ive oben geschrieben, um zu verstehen, was jede Zeile tut. Youll bemerken auch in dem Code unten, dass ich einige unbekannte Befehle in der setup () - Funktion verwendet habe, so dass ich den Arduinos-Analogeingang mit einer hohen Frequenz abtasten könnte. Weitere Informationen dazu finden Sie in meinem Arduino Audio Input Tutorial. Abb. 1 zeigt den Impulsausgang in blau und die Sinuswelle in gelb auf einem Oszilloskop. Beachten Sie, wie die Impulsausgabe jedes Mal schaltet, wenn die Sinuswelle ein Maximum oder Minimum erreicht. Abb. 2 zeigt die Impulsausgabe in blau für eine beliebige Wellenform in Gelb. Beachten Sie hier, wie die Pulswelle ein unregelmäßiges Arbeitszyklus annimmt, weil das eingehende Signal (gelb) viel komplizierter ist als eine Sinuswelle. Ltpgthello mam. Im fasziniert von deinem code Mam im derzeit ein Design-Projekt, das Notfall-Fahrzeug durch ihre Sirenen-Frequenz erkennt. Glaubst du, es ist möglich mit deinen Codes als Grundlage dafür. Ich brauche wirklich etwas Hilfe mit diesem ltpgt ltpgtThanks sehr viel ampquotuh-man-duhampquot. Ich konnte das Problem herausfinden und es funktioniert gut für meinen Mikrofonkreislauf. Auch danke für mich zu verstehen, unterbricht better. ltpgt ltpgtHello Amanda, ltpgtltpgtThank Sie sehr viel für diese sehr informative Post. Ltpgtltpgt Ich arbeite derzeit an einer Tonhöhe gesteuerten LED-Weihnachtslicht und I39m mit Ihrem Code für die Tonhöhenerkennung, I39m mit meiner eigenen Schaltung, Elektret-Mic-config und ich lese ampquotinf hzampquot, was bedeutet, dass Periode ist ampquot0ampquot aber wenn ich die Führung alleine halten Verbunden mit dem a0 liest man einige frequenzen. Ich habe das ampquotperiodampquot gedruckt und es zeigt ampquot0ampquot bestätigt it. ltpgtltpgtAny Ideen, warum die Periode ist 0ltpgt ltpgtEdit: Ich glaube, ich habe herausgefunden, warum, die Eingabewerte, die ich bekomme, sind nicht ampquotslopeyampquot genug, da sie keinen weit genug Abstand von der max und haben Min values. ltpgt ltpgtDank für die projectltpgtltpgtI haben die Audio-Eingabeschaltung konstruiert, die im Link oben auf dieser Seite umrissen ist. Ich versuche, ein Gerät zu konstruieren, das nur das Led an die Uno anschließen würde, wenn eine bestimmte Frequenz vom Mikrofon erkannt wird. Ich habe Schwierigkeiten, Code für diese Aufgabe zu entwickeln und brauche eine kleine Anleitung. LtpgtltpgtIf jeder kann helfen, das wird großartig sein, ltpgtltpgtthanksltpgtltpgt-Alexltpgt ltpgtThanks für die tolle Projektinfo. Ich habe es mit einem Elektret-Mikrofon mit einem Verstärker ausprobiert, aber ich bekomme keinen sauberen Ausgang auf dem seriellen Monitor. Grundsätzlich sind die Frequenzen, die es ausspuckt, über die Karte. Zum Beispiel, wenn ich es eine Note um 70Hz (I39m Planung auf Putting es auf meinem aufrechten Bass, so I39ve verwendet, dass zu testen) es wird mir eine Menge von Frequenzen, die von 10Hz bis 7000Hz, dann geben Sie mir mehrere In einer Reihe, die ungefähr 70Hz sind, dann zurück zu überall, etc. Selbst wenn ich eine 440Hz Anmerkung von einem Tuner spielte, gab es mir eine anständige Menge der Zufälligkeit. LtbrgtltbrgtMeine Vermutung ist, dass ich die SlopeTol - und timerTol-Werte anpassen muss, da die zufälligen Frequenzen oft (wenn auch oft nicht) ein paar von denen, die ich sucht, so dass ich glaube, dass es irgendwelche Kreuzungen fehlt. Bin ich denke richtig, ich weiß nicht genau, welches man sich ändern muss und wieviel ich sie mit ihnen beide verpasst habe, und sie sind derzeit auf slopeTol 2 und timerTol 15. Irgendwelche Ideen auf irgendeinem Ballpark reichen für diese, wenn ich die Töne von meinem Bass messen will Ein anderer Teil, den ich verdrehen sollte Danke für die Hilfe. Ich gehe wirklich gerne deine Methode anstelle von FFT oder FHT, da es viel effizienter für mein project. ltpgt ist. LtpgtSee posten über. ltpgt ltpgtOne Ding ich dachte an: Im Moment I39m das Arduino über den USB, da I39m mit dem seriellen Überwachen, um zu debuggen Würde den USB als Stromquelle benutzen, um Lärm zu dem Signal hinzuzufügen Mein Projekt wird von einer 9V Batterie angetrieben und ich habe ein bis jetzt angeschlossen, gerade ausgeschaltet. Würde es dazu beitragen, dass die 9V-Quelle zusätzlich zum Einstecken in den USB-Stecker muss ich es stecken, um den seriellen Monitor zu verwenden, aber wenn that39s what39s verursacht die Probleme. Ltpgt ltpgtHiltbrgtThanks eine Menge für thisltbrgtltbrgtalthil ich habe eine Frage: Id wie die Arduino zu erkennen, einige der Notizen, die ich mit meiner Klarinette (so Live-Sound) zu spielen, wie ist es möglich, dies zu tun, ohne ein digitales trackltpgt ltpgtIt39s möglich zu tun Dies mit nur der Schaltung und Code. ltpgtltpgtI bin mit einer Variation dieser Skizze, um die Ausgabe eines Gitarren Pickup und lesen Sie die String39s Frequenz und Intonation (eine Anpassung, die Harmonien korrigiert).ltpgtltpgtSince wir mit Instrumenten, die wir haben, um einige zu betrachten Nebenwirkungen von Oberwellen. Ich habe einen Low-Pass-Filter (4.7K und 6.8uF - Konserven alles über 5kHz). Sie wollen einen Filter, der Ihre höchste Note erlaubt, durch zu kommen - vorausgesetzt, Sie don39t überblasen oder spielen mit harmonics. ltpgtltpgtDouble Ihre höchste spielbare Note, dann konvertieren Es auf eine Frequenz - fügen Sie eine if-Anweisung nicht anzuzeigen alles über it. ltpgtltpgtlta hrefquotphy. mtu. edu suitsetvsmean. htmlltagtltpgtltpgtChange den Code, um jede abgetastete Frequenz auf eine fundamentale aufgeführten. ltpgtltpgtA 10uF Kopplungskondensator nicht gut mit dieser Schaltung für meine zu teilen Beabsichtigte Anwendung. Ein Wert von 4.7uF erlaubte mir stattdessen eine ziemlich flüssige Anzeige in meinem Terminal-Display. Ich habe auch den 47nF Kondensator auf Masse gelegt. Alles, was es tat, war zu lange auf meine Probe zu halten und zu verhindern, dass genauere Lesungen. ltpgtltpgtI bin in den Prozess des Schreibens eines Headers für musikalische Berechnungen, die FHTFFT-Algorithmen enthält - aber alles, was Sie tun müssen, ist die Verwendung Ihrer bevorzugten Methode zur Identifizierung und Umgang mit verschiedenen Anzahl values. ltpgtltpgtdouble noteFrequency 440 Concert 39A39 - 440 hzltpgtltpgtdouble Abweichung 4 nobody39s perfectltpgtltpgtdouble hiRange, loRangeltpgtltpgthiRange noteFrequency deviationltpgtltpgtloRange noteFrequency - deviationltpgtltpgtif (Frequenz ampgt Lorange ampampampamp Frequenz amplt hiRange) ltpgtltpgt ltpgtltpgtExpand dies, wie Sie werden aber it39s eine grundlegende start. ltpgtltpgtThanks für eine ausgezeichnete instructable Amandaltpgt LtpgtAside von der Erfindung eines analogen Computers oder mit Quantencomputing, die Computer-Geräte, die wir alle kennen wissen 139s und 039s. Mit einem digitalen Signal, 10-Bit bezieht sich auf 2101024, das heißt mit zehn Ein-Schalter, gibt es 1024 Kombinationen. Deshalb gibt es Schritte zur Welle. LtpgtltpgtDer Klang, den wir hören, ist die Intensität im Laufe der Zeit, wie laut ein Ton ist, sagt uns nicht, welche Note es war. FFT ist ein 39transform39, um der Intensität über die Frequenz zu zeigen, dann, wenn wir die Intensität bei einer bestimmten Frequenz sehen, sehen wir, dass die Note gespielt wurde. LtpgtltpgtI39ve gesehen Bibliotheken mit dem Teensy Mikrocontroller läuft bei 120MHz in der Lage, Probe und eine FFT, um Noten zu bestimmen. Schau dort hin Der einzige Weg, an den ich denken könnte, dass es sonst möglich ist, ist es, wenn es ein kleines Muster von exakten Notizen wäre, die man in der Lage sein wird, es mit Set sehr spezifischen Satz von Bandpass-Filtern zu tun, aber dieser Ansatz würde andere Probleme haben. ltpgt ltpgtI39m arbeiten an Ein persönliches Projekt zur Audiofrequenzerkennung mit Arduino. Ich habe eine Frage, um zu fragen, warum die letzte Frequenz von der Software erkannt it39s wiederholt in der seriellen monitor. ltpgtltpgtI bedeuten, während ich einen Ton zu spielen und dann habe ich kein Signal in der Zeile, aber der serielle Monitor immer noch das letzte Frequenz erkannt Weißt du, wie man das beheben kann oder wenn es möglich ist, hinterlasse ich einen angehängten Screenshot, um dir zu zeigen, was I39m reden über. ltpgtltpgtThanksltpgt ltpgtthank Sie für thisltpgt ltpgtThanks viel für die Buchung dieses sehr klare und hilfreiche Projekt. LtbrgtI baue es aber unter Verwendung der Soundkartenausgabe eines Computers (oder eines ähnlichen, wie ein Telefon oder Mediaplayer) als Eingabe. Da diese Signale viel stärker sind, habe ich den opamp ausgelassen. Im Übrigen ist das Setup ähnlich: ein Widerstand () und ein Potmeter (-) als Spannungsteiler vor der 10uF-Kappe und zwei Widerstände (Amplig-) als Spannungsteiler auf der anderen Seite. Und der 47nF Kondensator zwischen Signal und (-) ltbrgtIt funktioniert ziemlich gut, aber die Lesungen zeigen Inkonsistenzen f. i. Viele Linien von einer fast perfekten 80,80-82,01Hz und plötzlich ein 25,94Hz (und auffallend oft die Hälfte der Werte des Signals) oder sagen, ein 12820,67Hz vorbei. Und oft ähneln unregelmäßige Störungen am Anfang und am Ende eines Signals. ltbrgtFür ein Kunstwerk möchte ich ein Servo mit dieser Technik steuern, mit etwas, das sich in Sinc mit einem Video bewegt (entweder direkt (Häufigkeit ist Position) oder durch ein Ssc32 (Frequenz ist Position und Signallie ist Geschwindigkeit) mit Charstrings übergangen). Dafür sind diese Sprünge ganz nervig. Ich habe versucht, viel mit den Einstellungen in deinem Programm (ampThreshold, timingTol, slopeTol) und auf der Hardwareside mit Kondensatoren, um die Wellen, aber bisher ohne Glück zu bekommen. Jeder suggestionsltpgtltpgtMy iduino wird vom Computer angetrieben, um die Lesungen lesen zu können, und ich habe kein Oszilloskop, um den Signalausgang des Computers zu überprüfen. Ich habe auch andere Quellen ausprobiert, mit ähnlichem Outcome. ltpgtltpgtMany Danke trotzdem für die Instruktion, die mir schon sehr viel geholfen hat und vielen Dank im Voraus. ltpgtltpgtMatthijsltpgtltpgtps: ltbrgtsteering Servos auf diese Weise scheint eine Art Umweg, aber manuell setzen die richtigen Blöcke an der richtigen Stelle Und spielte sie mit dem mediaplayer schien noch mehr zu arbeiten Mit der Frequenztechnik macht es viel flexibler und allgegenwärtiger. Ltpgt ltpgtThank Sie für Ihre teilen Amanda. Ich muss nicht vom nullpunkt auf meinem automatischen gitarren tuner projekttpgtltpgt. Aber ich habe eine question. Can ich benutze ein piezo, um die vibration oder den ton anstatt mit einem mic zu werfen, was es dem tuner ermöglicht, in lärmende umgebung zu arbeiten ltpgtYs Sie kann. Ich benutze es auf einer Violine. Im Moment ist der Algorithmus ein wenig sporadisch, aber wenn man die Zeit und Hang Toleranzen dreht es funktioniert ein wenig besser. Ich denke, wenn Sie den Code umstrukturieren, um die volle 10-Bit-Auflösung anstelle von 8 Bits zu erhalten, sollten Sie in der Lage sein, diesen Code besser zu machen. Aber die zusätzlichen Befehlszyklen könnten andere Operationen behindern. Ltpgt ltpgtI39ve bekam auch ein Projekt in dieser Richtung, und ich fragte mich, dass das gleiche über die Abholung von Lärm aus anderen Quellen (oder Instrumente, da ich planen, es während des Spiels zu planen). Mit einem Piezo kam in den Sinn, froh zu sehen, jemand hat es erfolgreich gemacht. Ich habe mich gefragt, was hast du benutzt, um deinen Piezo auf dein Instrument zu stecken, ich will nichts tun, was das Holz beschädigen würde. Hast du irgendeine Art von Klebstoff verwendet, der für String-Instrumente sicher ist, ltpgtI versucht, eine unter der Brücke abholen, sowie einen Brückenstock auf Pickup Ein generisches Stab Piezo und ein Shadow SH 3001 jeweils. Ich habe es auf einem dedizierten elektrischen so dass die Stange Piezo war angemessen und viel billiger, aber es gibt Film-Typ unter der Brücke Pickups wie Realist Pickups, die für Sie arbeiten sollte. Ich habe festgestellt, dass das Mischen von beiden Arten von Pickups (horizontal und veritcal) durch eine billige Behringer micromix mx400 gibt wirklich gute Ergebnisse, obwohl Sie müssen mit zwei Drähten statt nur eins zu kämpfen. Ltpgt ltpgtGotcha, danke. Ich sehe, ob ich so etwas für meinen aufrechten Bass finden kann. Ich hoffe, es zu benutzen, um einen LED-Streifen zu steuern, also brauche ich wohl die Qualität nicht ganz so hoch, dass ein Pickup es tun sollte. Musstest du es mit dem ganzen Operationsverstärkungs-Setup aus dem Audio-Input-Tutorial verdrahten, oder manche haben Verstärker, die in den LPP-LTPgtYs gebaut wurden, musst du es ein bisschen auf der Grundlage der Spannungsreaktionsmerkmale des verwendeten Elements verstärken. Du musst tinker weil keine zwei piezo39s gleich sind. Es gibt eine Menge von Projekten für arduino da draußen, wie dies zu tun, suchen Sie einfach ampquotarduino Audio inputampquot, wenn das obige schematische isn39t beschreibend genug für you. ltpgt ltpgtSo mit diesem Arduino-Code würde ich in der Lage sein, die Light39s Frequenz mit der Frequenz zu steuern Des Klanges möchte ich ein Beleuchtungssystem für mein Zimmer und Auto, das mit dem Sound reagieren wird, aber in einer Weise, dass bassampquotcool colorsampquot, dreifach ampquotwarm colorsampquot (oder sogar umgekehrt) zu bauen. Ich fühle mich so, dass würde eine bessere Erfahrung, um die musicltpgt ltpgtDid Sie verwalten, um Ihre Idee arbeiten Ich habe ein ähnliches Projekt idea. ltpgt ltpgtHi Amanda, ltpgtltpgtDank für die sehr nützliche Arbeit, die Sie getan haben, nou Ich kann die Frische aus meiner Landwirtschaft zu messen Anwendung, die einen Erreger verwenden ring. ltpgtltpgtI haben eine qustion wie kann ich zu einem anderen analogen pin in der ideltpgtltpgtThanks ändern, ltpgtltpgtRien BrandltpgtltpgtNetherlandsltpgt ltpgtNicht sicher, ob Sie die Antwort auf Ihre quesiton gefunden haben, aber wenn Sie nachschlagen ADMUX registrieren Sie sich im Datenblatt für Ihre besondere atmega Sie sehen, wie man die Analog-Digital-Wandler ändern. ltpgtltpgtHere39s ein Link zu verstehen, ADMUXltpgtltpgtrobotplatformknowledgeADCadctutorial3.htmlltpgt ltpgtWe tat es, endlich vor Probleme. Wir haben hierfür E-Gitarre benutzt. Thanku Amanda Halten Sie sich die gute Arbeit ltpgt ltpgtHello Amanda Dank für Ihr Teilen. Ich möchte über diese eine fragen. ltbrgtso Ich bin die Entwicklung einer Arduino menschlichen Schrei-Erkennung ist es möglich, um mich zu erkennen, menschliche Hilfe schreien Stimme mit dieser Art von Arduino-Programm, weil ich den Aufbau der Komponente durch Bandpass-Filter zu bauen will. Verstärkung und Gleichrichter-Schaltung und dann für seine Tonhöhe Erkennung und Stimme Dauer suchen. ltbrgtltbrgtDo haben Sie eine Ahnung über die Schaltung, die krank müssen, um meine projectltbrgtOr ist es möglich genug, um einige Arduino-Bibliothek und schreiben Sie die Spracherkennung codeltpgt ltpgtHi Amanda, Vielen Dank für diese Quelle. sehr erstaunlich. Ltpgtltpgtbut. Kleines problem mein arduino LtpgtltpgtIhre Quelle ist exellent. Ltpgtltpgtbut. Mein arduino funktioniert nicht ltpgtltpgtmy arduino version. Ist. Ltpgtltpgt8-bitltbrgtMicrocontrollerltbrgtwith 256K BytesltbrgtIn-SystemltbrgtProgrammableltbrgtFlashltpgtltpgtmaybe. Ltpgtltpgtversion ist Problem ist anders. Ltpgt ltpgtHi Amanda, vielen Dank für diese instructable Sehr nützltpgtltpgtI bevorzuge diese einfachere Code-Version (integriert mit Amp-Schwelle), weil ich einen Sound-Analysator machen möchte. Wo Sie pfeifen oder singen eine ampquotooohampquot beachten und dann haben Sie die Häufigkeit. Making ein tragbares mit einem 4-stelligen Display gebaut und dort ist es ein perfektes Gadget für jeden Ton-Ingenieur oder Musiker, wer will wissen, welche Frequenz verursacht Mikrofone feedbacks. ltpgtltpgtDoes macht es einen Sinn sammeln eine Reihe von Messungen und machen einen mathematischen Durchschnitt wie ich Sie brauchen einen schnellen Prozess, aber ein langsamer und festeren (ohne ampquotgarbageampquot Messungen) Ich habe versucht, einige ampquotforampquot Zyklus mit einem einfachen Array, aber es doesn39t scheinen, jede Präzision hinzufügen (vielleicht ich don39t wissen, wo es zu setzen). Ltpgt Hallo Amanda. Ihre instructables auf arduino sind großartig .. wie immer ich will wissen, ob es möglich ist, eine Amplitude der Sinuswelle auf arduino ltpgt zu messen. Für die Anweisung habe ich gerade eine Schaltung mit einem verstärkten Elektret-Mic-Signal unter Verwendung von opamp eingegeben. Allerdings, wenn ich die serielle Ausgabe betrachte, scheint es nur für die erste Sekunde oder 2 zu arbeiten, dann hört es auf, mit der letzten Zeile zu arbeiten, wie das angehängte Bild aussieht. Eine Idee, was die Ursache sein könnte, ist das ein hervorragendes Projekt. Es funktioniert gut auf meinem arduino uno. Allerdings brauche ich es, um auf einem Arduino-Mega mit Ethernet-Schild zu laufen. Beim Hinzufügen der Codes zu meinem Ethernet-Projekt wird die Verbindung zum Internet brocken (I39m das Hochladen von Daten auf den xive Server). Irgendein suggestionltpgt HiiiltbrgtHow wir haben die Häufigkeit gemessen. Ich möchte Frequenzbereich von 60Hz bis 100Hz erkennen. Kann ich diese progtame Dank und schnelle Antwort von Ihnen verwenden ltpgtThis ist fantastisch I39m Blick in ein Gitarren-MIDI-Pedal, aber eine DIY-Lösung ist billiger und viel kühler. Requisiten für Sie für dieses großartige Stück von codeltpgt ltpgtHi, hat jemand dieses Projekt abgeschlossen (evtl. mit einem Diff-Typ von mic) und würde nicht darüber nachdenken, es ist ein Anfänger und würde das gerne so ausprobieren. Etwas ausführlichere Schritte wäre am hilfsbereitsten: Dltpgt ltpgtHi amanda, ich möchte mit Ihnen zu diesem anfälligen, wirklich mächtigen gratulieren: DI hat eine Frage, das ist es möglich, die Frequenzen eines Songs auf diese Weise zu überprüfen Aux-Signal von zB einem MP3-Player oder dem Notebook-Audio-Kopfhörer-Ausgang (nach der richtigen Management des Signals wie in Ihrem anweisbaren auf arduino auido Eingang) ltpgtltpgtThanks ein lotltpgtltpgtDltpgt ltpgtHas jemand machte dieses Projekt mit ChipKit Uno32. Ich bin wirklich auf der Suche nach Projekten wie die für meine Uno32-Entwickler-Board, weil ich analoge Signalfrequenz aus optischer Rotation Sensor. ltpgt lesen muss Great work I39m versuchen, diesen Code für ein automatisches Laser-Oszilloskop verwenden, das ich entwerfe. Ltbrgt ltbrgtI39ve fand heraus, dass der Code die Messfrequenzen stoppt, sobald ich analogRead () von einem anderen analogen Pin ausprobiere. Im Moment verstehe ich nicht die untere Programmierung des ADC, die du getan hast. Gibt es irgendeine Möglichkeit, von den anderen analogen Stiften zu lesen, ohne die Tonhöhenmessung zu beeinträchtigen ja, wie dies aufgebaut ist, werden alle anderen analogen Pins deaktiviert. Sie können einen analogen Wert von einem digitalen Pin mit RCTime lesen: ltbr gtarduino. ccenTutorialRCtime ltbr gtinstructablesidArduino-Basics-RCtime ltbr Gthope, die für das funktioniert was Sie tun. LtpgtThank Sie für den großen Artikel. Ich habe mich nur gefragt, kann ich ein Mikrofon mit einem Vorverstärker verwenden, um die detection. ltpgtltpgtI haben: ltpgtltpgtlta hrefquotfreetronicsproductsmicrophone-sound-input-modulequot relquotnofollowquotgtfreetronicsproductsmicrophone-sou. LtagtltpgtltpgtThank you very muchltpgt ltpgti versucht, Gitarren-Tuner zu bauen lta hrefquotinstructablesidArduino-Guitar-TunerALLSTEPSquot relquotnofollowquotgtinstructablesidArduino-Guitar-Tun. Ltagtltpgtltpgtbut arduino can39t lesen Sie die Eingabe von meiner guitar. ltbrgtcan Sie mir helfen, dieses Problem zu lösen ltpgt haben Sie ein Oszilloskop ltpgti don39t haben oscilloscope. ltbrgtdoes ein Problem geworden, wenn ich 100nF Cap auf der DC-Offset verwenden ltpgtltpgti sehen Sie Ihr Projekt verwenden 47nF Cap. Ltbrgtltpgt ltpgtno das sollte gut sein Du brauchst ein Oszilloskop, um das zu debuggen, vielleicht sehen, ob es sich um ein lta targetquotblankquot hrefquothackerspaces. orgwikiListofHackerSpacesquotgthackerspaceltagt oder Schule in deiner Nähe gibt, wo man einen kostenlos nutzen kann. tpgt ltpgtwhat ist das Hauptproblem, dass die Eingabe von Gitarre das Arduinoltbrgtltbrück nicht erreichen kann, ob das Projekt könnte Fertig sein, wenn es oszilloskop ltpgt ltpgtyou könnte versuchen, mit einem Computer laufen Kühnheit als behelfsmäßiges Oszilloskop, um herauszufinden, wo das Signal geht verloren. Haben Sie einen Audioeingang auf Ihrem Computerltpgt ltpgtyes, ich habe. ltbrgthow, um Audio-Ausgang von Verstärker und DC-Offset-Schaltung in meinem Computer zu machen. Es gibt 3 Ausgänge ampquotA0. 5v und GNDampquotltpgt ltpgtI39m neu in Arduino, ich möchte das aber mit einem Elektret-Mikrofon machen, ich denke es ist ganz anders als das Mikrofon, das du benutzt hast. Wie kann ich den Circuit mit einem Elektret Microphoneltpgt ltpgtit nicht zu unterschiedlich machen, aber vielleicht musst du den Verstärker auf den Verstärker wechseln, der in den Arduino39s Analog Pin geht. Sie werden wahrscheinlich ein Oszilloskop handlich, so dass Sie sehen können, was you39re doing. ltpgt ltpgt Wissen Sie, ob es ein virtuelles Oszilloskop, das ich verwenden könnte Wie ein PC-Programm. Ltpgtltpgt Über das Mikrofon, I39m mit einem Elecret Mikrofon mit Breakout Board (Verstärker im Lieferumfang enthalten), verbinde ich es direkt mit dem Arduino, ist alles alrightltpgt ltpgti guess du könntest den Audioeingang auf deinem Comp und Rekord mit Audacity oder any. ltpgtHow verwenden, um zu fahren Auf einer intelligenten Autobahn Eine intelligente Autobahn nutzt Technologie, um den Verkehrsfluss aktiv zu bewältigen. Die Technologie wird von einer regionalen Verkehrsleitstelle aus gesteuert. Die Leitstellen überwachen den Verkehr sorgfältig und können die Zeichen und Geschwindigkeitsbegrenzungen aktivieren und ändern. Dies hilft, den Verkehr frei zu halten. Smart Autobahnen erhöhen die Kapazität der Straße, ohne die Kosten und Streit der Erweiterung der Straße, entweder vorübergehend oder dauerhaft öffnen die harte Schulter zum Verkehr. Autobahnen England ist verantwortlich für intelligente Autobahnen in England. Schnelle Tipps Auf einer schlauen Autobahn: Fahren Sie niemals in eine Spur, die durch ein rotes X geschlossen ist, halten Sie sich an die Geschwindigkeitsbegrenzung, die auf den Gantrys eine feste weiße Linie zeigt, die harte Schulter anzeigt - nicht in sie hinein, wenn nicht gerichtet. Eine gebrochene weiße Linie zeigt eine normale Laufspur an, wenn Ihr Fahrzeug Schwierigkeiten hat, z. B. Warnlicht, verlassen Sie die smarte Autobahn sofort, wenn möglich, benutzen Sie die Schutzgebiete für Notfälle, wenn theres keine harte Schulter Ihre Hazard Lichter an setzen, wenn Sie brechen Nicht angetrieben auf einem Smart Autobahn Sehen Sie sich unsere Drive-Through-Simulation an: Ein kurzer Überblick über intelligente Autobahnen: Eines der wichtigsten Anzeichen für eine intelligente Autobahn ist das rote X. Dies zeigt an, dass eine Spur geschlossen ist. Wenn Sie sehen, dass ein rotes X eine Spur schließt, verschieben Sie sich sofort aus dieser Spur. Wenn Sie nicht, können Sie eine Geldstrafe erhalten. Eine Spur könnte geschlossen werden, weil es auf der Straße Trümmer gibt oder wegen einer Person oder eines Tieres auf der Straße. Es kann ein Unfall oder eine Panne vorwärts sein. Wir können die Spur für die Rettungsdienste, wie einen Krankenwagen, halten. Also für deine eigene Sicherheit und die Sicherheit von anderen, fahre niemals in eine Spur, die durch ein rotes X geschlossen ist. PDF. 2.1MB 3 Seiten Diese Datei ist möglicherweise nicht für Benutzer von assistiver Technologie geeignet. Fordern Sie ein zugängliches Format an. Wenn Sie assistive Technologie (zB ein Screenreader) verwenden und eine Version dieses Dokuments in einem zugänglicheren Format benötigen, bitte email infohighwaysengland. co. uk. Bitte sagen Sie uns, welches Format Sie benötigen. Es wird uns helfen, wenn Sie sagen, welche unterstützende Technologie Sie verwenden. In einem Notfall Vorbeugung ist besser als heilen: Halten Sie Ihr Auto gut gepflegt, überprüfen Sie Ihre Reifen und stellen Sie sicher, dass Sie genug Kraftstoff für Ihre Reise haben. Alle Autofahrer sollten im Falle einer Panne ihre eigenen Verwertungsregelungen vornehmen können. Wir raten, dass Sie eine Pannenabdeckung haben und Details dazu mitbringen. Versuchen Sie immer, die Autobahn sofort zu verlassen, wenn Ihr Fahrzeug beschädigt ist oder Schwierigkeiten hat. Wenn das nicht möglich ist, gehen Sie in den nächsten Ort der relativen Sicherheit. Auf den meisten Autobahnen wird das die harte Schulter sein. Aber auf einer intelligenten Autobahn kann es nicht immer eine harte Schulter geben, oder die harte Schulter kann für den Verkehr offen sein. In diesen Fällen sehen Sie Notfall-Schutzgebiete (ERA) regelmäßig entlang der Autobahn. Machen Sie Ihren Weg zum nächsten. Sie sollten diese Schritte befolgen: Verwenden Sie einen Notfall-Bereich, wenn Sie in der Lage sind, sicher zu erreichen. Diese sind mit blauen Schildern gekennzeichnet, die ein orangefarbenes SOS-Telefonsymbol auf ihnen kennzeichnen. Wenn Sie Ihr Fahrzeug sicher verlassen können, wenden Sie sich an die Autobahnen in England über das Notfalltelefon in allen Notfallgebieten. Wir werden entweder einen Verkehrsoffizier schicken, um Ihnen zu helfen, oder setzen Sie die Autobahnschilder, um vorübergehend die Fahrspur 1 zu befreien, um Ihnen zu helfen, sich wieder der Autobahn anzuschließen. Wenn Sie nicht in einen Notfall-Bereich kommen können, aber das Fahrzeug gefahren werden kann, bewegen Sie es auf die harte Schulter (wo vorgesehen) oder so nah an der Nearside Rand oder andere Nearside Grenze wie möglich. In allen Fällen schalten Sie Ihre Warnblinkanlage ein. Wenn Sie in der Nearside Lane neben einer harten Schulter oder Rand und fühlen Sie sich in der Lage, sicher mit jedem Insassen zu verlassen, betrachten Sie Ihr Fahrzeug über die Nearside (linke Hand) Tür und warten hinter der Sicherheitsbarriere, wenn es eine ist Und sicher, dies zu tun. Wenn es nicht möglich ist, aus Ihrem Fahrzeug sicher zu kommen, oder es gibt keinen anderen Ort der relativen Sicherheit zu warten, dann sollten Sie in Ihrem Fahrzeug mit Ihrem Sicherheitsgurt auf und wählen Sie 999, wenn Sie Zugang zu einem funktionierenden Handy haben. Sobald die regionale Verkehrsleitzentrale Ihrer Situation bewusst ist, über die Polizei oder Straßenrand-Technologie wie CCTV, können sie die intelligente Autobahn-Technologie verwenden, um Overhead-Zeichen und schließen Sie die Spur zu helfen, Verkehr weg von Ihnen zu halten. Sie werden auch einen Verkehrsoffizier oder die Polizei schicken, um Ihnen zu helfen. Geschwindigkeitsbegrenzungen Auf einer intelligenten Autobahn können bei Überschreitungssignalen Geschwindigkeitsbegrenzungen aufleuchten. Diese Grenzwerte können geändert werden, um den Verkehr zu belebten Zeiten zu verwalten. Dies hilft, den Verkehrsfluss zu vermindern und den Stopp-Start-Verkehr zu verhindern, der durch Stoßwellen-Staus verursacht wird: Wird keine spezielle Geschwindigkeitsbegrenzung angezeigt, so gilt die nationale Geschwindigkeitsbegrenzung. Eine Geschwindigkeitsbegrenzung, die in einem roten Kreis angezeigt wird, ist gesetzlich durchsetzbar. Wenn Sie nicht auf diese Geschwindigkeitsbegrenzung zu halten, Sie brechen das Gesetz. Geschwindigkeitskameras sind auf intelligente Autobahnen in Betrieb. Wenn Sie nicht auf die Geschwindigkeitsbegrenzung zu halten, können Sie eine Geldstrafe erhalten. Harte Schultergebrauch Auf intelligenten Autobahnen sehen Sie Zufluchtgebiete regelmäßig neben der Autobahn. Sie sollten diese in Notfällen verwenden. Das ist, weil auf einigen intelligenten Autobahnen die harte Schulter für den Verkehr geöffnet werden kann, um zu beschäftigten Zeiten zu verwenden. Wenn es für den Gebrauch offen ist, sehen Sie eine Geschwindigkeitsbegrenzung, die über ihm angezeigt wird. Wenn es kein Schild gibt oder ein rotes X angezeigt wird, gelten normale harte Schulterregeln. Mit anderen Worten, verwenden Sie es nicht außer im Notfall. Eine harte Schulter ist immer eindeutig mit einer festen weißen, ununterbrochenen Linie identifiziert. Auf anderen Arten von smart Autobahn wurde die harte Schulter dauerhaft in eine Extra-Spur umgewandelt. Wo dies der Fall ist, sieht die Spur wie jede andere Spur aus, dh sie ist mit einer zerbrochenen weißen Linie markiert. PDF. 520KB 4 Seiten Diese Datei ist möglicherweise nicht für Benutzer von assistiver Technologie geeignet. Fordern Sie ein zugängliches Format an. Wenn Sie assistive Technologie (zB ein Screenreader) verwenden und eine Version dieses Dokuments in einem zugänglicheren Format benötigen, bitte email infohighwaysengland. co. uk. Bitte sagen Sie uns, welches Format Sie benötigen. Es wird uns helfen, wenn Sie sagen, welche unterstützende Technologie Sie verwenden. Kampagnenmaterialien Wenn Sie helfen möchten, unsere Sicherheitsmeldungen über intelligente Autobahnen zu unterstützen, nutzen Sie bitte diese Ressourcen. PDF. 736KB 5 Seiten Diese Datei ist möglicherweise nicht für Benutzer von assistiver Technologie geeignet. Fordern Sie ein zugängliches Format an. Wenn Sie assistive Technologie (zB ein Screenreader) verwenden und eine Version dieses Dokuments in einem zugänglicheren Format benötigen, bitte email infohighwaysengland. co. uk. Bitte sagen Sie uns, welches Format Sie benötigen. Es wird uns helfen, wenn Sie sagen, welche unterstützende Technologie Sie verwenden. PDF. 222KB 1 Seite Diese Datei ist möglicherweise nicht für Benutzer von assistiver Technologie geeignet. Fordern Sie ein zugängliches Format an. Wenn Sie assistive Technologie (zB ein Screenreader) verwenden und eine Version dieses Dokuments in einem zugänglicheren Format benötigen, bitte email infohighwaysengland. co. uk. Bitte sagen Sie uns, welches Format Sie benötigen. Es wird uns helfen, wenn Sie sagen, welche unterstützende Technologie Sie verwenden. PDF. 604KB 1 Seite Diese Datei ist möglicherweise nicht für Benutzer von assistiver Technologie geeignet. Fordern Sie ein zugängliches Format an. Wenn Sie assistive Technologie (zB ein Screenreader) verwenden und eine Version dieses Dokuments in einem zugänglicheren Format benötigen, bitte email infohighwaysengland. co. uk. Bitte sagen Sie uns, welches Format Sie benötigen. Es wird uns helfen, wenn Sie sagen, welche unterstützende Technologie Sie verwenden. Ich arbeite mit einer großen Menge an Zeitreihen. Diese Zeitreihen sind grundsätzlich Netzwerkmessungen, die alle 10 Minuten kommen, und einige von ihnen sind periodisch (d. h. die Bandbreite), während einige andere Arent (d. h. die Menge des Routing-Verkehrs). Ich möchte einen einfachen Algorithmus für eine Online-Ausreißer-Erkennung. Grundsätzlich möchte ich die ganze historische Daten für jede Zeitreihe im Speicher (oder auf Festplatte) behalten und ich möchte jeden Ausreißer in einem Live-Szenario erkennen (jedes Mal, wenn ein neues Sample erfasst wird). Was ist der beste Weg, um diese Ergebnisse zu erreichen Im derzeit mit einem gleitenden Durchschnitt, um etwas Lärm zu entfernen, aber dann was als nächstes Einfache Dinge wie Standardabweichung, verrückt. Gegen den ganzen Datensatz funktioniert nicht gut (ich kann nicht annehmen, dass die Zeitreihen stationär sind), und ich möchte etwas genaueres, idealerweise eine Black Box wie: double outlierdetection (double vector, double value) wobei vector das Array von doppelten enthält Die historischen Daten und der Rückgabewert ist die Anomalie für den neuen Stichprobenwert. Fragte am 2. August um 20:37 Ja, ich habe angenommen, dass die Frequenz bekannt und spezifiziert ist. Es gibt Methoden, um die Frequenz automatisch abzuschätzen, aber das würde die Funktion erheblich erschweren. Wenn du die Häufigkeit abschätzen musst, versuchst du, eine eigene Frage darüber zu stellen - und ich werde wahrscheinlich eine Antwort geben. Aber es braucht mehr Platz, als ich in einem Kommentar zur Verfügung habe. Ndash Rob Hyndman Eine gute Lösung wird mehrere Zutaten haben, einschließlich: Verwenden Sie eine resistente, bewegte Fenster glatt, um Nichtstationarität zu entfernen. Die ursprünglichen Daten so ausdrücken, dass die Reste in Bezug auf die Glattheit etwa symmetrisch verteilt sind. Angesichts der Natur Ihrer Daten, ist es wahrscheinlich, dass ihre Quadratwurzeln oder Logarithmen symmetrische Residuen geben würde. Tragen Sie Kontroll-Chart-Methoden, oder zumindest Kontrolle Diagramm Denken, um die Residuen. Soweit das letzte Mal geht, zeigt das Kontroll-Diagramm-Denken, dass herkömmliche Schwellen wie 2 SD oder das 1,5-fache des IQR jenseits der Quartile schlecht funktionieren, weil sie zu viele falsche Out-of-Control-Signale auslösen. Die Leute benutzen gewöhnlich 3 SD in der Kontrollkarte Arbeit, wo 2,5 (oder sogar 3) mal die IQR jenseits der Quartile wäre ein guter Ausgangspunkt. Ich habe mehr oder weniger die Art der Rob-Hyndmans-Lösung umrissen und dabei zwei Hauptpunkte hinzugefügt: das Potenzial, die Daten wiederzugeben und die Weisheit, bei der Signalisierung eines Ausreißers konservativer zu sein. Im nicht sicher, dass Loess ist gut für einen Online-Detektor, obwohl, weil es nicht gut funktioniert an den Endpunkten. Sie könnten stattdessen etwas so einfaches wie ein bewegliches Medianfilter verwenden (wie bei Tukeys resistenten Glättung). Wenn Ausreißer nicht in Bursts kommen, können Sie ein schmales Fenster benutzen (5 Datenpunkte, vielleicht, die nur mit einem Burst von 3 oder mehr Ausreißern innerhalb einer Gruppe von 5 brechen). Sobald Sie die Analyse durchgeführt haben, um eine gute Re-Expression der Daten zu bestimmen, ist es unwahrscheinlich, dass Sie den Re-Ausdruck ändern müssen. Daher muss Ihr Online-Detektor wirklich nur die aktuellsten Werte (das neueste Fenster) verweisen, weil es nicht die früheren Daten überhaupt verwenden wird. Wenn Sie wirklich lange Zeitreihen haben, können Sie weiter gehen, um Autokorrelation und Saisonalität zu analysieren (wie wiederkehrende tägliche oder wöchentliche Schwankungen), um das Verfahren zu verbessern. Antwortete Aug 26 10 at 18:02 John, 1.5 IQR ist Tukey39s ursprüngliche Empfehlung für die längsten Whiskers auf einem Boxplot und 3 IQR ist seine Empfehlung für die Markierung von Punkten als Quoten outliersquot (ein Riff auf einer beliebten 6039s Phrase). Dies ist in viele Boxplot-Algorithmen eingebaut. Die Empfehlung wird theoretisch in Hoaglin, Mosteller, amp Tukey, Understanding Robust und Exploratory Data Analysis analysiert. Ndash w huber 9830 Oct 9 12 at 21:38 Dies bestätigt Zeitreihendaten, die ich versucht habe zu analysieren. Fensterdurchschnitt und auch Fensterfensterabweichungen. ((X - avg) sd) gt 3 scheinen die Punkte zu sein, die ich als Ausreißer markieren möchte. Nun zumindest warnen als Ausreißer, ich fasse etwas höher als 10 sd als extreme Fehler Ausreißer. Das Problem, in das ich hineingehe, ist, was eine ideale Fensterlänge ist, die mit etwas zwischen 4-8 Datenpunkten spielt. Ndash NeoZenith Jun 29 16 um 8:00 Neo Ihre beste Wette kann sein, mit einer Teilmenge Ihrer Daten zu experimentieren und bestätigen Sie Ihre Schlussfolgerungen mit Tests auf dem Rest. Sie könnten auch eine formellere Cross-Validierung durchführen (aber aufgrund der Interdependenz aller Werte ist besondere Aufmerksamkeit mit Zeitreihendaten erforderlich). Ndash w huber 9830 Jun 29 16 at 12:10 (Diese Antwort antwortete auf eine doppelte (jetzt geschlossene) Frage bei Erkennung von herausragenden Ereignissen, die einige Daten in grafischer Form vorstellten.) Die Ausreißererkennung hängt von der Art der Daten und von dem ab, was du bist Sind bereit, über sie zu übernehmen. Allzweck-Methoden beruhen auf robusten Statistiken. Der Geist dieses Ansatzes besteht darin, den Großteil der Daten in einer Weise zu charakterisieren, die nicht von Ausreißern beeinflusst wird und dann auf irgendwelche individuellen Werte hinweist, die nicht in diese Charakterisierung passen. Weil dies eine Zeitreihe ist, fügt es die Komplikation hinzu, um die Ausreißer laufend zu ermitteln. Wenn dies geschehen soll, wenn die Serie entfaltet ist, dann dürfen wir nur ältere Daten für die Erkennung verwenden, nicht zukünftige Daten. Darüber hinaus möchten wir als Schutz gegen die vielen wiederholten Tests eine Methode verwenden, die eine sehr niedrige falsche hat Positive Rate. Diese Überlegungen schlagen vor, einen einfachen, robusten bewegten Fensterausreißertest über die Daten zu führen. Es gibt viele Möglichkeiten, aber eine einfache, leicht verständliche und leicht umsetzbare basiert auf einer laufenden MAD: median absolute Abweichung vom Median. Dies ist ein stark robustes Maß an Variation innerhalb der Daten, verglichen mit einer Standardabweichung. Eine ausgedehnte Spitze wäre mehrere MADs oder mehr größer als der Median. Es gibt noch etwas Tuning. Wie viel von einer Abweichung von der Masse der Daten sollte als outlying und wie weit zurück in der Zeit sollte man aussehen Lets verlassen diese als Parameter für Experimente. Heres a R-Implementierung auf Daten x (1,2, ldots, n) angewendet (mit n1150, um die Daten zu emulieren) mit entsprechenden Werten y: Angewendet auf einen Datensatz wie die in der Frage dargestellte rote Kurve ergibt sich das Ergebnis: Die Daten Sind rot dargestellt, das 30-Tage-Fenster von median5MAD-Schwellen in grau und die Ausreißer - die sind einfach die Datenwerte über der grauen Kurve - in schwarz. (Die Schwelle kann nur am Ende des Anfangsfensters berechnet werden. Für alle Daten innerhalb dieses Anfangsfensters wird die erste Schwelle verwendet: Das ist der Grund, warum die graue Kurve zwischen x0 und x30 flach ist.) Die Auswirkungen der Änderung der Parameter sind (A) Erhöhung des Wertes des Fensters neigt dazu, die graue Kurve zu glätten und (b) die Erhöhung der Schwelle erhöht die graue Kurve. Wenn man das kennt, kann man ein erstes Segment der Daten nehmen und schnell die Werte der Parameter identifizieren, die die auslaufenden Peaks am besten aus dem Rest der Daten teilen. Wenden Sie diese Parameterwerte an, um den Rest der Daten zu überprüfen. Wenn ein Diagramm zeigt, dass sich die Methode im Laufe der Zeit verschlechtert, bedeutet dies, dass sich die Daten der Daten ändern und die Parameter möglicherweise neu eingestellt werden müssen. Beachten Sie, wie wenig diese Methode von den Daten übernimmt: Sie müssen nicht normal verteilt sein, sie müssen keine Periodizität ausstellen, die sie nicht einmal nicht negativ sein müssen. Alles, was davon ausgeht, ist, dass sich die Daten in angemessener Weise über die Zeit verhalten und dass die äußeren Peaks sichtbar höher sind als der Rest der Daten. Wenn jemand experimentieren möchte (oder eine andere Lösung mit dem hier angebotenen vergleichen), hier ist der Code, den ich verwendet habe, um Daten wie die in der Frage gezeigten zu produzieren. Ich vermute, anspruchsvolle Zeitreihe Modell wird nicht für Sie arbeiten, weil der Zeit, die es braucht, um Ausreißer mit dieser Methode zu erkennen. Daher ist hier ein Workaround: Erstens eine Basislinie normalen Verkehrsmuster für ein Jahr auf der Grundlage der manuellen Analyse der historischen Daten, die für die Zeit des Tages, Wochentag vs Wochenende, Monat des Jahres etc. verwenden. Verwenden Sie diese Grundlinie zusammen mit einigen einfachen Mechanismus (ZB gleitender Durchschnitt von Carlos vorgeschlagen), um Ausreißer zu erkennen. Sie können auch die statistische Prozesskontrollliteratur für einige Ideen überprüfen. Ja, das ist genau das, was ich tue: bis jetzt habe ich das Signal manuell in Perioden aufgeteilt, so dass für jeden von ihnen kann ich ein Konfidenzintervall definieren, in dem das Signal stationär sein soll, und deshalb kann ich Standardmethoden verwenden Als Standardabweichung. Das eigentliche Problem ist, dass ich das erwartete Muster für alle Signale, die ich zu analysieren habe, nicht entscheiden kann, und warum suchst du etwas Intelligenteres. Ndash gianluca Aug 2 10 at 21:37 Hier ist eine Idee: Schritt 1: Implementieren und Schätzen eines generischen Zeitreihenmodells auf einer einmaligen Basis basierend auf historischen Daten. Dies kann offline erfolgen. Schritt 2: Verwenden Sie das resultierende Modell, um Ausreißer zu erkennen. Schritt 3: Bei einer gewissen Frequenz (vielleicht jeden Monat) das Zeitreihenmodell neu kalibrieren (dies kann offline geschehen), so dass Ihr Schritt 2 Erkennung von Ausreißern nicht zu viel aus dem Schritt mit aktuellen Verkehrsmustern geht. Würde das für deinen Kontext arbeiten ndash user28 Aug 2 10 um 22:24 Ja, das könnte funktionieren. Ich dachte an einen ähnlichen Ansatz (Replizierung der Grundlinie jede Woche, die CPU-intensiv sein kann, wenn Sie Hunderte von univariate Zeitreihen zu analysieren haben). BTW die echte schwierige Frage ist quotwhat ist der beste Blackbox-Stil Algorithmus für die Modellierung eines völlig generischen Signal, unter Berücksichtigung von Lärm, Trend Schätzung und Saisonalität. AFAIK, jeder Ansatz in der Literatur erfordert eine wirklich harte quotparameter tuningquot Phase, und die einzige automatische Methode, die ich gefunden habe, ist ein ARIMA Modell von Hyndman (robjhyndmansoftwareforecast). Bin ich vermisse etwas ndash gianluca Auch hier geht es gut gut, wenn das Signal soll eine Saisonalität wie das haben, aber wenn ich eine ganz andere Zeitreihe (dh die durchschnittliche TCP Rundreise Zeit im Laufe der Zeit verwenden ), Wird diese Methode nicht funktionieren (da es besser wäre, diese mit einem einfachen globalen Mittelwert und Standardabweichung mit einem Schiebefenster mit historischen Daten zu behandeln). Wenn Sie bereit sind, ein allgemeines Zeitreihenmodell (das in seine Nachteile in Bezug auf Latenz usw. bringt) zu implementieren, bin ich pessimistisch, dass Sie eine allgemeine Implementierung finden, die zur gleichen Zeit einfach genug ist. Deutsch:. Englisch: v3.espacenet. com/textdoc? DB = EPODOC & ... PN = Für alle möglichen Zeitreihen arbeiten. Ndash user28 Aug 2 10 at 22:06 Ein weiterer Kommentar: Ich kenne eine gute Antwort könnte auch sein, du könntest die Periodizität des Signals abschätzen und den Algorithmus nach itquot entscheiden, aber ich habe keine echte gute Lösung für dieses andere gefunden Problem (ich spielte ein bisschen mit Spektralanalyse mit DFT und Zeitanalyse mit der Autokorrelationsfunktion, aber meine Zeitreihe enthält viel Lärm und solche Methoden geben einige verrückte Ergebnisse die meisten der Zeit) ndash gianluca Aug 2 10 um 22:06 A Kommentieren Sie zu Ihrem letzten Kommentar: that39s warum I39m auf der Suche nach einem generischeren Ansatz, aber ich brauche eine Art von quadratischen boxquot, weil ich canuldt irgendeine Annahme über das analysierte Signal machen kann, und deshalb kann ich den Questsatz für den Lernalgorithmus erstellen. Ndash gianluca Aug 2 10 at 22:09 Da es sich um eine Zeitreihe handelt, wird ein einfacher Exponentialfilter en. wikipedia. orgwikiExponentialsmoothing die Daten glätten. Es ist ein sehr guter Filter, da Sie nicht brauchen, um alte Datenpunkte zu akkumulieren. Vergleichen Sie jeden neu geglätteten Datenwert mit seinem ungehinderten Wert. Sobald die Abweichung eine bestimmte vordefinierte Schwelle überschreitet (je nachdem, was Sie glauben, dass ein Ausreißer in Ihren Daten ist), dann kann Ihr Ausreißer leicht erkannt werden. Beantwortet Apr 30 15 at 8:50 Du könntest die Standardabweichung der letzten N Messungen verwenden (du musst eine passende N auswählen). Eine gute Anomalie Ergebnis wäre, wie viele Standardabweichungen eine Messung aus dem gleitenden Durchschnitt ist. Beantwortet am 2. August 10 um 20:48 Vielen Dank für Ihre Antwort, aber was ist, wenn das Signal eine hohe Saisonalität aufweist (dh viele Netzwerkmessungen zeichnen sich durch ein tägliches und wöchentliches Muster zur gleichen Zeit aus, zB Nacht vs Tag oder Wochenende Vs Arbeitstage) Ein Ansatz, der auf Standardabweichung basiert, funktioniert in diesem Fall nicht. Ndash gianluca Zum Beispiel, wenn ich eine neue Probe alle 10 Minuten zu bekommen, und I39m eine Ausreißer Erkennung der Netzwerk-Bandbreite Nutzung eines Unternehmens, im Grunde um 18 Uhr diese Maßnahme wird fallen (dies ist ein erwartet Ein total normales Muster), und eine Standardabweichung, die über ein Schiebefenster berechnet wird, wird fehlschlagen (weil es eine Warnung sicher auslöst). Zur gleichen Zeit, wenn die Maßnahme um 4pm abfällt (abweichend von der üblichen Grundlinie), ist dies ein echter Ausreißer. Ndash gianluca Was ich tue, gruppiere die Messungen um Stunde und Wochentag und vergleiche Standardabweichungen davon. Immer noch nicht korrigieren Dinge wie Feiertage und Sommerwinter Saisonalität aber seine korrekte die meiste Zeit. Der Nachteil ist, dass Sie wirklich brauchen, um ein Jahr oder so von Daten zu sammeln, um genug zu sammeln, damit stddev beginnt Sinn zu machen. Spektralanalyse erkennt Periodizität in stationären Zeitreihen. Der Frequenzbereich Ansatz auf der Grundlage der spektralen Dichte Schätzung ist ein Ansatz, den ich als Ihren ersten Schritt empfehlen würde. Wenn für bestimmte Perioden Unregelmäßigkeit eine viel höhere Spitze als für diese Zeit typisch ist, dann wäre die Reihe mit solchen Unregelmäßigkeiten nicht stationär und die spektrale Anlsyse wäre nicht angemessen. Aber vorausgesetzt, Sie haben die Periode identifiziert, die die Unregelmäßigkeiten aufweist, die Sie in der Lage sein sollten, ungefähr zu bestimmen, was die normale Höhepunkthöhe sein würde, und kann dann eine Schwelle auf irgendeinem Niveau über diesem Durchschnitt setzen, um die unregelmäßigen Fälle zu bezeichnen. Antwortete am 3. September um 14:59 Ich schlage vor, das Schema unten, die sollte implementiert werden in einem Tag oder so: Sammeln Sie so viele Samples, wie Sie im Speicher halten können Entfernen Sie offensichtliche Ausreißer mit der Standardabweichung für jedes Attribut Berechnen und speichern Sie die Korrelationsmatrix Und auch der Mittelwert jedes Attributes Berechnen und speichern Sie die Mahalanobis Entfernungen aller Ihrer Proben Berechnen Ausreißer: Für die einzelne Probe, von der Sie wissen wollen, ihre Ausreißer: Abrufen der Mittel, Kovarianz Matrix und Mahalanobis Abstand s aus der Ausbildung Berechnen Sie die Mahalanobis Abstand d Für deine Probe Rückgabe des Perzentils, in dem d fällt (unter Verwendung der Mahalanobis-Distanzen vom Training) Das wird dein Outlier-Score sein: 100 ist ein extremer Ausreißer. PS Bei der Berechnung der Mahalanobis Entfernung. Verwenden Sie die Korrelationsmatrix, nicht die Kovarianzmatrix. Dies ist robuster, wenn die Probenmessungen in Einheit und Anzahl variieren.

No comments:

Post a Comment