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

Filter

 

Student1989
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 11:59     Titel: Filter
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine kleines Problem mit einer Filteraufgabe. Ich habe viele Sensordaten (dataSensor) und möchte diese nun Filtern. Dazu habe ich mir eine Filter erzeugen lassen mit folgenden Werten:
fsampling = 8kHz;
fcutoff = 30Hz;
fnyquist = 4kHz;
wnyquist = 2*pi*(fcutoff/fnyquist);

Der Befehl zum filtern lautet:

[b,a] = butter(3,wn,'high');
yFilter = filter(b,a,dataSensor);

Jedoch kommt bei mir folgende Fehlermeldung: "Subscript indices must either be real positive integers or logical".

Was mache ich falsch??
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 12:07     Titel:
  Antworten mit Zitat      
So werden bei mir die Filterkoeffizienten a und b berechnet. Du darfst nicht die Einheit hinter den Wert schreiben Wink

Code:

sampling = 8*10^3; % kHz
fcutoff = 30; % Hz
fnyquist = 4*10^3; % kHz
wn= 2*pi*(fcutoff/fnyquist); % normierte Grenzfrequenz des Filters in [rad/s]
[b,a] = butter(3,wn,'high');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 12:38     Titel:
  Antworten mit Zitat      
Das habe ich auch im Code nicht gemacht - es sollte nur der Verdeutlichun dienen Smile.
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 13:02     Titel:
  Antworten mit Zitat      
Bei mir werden die Koeff berechnet...

Geht das bei dir auch noch?

Code:
a = 1.0000   -2.7042    2.4505   -0.7435
b = 0.8623   -2.5868    2.5868   -0.8623


Wenn die Fehlermeldung bei filter(...) kommt, muss etwas mit den Sensordaten nicht in Ordnung sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 13:12     Titel:
  Antworten mit Zitat      
Die Koefizienten werden bei mir ebenfalls berechnet. Die Fehlermeldung kommt bei filter(). Allerings bei jedem Messatz (ich habe ca 50 Messätze). Was kann an den Daten nicht in Ordnung sein?
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 13:15     Titel:
  Antworten mit Zitat      
Noch ein kleines Bsp:

Code:

x_wgn = wgn(1000,1,1);% weißes Rauschen als Testsignal
y=filter(b,a,x_wgn);
plot(x_wgn);
hold on;
plot(y,'r');
 


Edit: Was ist dataSensor denn für ein Datentyp?
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 13:22     Titel:
  Antworten mit Zitat      
es ist ein integer
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 13:26     Titel:
  Antworten mit Zitat      
Wenn ich dein Beispiel ausprobiere erhalte ich auch die Fehlermeldung.
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 13:27     Titel:
  Antworten mit Zitat      
Wenn ich in dem Bsp. das x_wgn in integer umwandel...

Code:

x_wgn = int16(fix(x_wgn));
 


bekomme ich folgende Fehlermeldung:

Zitat:

??? Function 'filter' is not defined for values of class 'int16'.

Error in ==> filter at 37
[varargout{1:nargout}] = builtin('filter', varargin{:});


Mach doch mal einen Typcast
Code:
. Ist es denn ein Array...oder evtl. cell?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 13:30     Titel:
  Antworten mit Zitat      
Sorry...aber da bin ich dann überfragt Question Das Bsp. läuft bei mir
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 13:43     Titel:
  Antworten mit Zitat      
Ansonsten fällt mir jetzt nur auf die Schnelle ein, es mal mit diesem Filter zu probieren.

http://www.gomatlab.de/window-sinc-filter-t19156.html

Der Aufruf zur Erstellung des Filters wäre dann...

Code:
h = window_sinc_filter(64, fcutoff, 0, sampling, 'high', 'blackman', 'n');


Die Filterlänge habe ich mal auf 64 gesetzt...je nachdem welche Dämpfung im Sperrbereich gewünscht ist, musst die sie halt ändern. Wie es dann weiter geht, ist ja in dem Thread beschrieben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Student1989
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 22.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 13:58     Titel:
  Antworten mit Zitat      
also dein Beispiel funktioniert nun aber bei meinen werten ist noch immer die gleiche fehlermeldung...
_________________

--------------
C'est la vie!
--------------
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 14:01     Titel:
  Antworten mit Zitat      
Was hast du jetzt anders gemacht, damit mein Bsp. läuft?

Kannst du dann nicht mal deine Daten hier anhängen...z.B. als gepackter mat-file.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 09.08.2011, 14:07     Titel: Re: Filter
  Antworten mit Zitat      
Hallo Student1989,

Die Fehlermedlung würde auftreten, wenn Du eine Variable mit Namen "filter" erstellt hättest. Überprüfe dies mal mit:
Code:

Das Verdecken von Funktionen durch Variablen ist ein beliebtes Problem.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.08.2011, 14:19     Titel:
  Antworten mit Zitat      
Hi Jan,

gut zu wissen...an so was denke ich, wenn überhaupt, immer zuletzt Wink

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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 - 2025 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.