Low-frequency, high-pass-filter für MATLAB

Ich habe ein echtes Problem versucht, zu erstellen oder verwenden Sie das filter in MATLAB das ist genau genug bei sehr niedrigen Frequenzen.

Ich bin daran interessiert, eine Reihe von Signalen, die zwischen 5 und 50Hz, das high-band nicht allzu viel von einer Besorgnis, was ich wirklich tun wollen ist, filter alles unter 5Hz. Aber ich finde den roll-off mit Butterworth-Filter ist zu tun sehr wenig in Bezug auf die Filterung, es ist nur dämpfen das signal um etwa die Hälfte, was das normale signal ist.

Habe ich versucht, zwei Methoden. Man war mit MATLABs filter-tool fdatool und die andere war eine manuelle Methode unten:

filtLow = 5;
filtHigh = 50;
Fs = 1000;
[b, a] = butter(1, filtLow/(Fs/2), 'high');
y = filtfilt(b, a, data);

oder

[b, a] = butter(1, [filtLow/(Fs/2), filtHigh/(Fs/2)]);
y = filtfilt(b, a, data);

Kann mir jemand eine Anregung oder code kann mir bessere Ergebnisse?

  • Wie hast du das design der Butterworth-filter? Kannst du etwas code?
  • Ich habe versucht, zwei Methoden. Man war mit MATLABs filter-tool (fdatool) und die andere war eine manuelle Methode unten: filtLow = 5; filtHigh = 50; Fs = 1000; [b, a] = butter(1, filtLow/(Fs/2), 'high'); y = filtfilt(b, a, data); OR [b, a] = butter(1, [filtLow/(Fs/2), filtHigh/(Fs/2)]); y = filtfilt(b, a, data);
  • In der Zukunft, bitte posten-code in der Frage, und formatieren Sie Sie korrekt.
  • Sorry, ausversehen gepostet, der Kommentar, so versucht, um es zu Bearbeiten schnell. Irgendwelche Vorschläge?
  • mögliche Duplikate von High-pass-Filterung in MATLAB
InformationsquelleAutor ritchie888 | 2013-03-07
Schreibe einen Kommentar