J'ai une matrice 1 par 10000 de doubles stockés dans un fichier nommé "fecg.mat". La matrice représente l'amplitude d'un signal FECG enregistré.
Je l'ai tracé en fonction du temps (de 0 à 9999):
Pour supprimer la ligne de base, je me demande si je peux utiliser un filtre passe-haut. Comment concevoir un filtre approprié?
Le traitement du signal PS n'est pas mon domaine d'étude. Je ne sais pas comment filtrer un signal discret dans le domaine temporel.
Réponses:
Le moyen le plus simple de supprimer la ligne de base consiste à supprimer la moyenne:
En fait, la moyenne est le premier coefficient de la transformée de Fourier, il s'agit donc en fait d'un filtrage très pointu: vous éliminez le coefficient DC.
Si vous voulez un filtrage plus classique, vérifiez les fonctions comme
butter
et amis, qui synthétiseront un filtre IIR, puis utilisezfilter
pour filtrer votre signal.Matlab comprend également un outil de conception de filtres.
la source
MATLAB dispose d'un outil de conception de filtres appelé fdatool. Exécutez le fdatool dans MATLAB, il vous donne une interface graphique visuelle, dans laquelle vous pouvez modifier les paramètres du filtre. Choisissez un filtre passe-haut à partir de là et choisissez une fréquence de coupure. lorsque vous êtes satisfait de la forme du filtre, exportez-la vers l'espace de travail MATLAB. Disons que votre nom de filtre est myFilter et que votre nom de signal est mySignal. Puis pour filtrer le signal en type MATLAB: filterSignal = conv (mySignal, myFilter).
la source
Si vous connaissez le contenu fréquentiel du signal souhaité, vous pouvez passer un peu au-dessus de cette fréquence. Disons que vous ne vous intéressez qu'au signal supérieur à 2 Hz et que votre fréquence d'échantillonnage est de 100 Hz, alors vous pouvez le faire comme suit:
Cet exemple spécifique utilise un passe-haut Butterworth de troisième ordre.
la source
Le filtre à utiliser dépend vraiment de l'application spécifique. - Un filtre trop grossier pourrait supprimer les informations que vous recherchez!
L' algorithme Pan-Tompkins largement utilisé (pour la détection QRS) spécifie un filtre pour la suppression de la ligne de base dans les données ECG. Mais il est difficile de déterminer si ce filtre convient à votre application à partir des informations limitées que vous avez fournies. Veuillez élaborer pour une réponse plus précise.
la source
LPF
comme l'a dit. mais la ligne de base que j'ai obtenue a été retardée. Pour faire correspondre la ligne de base et le signal d'origine pour les soustraire, devrais-je déplacer l'un d'eux ou y a-t-il une meilleure façon?Je vous suggère d'utiliser un filtre adaptatif pour supprimer le bruit de base de 50 Hz. un filtre adaptatif lms ferait très bien l'affaire:
la source