signal filtern um Merkmale zu berechnen,selbe frage nochmal
gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 09.02.2010, 18:53
Titel: signal filtern um Merkmale zu berechnen,selbe frage nochmal
Hallo,
ich habe echt ein problem ,und zwar ich weiss gar nicht wie ich ein signal filtern kann,ich habe die frage bis jetzt 3 mal gestellt.
es geht um ein signalspektrum ,das man filtern muss ,um störtsignal zu beseitigen.
die spannungmesswerte,mit denen das orginal signal erstellt wurde ,wurden mit Labview ohne filter aufgenommen, und dann mit matlab eingelesen und es komm ein ungefiltertes signal wie auf dem bild im Anhang.
die Merkmale berechnet man aus dem FFT spektrum,auch im Anhang zu sehen.
aber im fft spektrum habe ich störsignale die ich beseitigen muss,und dachte an einem filter.
wie kann ich ein filter in meinem code benutzen,kennt sich jemanden aus mit filter und sowas?
das ist der code für fft spektrum ,und wenn meine frage nicht klar ist bitte fragen und vielen dank
Code:
% --- Spektrum darstellen % wird ausgeführt nach Betätigung Button "Spektrum berechnen" function fftstart_Callback(hObject, eventdata, handles) global SPANNUNG SAMPLES ABTAST MESSUNGEN SPKTRM Signalbeginn Signalende spektrum
frequenz = 1/(ABTAST*0.001); %Frequenz
T = (Signalende-Signalbeginn+1)/frequenz; %Abtastperiodendauer
t = 0:1/frequenz:T; %Abtastzeitwerte in Matrix
t_diff = t(end)-t(1); %Zeitdifferenz
SPKTRM = [];
% Plot Spektrum for n = (0:MESSUNGEN-1) % Berechnung FFT
spektrum = fft(SPANNUNG(Signalbeginn+n*SAMPLES:Signalende+n*SAMPLES));
SPKTRM = [SPKTRM; spektrum];
% nur im positiven Bereich
spktrmabs = abs(spektrum);
% Gleichanteil und spiegelung entfernen
fspktrm = spktrmabs(2:ceil(length(spktrmabs)/2));
% Plot Spektrum stem(handles.spektrum,... linspace(1/t_diff,length(fspktrm)/t_diff,length(fspktrm)),fspktrm,...
'fill','MarkerSize',1,'Color', [00.70]);
hold on
end hold off
xlabel(handles.spektrum,'Frequenz [Hz]')
Du könntest Deine Spannungswerte filtern mit Hilfe der Anwendung von
"butter" und "filter"
Da die Störung niederfrequenter ist als Dein Nutzsignal, wäre ein Bandstop oder Highpass-Filter zu nutzen.
Code:
[B,A]=butter(8,0.2,'high'); % Hochpassfilter: Das zweite Argument ist das Verhältnis aus Filterfrequenz zu halber Abtastfrequenz [B,A]=butter(8,[0.1,0.2],'stop'); % Bandsperre
SPGfiltered=filter(B,A,SPANNUNG);
Eine weitere Möglichkeit wäre ein direkter Eingriff in die FFT.
Alle FFT-Werte, bei denen die Störung vorliegt, zu Null setzen und dann rücktransformieren. Vorsicht mit Skalierungswerten und aufpassen mit der Phase.
Verfasst am: 11.02.2010, 16:39
Titel: signal filtern um Merkmale zu berechnen,selbe frage nochmal
Hallo zusammen,
an aj.geissler.
mit dem folgenden code habe ich probiert spannungwerte zu filtern aber ,es ändert sich nichts .
[B,A]=butter(8,0.2,'high'); % Hochpassfilter: Das zweite Argument ist das Verhältnis aus Filterfrequenz zu halber Abtastfrequenz
[B,A]=butter(8,[0.1,0.2],'stop'); % Bandsperre
SPGfiltered=filter(B,A,SPANNUNG);
aber die andere möglichkeit mit Eingriff auf FFT verstehe nicht ganz.
was genau meinst du damit ?
an marshallprank.
mit deinem code ,habe ich auch probiert ,aber deine ganze angaben ,woher kommt das alles ,ich habe probiert ,aber igendwie liefert mir matlab kein fft spektrum und möchte gern wissen ,wie du auf diesen code benutzt hast?
viellen dank
Ich habe das weiße Rauschen in einem Band begrenzt. ich sollte die Einwirkung vom rauschen nur in einem bestimmten Frequenzband untersuchen,wo eingentlich mein Signal sich befindet.
Grüße
gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 11.02.2010, 20:19
Titel: signal filtern um Merkmale zu berechnen,selbe frage nochmal
Hallo,
in dein code hast du bandbreite und mittenfrequenz angegeben ,was ich gar nicht habe ,du machst sowas wie eine Glockenkurve ,das habe ich raus bekommen ,aber normalerweise ,wenn das rauschen begrenzt ist ,hat man andere ergebnisse ,was ich in dem fall nicht habe ,ich meine die ergbnisse nach dem filter ,sollen anderes aussehen.
die bandbreite und mittenfrequenz soll ich selber aus ffm spektrum berechnen ,hoffe hast du verstanden ,was ich meine?
vielen dank für deine hilfe
gruss
ja ok ich verstehe was du meinst..
sorry ich kann aber weiter nicht helfen:-)
Grüße
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.