WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

original signal mit matlab filtern

 

yakoub

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.01.2010, 14:01     Titel: original signal mit matlab filtern
  Antworten mit Zitat      
Hallo,
ich habe ein orginal signal ungefiltert und das möchte ich mit matlab filtern.
ich habe in GUI ein fenster wo das original signal geplottet ist und ich möchte ein gefiltertes signal als zweites fenster haben ,so in der form ,in meiner abbildung.
die filtereinstellungen: filtertyp=bandpass,500khz ,filterordnung=2,oberefreq=44khz,unterefreq=38khz.
das signal ist dargestellt so: in xlabel spannung in v,und ylabel abtastrate in s,die abtastrate 0.002ms mit 2000 samples
ich möchte das signal in zeit bereich schon filtern ,bevor man das signal in den frquenz bereich umwandelet, ist das mit diese angaben möglich?
hier ist der code und noch abbildung für das original
Code:
% --- gefiltertes Signal berechnen und darstellen
% wird ausgeführt nach Betätigung Button "Verlauf berechnen"
function plotten_Callback(hObject, eventdata, handles)
global SPANNUNG SAMPLES ABTAST MESSUNGEN Signalbeginn Signalende
%Abtastrate aus GUI Textfeld holen
abtastman = str2double(get(handles.abtinput,'String'));
ABTAST = abtastman;
% Samplerate aus GUI Textfeld holen
samplerate = str2double(get(handles.sampleinput,'String'));
SAMPLES = samplerate;
% Matrix mit Abtastwerten erstellen
abtastwerte = (1:samplerate)';
abtastrate = (abtastwerte*(abtastman*0.001));
% Anzahl der Messungen bestimmen
anzmessungen = (str2double(get(handles.anzspgtext,'String')))/...
               (str2double(get(handles.sampleinput,'String')));
               
MESSUNGEN = anzmessungen;
%-- Signalbeginn (Rauschtoleranz bis 33% des Signalmaximums)
% Einschwingvorgang berücksichtigen
einschwing = SAMPLES*0.01;
schwingstart = [];
for n = (0:MESSUNGEN-1)
% Maximum und Minimum der Messung bestimmen
Spannungmax = max(SPANNUNG((1+n*SAMPLES)+einschwing:SAMPLES+n*SAMPLES));
Spannungmin = min(SPANNUNG((1+n*SAMPLES)+einschwing:SAMPLES+n*SAMPLES));
% ersten wert finden der grösser als 33% des Maximums
% oder kleiner als 33% des Minimums ist
schwingwerte = find(...
(SPANNUNG((1+n*SAMPLES)+einschwing:SAMPLES+n*SAMPLES)...
 >(Spannungmax*0.33))|...
(SPANNUNG((1+n*SAMPLES)+einschwing:SAMPLES+n*SAMPLES)...
<(Spannungmin*0.33)));      
schwingwert = schwingwerte+einschwing;
schwingstart(end+1) = schwingwert(1);
end
schwingstartg = mean(schwingstart);
%tatsächlicher Signalbeginn -0,2ms
Signalbeginn = round(schwingstartg) - round(0.0002/(ABTAST*0.001));
% Signal in GUI ausgeben
signalausgabe = Signalbeginn*ABTAST;
set(handles.sigbeginninput,'String',signalausgabe)
% Signalende (Rauschtoleranz bis 33% des Signalmaximums)
schwingende = [];
for n = (0:MESSUNGEN-1)
% nur mit positiven Signalspitzen arbeiten    
[pks,locs] = findpeaks(SPANNUNG(Signalbeginn+n*SAMPLES:SAMPLES+n*SAMPLES));
pksamples = numel(pks);
% Maximum der Messung bestimmen
[Umax Upos] = max(pks);
% ersten wert finden der nach dem Maximum kleiner als 33% wird
endwerte = find((pks(Upos:pksamples)<(Umax*0.33)));
endwert = locs(endwerte(1)+Upos)+Signalbeginn;
schwingende(end+1) = endwert;
end
schwingendeg = mean(schwingende);
% tatsächliches Signalende +0,8ms
Signalende = round(schwingendeg) + round(0.0008/(ABTAST*0.001));
% Signalende in GUI ausgeben
signalendausgabe = Signalende*ABTAST;
set(handles.sigendeinput,'String',signalendausgabe)

% Plot ungefiltertes Signal
for n = (0:anzmessungen-1)
spgplot = SPANNUNG(1+n*samplerate:samplerate+n*samplerate);
plot(handles.spgverlauf,abtastrate, spgplot, 'Color', [0 0.7 0]);
hold on
end
hold off
xlabel(handles.spgverlauf,'Abtastrate [s]')
ylabel(handles.spgverlauf,'Spannung [V]')

 


o-signal.png
 Beschreibung:

Download
 Dateiname:  o-signal.png
 Dateigröße:  55.44 KB
 Heruntergeladen:  644 mal


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.