Für einen anderen Ansatz können Sie das exponentielle gleitende Durchschnittsfenster abschneiden und dann Ihr gefiltertes Signal berechnen, indem Sie eine Faltung zwischen Ihrem Signal und dem fensterartigen Exponential durchführen. Die Faltung kann mit Hilfe der freien CUDA-FFT-Bibliothek (cuFFT) berechnet werden, da, wie Sie vielleicht wissen, die Faltung als punktweise Multiplikation der beiden Signale in der Fourier-Domäne ausgedrückt werden kann (Dies ist der treffende Name Faltungstheorem, Die mit einer Komplexität von O (n log (n)) verläuft). Diese Art von Ansatz wird Ihre CUDA-Kernel-Code zu minimieren und laufen sehr sehr schnell, auch auf einer GeForce 570 Besonders, wenn Sie alle Ihre Berechnungen in Single (float) Präzision zu tun. Ich würde vorschlagen, die oben genannten Differenz-Gleichung zu manipulieren, wie unten angegeben und dann mit CUDA Thrust primitives. DIFFERENCE GLEICHSTELLUNG MANIPULATION - EXPLIZIT FORM DER DIFFERENZGLEICHUNG Durch einfache Algebra können Sie folgendes finden: Dementsprechend ist die explizite Form die folgende: CUDA THRUST IMPLEMENTATION Sie können das obige explizite Formular durch die folgenden Schritte implementieren: Initialisieren einer Eingabesequenz dinput to Alpha mit Ausnahme von dinput0 1. Definiere einen Vektor d1overbetatothen gleich 1, 1beta, 1beta2, 1beta3. Multiplizieren Sie elementweise dinput durch d1overbetatothen Führen Sie eine inclusivescan, um die Sequenz der yn betan zu erhalten Teilen Sie die obige Sequenz durch 1, 1beta, 1beta2, 1beta3. Der obige Ansatz kann für Linear Time-Varying (LTV) - Systeme empfohlen werden. Für lineare zeitinvariante (LTI) Systeme kann der von Paul erwähnte FFT-Ansatz empfohlen werden. Ich bin ein Beispiel für diesen Ansatz, indem Sie CUDA Thrust und cuFFT in meiner Antwort auf FIR-Filter in CUDA. Moving-Average Filter von Verkehrsdaten Dieses Beispiel zeigt, wie die Verkehrsfluss-Daten mit einem gleitenden durchschnittlichen Filter mit einem 4-Stunden-Schieben zu glätten Fenster. Die folgende Differenzgleichung beschreibt einen Filter, der die aktuelle Stunde und die drei vorhergehenden Datenstunden mittelt. Importieren Sie die Verkehrsdaten und ordnen Sie die erste Spalte der Fahrzeugzählungen dem Vektor x zu. Erstellen Sie die Filterkoeffizientenvektoren. Berechnen Sie den 4-Stunden-gleitenden Durchschnitt der Daten und zeichnen Sie die ursprünglichen Daten und die gefilterten Daten. MATLAB und Simulink sind eingetragene Warenzeichen von The MathWorks, Inc. Bitte lesen Sie mathworkstrademarks für eine Liste anderer Marken, die Eigentum von The MathWorks, Inc. sind. Andere Produkt - oder Markennamen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Eigentümer. Wählen Sie Ihre CountryQuestion aus. 9.2 Für einen siebenmonatigen gleitenden mittleren Filter schreiben Sie. 9.2 Für einen Sieben-Term-Gleitmittel-Filter schreiben Sie einen Ausdruck für die a. Differenzgleichung b. Impulsantwort c. Übertragungsfunktion d. Frequenzgang 9.3a. Skizzieren Sie den Frequenzgang für einen siebenmonatigen gleitenden Mittelwertfilter mit dB für Größe und Grad für Phase. Verwenden Sie digitale Frequenzschritte von pi8 Radiant oder kleiner. B. Mit Verweisen auf die Frequenzantwortskizze, erklären Sie, warum dieser Filter sicherstellen kann, dass keine Verzerrung des Durchlassbandes auftreten wird. Beste Antwort
No comments:
Post a Comment