À basse fréquence, filtre passe-haut pour MATLAB

Je vais avoir vraiment du mal à essayer de créer/utiliser un filtre en MATLAB qui est assez précis à très basses fréquences.

Je suis intéressé par toute une gamme de signaux entre 5 et 50 hz, la bande haute n'est pas trop un souci, ce que je veux vraiment faire, c'est de filtrer tout au dessous de 5 hz. Cependant, je suis la recherche du roll-off avec de Butterworth filtres de fait très peu en termes de filtrage, c'est juste atténuer le signal à environ la moitié de ce que le signal normal est.

J'ai essayé les deux méthodes. A été en utilisant MATLABs outil de filtre fdatool et l'autre était une méthode manuelle ci-dessous:

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

ou

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

Quelqu'un peut-il me donner une suggestion ou un code qui peut me donner de meilleurs résultats?

  • Comment avez-vous conçu votre filtre de Butterworth? Pouvez-vous mettre un peu de code?
  • J'ai essayé les deux méthodes. A été en utilisant MATLABs outil de filtre (fdatool) et l'autre était une méthode manuelle ci-dessous: 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);
  • À l'avenir, merci de poster le code en question et de le formater correctement.
  • Désolé, accidentellement posté le commentaire donc essayé de modifier rapidement. Toutes les suggestions?
  • double possible de filtrage passe-Haut dans MATLAB
InformationsquelleAutor ritchie888 | 2013-03-07