Entfernen Sie hochfrequentes Rauschen in Messdaten
Dieses Beispiel zeigt, wie ein Tiefpassfilter entworfen und damit hochfrequentes Rauschen in Messdaten entfernt wird. Hochfrequentes Rauschen entsteht durch Komponenten eines Signals, die schneller variieren als das interessierende Signal. Durch die Entfernung von hochfrequentem Rauschen kann das interessierende Signal kompakter dargestellt und eine genauere Analyse ermöglicht werden. Ein Tiefpassfilter ist eine gängige Technik zum Entfernen von hochfrequentem Rauschen in einem Signal.
Daten lesen
Der ThingSpeak™ -Kanal 12397 enthält Daten von der MathWorks® Wetterstation in Natick, Massachusetts. Die Daten werden einmal pro Minute erfasst und an ThingSpeak gesendet. Feld 3 des Kanals enthält Daten zur relativen Luftfeuchtigkeit. Lesen Sie die Daten mit der Funktion thingSpeakRead
.
[humidity,time] = thingSpeakRead(12397,'NumPoints',8000,'Fields',3);
Designfilter
Ein Filter ist ein Prozess, der unerwünschte Komponenten aus einem Signal entfernt. Ein Tiefpassfilter soll niederfrequente Komponenten durchlassen und höherfrequente Komponenten in einem Signal blockieren. DSP System Toolbox™ bietet mehrere Techniken zum Definieren eines Tiefpassfilters. In diesem Beispiel wird ein FIR-Filter (Finite Impulse Response) dritter Ordnung entworfen. Die Abtastfrequenz beträgt einmal alle 60 Sekunden (Fs=1/60), da die Daten in Kanal 12397 einmal pro Minute hochgeladen werden. Der Tiefpassfilter hält niederfrequente Anteile zurück und dämpft hochfrequente Anteile mit einem Zeitraum von weniger als 24 Stunden.
filtertype = 'FIR'; Fs = 1/60; N = 3; Fpass = 1/(24*60*60); Fstop = 1/(2*60*60); Rp = 0.5; Astop = 50; LPF = dsp.LowpassFilter('SampleRate',Fs,... 'FilterType',filtertype,... 'PassbandFrequency',Fpass,... 'StopbandFrequency',Fstop,... 'PassbandRipple',Rp,... 'StopbandAttenuation',Astop);
Verarbeiten und senden Sie die Daten an ThingSpeak
Verarbeiten Sie die relativen Luftfeuchtigkeitsdaten mithilfe des Tiefpassfilters und senden Sie die gefilterten Luftfeuchtigkeitsdaten mithilfe der Funktion thingSpeakWrite
an einen ThingSpeak Kanal.
Output = step(LPF, humidity);
Mit der MATLAB Analysis-App können Sie die Daten in einen Kanal schreiben. Wenn Sie die MATLAB Visualizations-App verwenden, können Sie auch ein Diagramm der Daten hinzufügen. Ändern Sie channelID
und writeAPIKey
, um Daten an Ihren Kanal zu senden.
channelID = 17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,Output,'Timestamps',time,'WriteKey',writeAPIKey); plot(time,humidity,time,Output); ylabel('Relative Humidity'); legend('Raw Data', 'Filtered Data');
Das Diagramm zeigt eine dramatische Reduzierung des hochfrequenten Rauschens.
Siehe auch
Funktionen
Verwandte Themen
- Compensate for Delay and Distortion Introduced by Filters (Signal Processing Toolbox)
- Filter Design and Analysis (DSP System Toolbox)