Sunteți pe pagina 1din 59

UNIVERSITATEA POLITEHNICA DIN BUCUREȘTI

FACULTATEA DE INGINERIE MEDICALĂ

PRELUCRAREA SEMNALELOR BIOMEDICALE


PROIECT III

1
Filtre digitale
❑Tipuri de filtre
❑Proiectarea filtrelor în concordanță cu tipul de zgomot și
semnalul analizat
❑Evaluarea performanțelor
Amintiri.....
Amintiri.....
Amintiri.....

Perioada de eșantionare
Valori reale ale semnalului: gain, base
Amintiri.....

fft
Valori reale ale semnalului: gain, base
Frecvența de eșantionare
Fs ≥2Fmax, Fmax=Fs/2
Amintiri.....
ECG+0.1 sin(𝟐 ∙ 𝝅 ∙ 𝟓𝟎 ∙t), Fs=250 Hz
zgomot:Asin(𝟐 ∙ 𝝅 ∙ 𝒇 ∙t), aditiv
f=50, A=0.1
Zgomot+ECG
Amintiri.....

fft
Fs ≥2Fmax, Fmax=Fs/2
zgomot:Asin(𝟐 ∙ 𝝅 ∙ 𝒇 ∙t), aditiv, f=50, A=0.1
Zgomot+ECG
Problemă identificată: interferența de la rețeaua de la
rețeaua de alimentare cu energie electrică (componenta 50 Hz)

Ce ne propunem: idei, soluții pentru minimizarea/


eliminarea acestui tip de zgomot
Metode de minimizare:la nivel fizic (hardware)
❑ Ecranarea magnetica (costisitoare)
❑ Torsadarea cablurilor
❑ Impedanță de intrare mare pentru amplificatorul de
instrumentație

Metode de eliminare:la nivel fizic (hardware)/software


❑ FILTRARE
FILTRARE
Def1: eliminarea zgomotului din semnalul analizat

Def2: reținerea componentei utile (acele componente care nu


aparțin zgomotului) din semnalul analizat
FILTRARE
Frecvență

H
X Y

Y=H∙ 𝑿, 𝒅𝒆 𝒖𝒏𝒅𝒆 |Y|=|H| ∙ |𝑿|


Tipuri de filtre
Caracteristica amplitudine-frecvență

1.Filtru trece-jos
2.Filtru trece-sus
3.Filtru trece-bandă
4.Filtru oprește-bandă
FILTRU TRECE JOS-FTJ/ LP FILTER

Modulul filtrului
Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|

0
Fs/2

Frecvența
FILTRU TRECE JOS-FTJ/ LP FILTER Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|
1 fc=40 Hz

0
FILTRU TRECE JOS-FTJ/ LP FILTER
FILTRU TRECE SUS-FTS/ HP FILTER

Y=H∙ 𝑿

Modulul filtrului
|Y|=|H|∙ |𝑿|

Fs/2
Frecvența
FILTRU TRECE SUS-FTS/ HP FILTER Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|
fc=40 Hz 1
Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|

0
FILTRU TRECE SUS-FTS/ HP FILTER
FILTRU TRECE BANDĂ-FTB/ BP FILTER

Modulul filtrului
Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|

Fs/2
Frecvența
FILTRU TRECE BANDĂ-FTB/ BP FILTER Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|
fc=40 Hz 1 fc=60 Hz
Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|

0 0
FILTRU TRECE BANDĂ-FTB/ BP FILTER
FILTRU OPREȘTE BANDĂ-FOB/ BS FILTER

1 fc=40 Hz fc=60 Hz 1
Y=H∙ 𝑿
|Y|=|H|∙ |𝑿|

0
FILTRU OPREȘTE BANDĂ-FOB/ BS FILTER
Filtre:principii în proiectare
Alegerea frecvenței de tăiere

Alegerea tipului de filtru

Important! Eliminarea, prin filtrare, unei benzi de frecvență cât mai


restrânse din semnalul util

=>Proiectarea filtrului, în concordanță cu tipul de zgomot


(frecvența de tăiere) și semnalul de interes (tipul de filtru)
Tipuri de filtre: fereastra ideală
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere și se determină
pozițiile acestora în vectorul frecvență, construit în etapa anterioară
2. Proiectarea ferestrei ideale:
Crearea unui vector cu toate elementele 0, de dimensiune egală cu vectorul frecvență
Pentru un filtru trece jos: elementele de pe pozițiile mai mici decât cea a frecvenței de, tăiere vor fi înlocuite cu 1
Pentru un filtru trece jos: elementele de pe pozițiile mai mari decât cea a frecvenței de, tăiere vor fi înlocuite cu 1
Analog, pentru un filtru trece/oprește bandă

Y=Fereastră 𝐢𝐝𝐞𝐚𝐥ă ∙ |𝑿|


Tipuri de filtre: fereastra ideală
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere și se determină
pozițiile acestora în vectorul frecvență, construit în etapa anterioară
2. Proiectarea ferestrei ideale
3. Operația de filtrare: înmulțirea dintre coeficenții ferestrei ideale (modulul coeficenților filtrului) și modulul
transformatei Fourier, calculată pentru semnalul cu zgomot. Se obține răspunsul în frecvență. Reprezentarea
grafică a răspunsului în frecvență: semnal_filtrat=f(frecvență)

Y=Fereastră 𝐢𝐝𝐞𝐚𝐥ă ∙ |𝑿|


Tipuri de filtre: proiectare
Răspunsul la impuls
FIR-Filtru cu răspuns finit la impuls

IIR-Filtru cu răspuns finit la impuls


1.BUTTERWORTH
2.CHEBISEV1
3.CHEBISEV2
4.ELIPTIC
5.NOTCH
FILTRU CU RĂSPUNS FINIT LA IMPULS/ FIR

fc?

Y=H∙ 𝑿 1, 𝑓 ≤ 𝑓𝑐
𝐻 =ቊ
|Y|=|H|∙ |𝑿| 0, 𝑓 ≥ 𝑓𝑐
FILTRU CU RĂSPUNS FINIT LA IMPULS/ FIR

sinc(t)=sin(t)/t

y=h∗ 𝒙
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR

fc?
𝐻 =?
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR

y=h∗ 𝒙
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR-BUTTERWORTH

fc? fc?
Tipuri de filtre
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR

fc?
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR-CHEBISEV1

fc? fc?
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR-CHEBISEV2

fc? fc?
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR-ELIPTIC

fc? fc?
Filtru NOTCH
FIR vs IIR
FIR vs IIR
FILTRU CU RĂSPUNS INFINIT LA IMPULS/ IIR
FILTRU CU RĂSPUNS FINIT LA IMPULS/ FIR
Filtre analogice
FTJ FTS

FTB FOB
Filtre analogice
Implementare Matlab
Pentru utilizatorii Octave: este necesar mai întâi să descărcați/ încărcați librăria corespunzătoare funcțiilor
utilizate în prelucrarea semnalelor: pkg load signal
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere
2. Proiectarea filtrului:
FILTRU FIR
[A, B]=fir1(N,Wn,tip_filtru):
[B, A]=fir1(N,Wn,tip_filtru) sau
[B]=fir1(N,Wn,tip_filtru), întrucât pentru filtrele FIR A=1, unde:
N-ordinul filtrului, de exmplu N=100
Wn= frecventa_taiere/Fmax, Fmax=Fs/2
tip_filtru= ‘high’ (FTS) sau ‘low’ (FTJ)

[A, B]=fir1(N,Wn,tip_filtru):
[B, A]=fir1(N,[Wn1,Wn2],tip_filtru) sau
[B]=fir1(N,[Wn1,Wn2],tip_filtru), întrucât pentru filtrele FIR A=1, unde:
N-ordinul filtrului, de exmplu N=100
Wn1= frecventa_taiere1/ Fmax, Fmax=Fs/2
Wn2= frecventa_taiere2/ Fmax, Fmax=Fs/2
tip_filtru= ‘bandpass’ (FTB) sau ‘STOP’ (FTB)
Implementare Matlab
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere
2. Proiectarea filtrului:
FILTRU IIR BUTTERWORTH
[A, B]=butter(N,Wn,tip_filtru),
[B, A]=butter(N,Wn,tip_filtru), unde:
N-ordinul filtrului, de exmplu N=10
Wn= frecventa_taiere/ Fmax, Fmax=Fs/2
tip_filtru= ‘high’ (FTS) sau ‘low’ (FTJ)

[A, B]=butter(N,[Wn1,Wn2],tip_filtru)
[B, A]=butter(N,[Wn1,Wn2],tip_filtru), unde:
N-ordinul filtrului, de exmplu N=10
Wn1= frecventa_taiere1/ Fmax, Fmax=Fs/2
Wn2= frecventa_taiere2/ Fmax, Fmax=Fs/2
tip_filtru= ‘bandpass’ (FTB) sau ‘STOP’ (FTB)
Implementare Matlab
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere
2. Proiectarea filtrului:
FILTRU IIR CHEBISEV1
[A, B]=cheby1(N,Rp,Wn,tip_filtru)
[B, A]=cheby1(N,Rp,Wn,tip_filtru), unde:
N-ordinul filtrului, de exmplu N=10
Rp-riplu în banda de trecere, de exemplu Rp=0.028
Wn= frecventa_taiere/Fmax, Fmax=Fs/2
tip_filtru= ‘high’ (FTS) sau ‘low’ (FTJ)

[A, B]=cheby1(N,Rp,Wn,tip_filtru)
[B, A]=cheby1(N,Rp,[Wn1,Wn2],tip_filtru), unde:
N-ordinul filtrului, de exmplu N=10
Rp-riplu în banda de trecere, de exemplu Rp=0.028
Wn1= frecventa_taiere1/Fmax, Fmax=Fs/2
Wn2= frecventa_taiere2/Fmax, Fmax=Fs/2
tip_filtru= ‘bandpass’ (FTB) sau ‘STOP’ (FTB)
Implementare Matlab
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere
2. Proiectarea filtrului:
FILTRU IIR CHEBISEV2
[A, B]=cheby2(N,Rs,Wn,tip_filtru)
[B, A]=cheby2(N,Rs,Wn,tip_filtru), unde :
N-ordinul filtrului, de exmplu N=10
Rs-riplu în banda de oprire, de exemplu Rs=35
Wn= frecventa_taiere/Fmax, Fmax=Fs/2
tip_filtru= ‘high’ (FTS) sau ‘low’ (FTJ)

[A, B]=cheby2(N,Rs,Wn,tip_filtru)
[B, A]=cheby2(N, Rs,[Wn1,Wn2],tip_filtru), unde:
N-ordinul filtrului, de exmplu N=10
Rs-riplu în banda de oprire, de exemplu R2=35
Wn1= frecventa_taiere1/Fmax, Fmax=Fs/2
Wn2= frecventa_taiere2/Fmax, Fmax=Fs/2
tip_filtru= ‘bandpass’ (FTB) sau ‘STOP’ (FTB)
Implementare Matlab
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere
2. Proiectarea filtrului:
FILTRU IIR ELIPTIC
[A, B]=ellip(N,Rp,Rs,Wn,tip_filtru)
[B, A]=ellip(N,Rp,Rs,Wn,tip_filtru), unde:
N-ordinul filtrului, de exmplu N=10
Rp-riplu în banda de trecere, de exemplu Rp=0.028
Rs-riplu în banda de oprire, de exemplu Rs=35
Wn= frecventa_taiere/Fmax, Fmax=Fs/2
tip_filtru= ‘high’ (FTS) sau ‘low’ (FTJ)

[A, B]=ellip(N,Rp,Rs,Wn,tip_filtru)
[B, A]=ellip(N,Rp,Rs,[Wn1,Wn2],tip_filtru), unde:
N-ordinul filtrului, de exmplu N=10
Rp-riplu în banda de trecere, de exemplu Rp=0.028
Rs-riplu în banda de oprire, de exemplu Rs=35
Wn1= frecventa_taiere1/Fmax, Fmax=Fs/2
Wn2= frecventa_taiere2/Fmax, Fmax=Fs/2
tip_filtru= ‘bandpass’ (FTB) sau ‘STOP’ (FTB)
Implementare Matlab
1. Analiza în frecvență a semnalului cu zgomot: stabilirea frecvenței (frecvențelor) de tăiere
2. Proiectarea filtrului:
3. Analiza filtrului:
Funcția de transfer, reprezentarea în frecventă a filtrului (modulul filtrului): [H,frecv_filtru]=freqz(B,A, nr_pct, Fs), unde
B, A-coeficenții calculați anterior
nr_pct= numărul de puncte în care calculăm răspunsul în frecvența (ales arbitrar, de exemplu 1000)
H-raspunsul în frecvență al fitrului (număr complex)
frecv_filtru-vectorul frecvență, corespunzător nr_puncte impus (va fi generat automat între 0 și Fs/2)
Întrucât răspunsul în frecvența H, este reprezentat de numere complexe, se calculează, |H| și se reprezintă grafic,
|H|=f(frecv_filtru).

Funcția pondere, reprezentarea în timp(eșantioane)a filtrului: impz(B,A) unde


B, A-coeficenții calculați anterior
Va fi generată automat reprezentarea grafica.

4.Filtrarea semnalului: out=filter(B,A, semnal_zgomot)/filtfilt(B,A,semnal_zgomot) %se aplica filtrul având coeficenții B, A


semnalului denumit ‘semnal_zgomot’; filter-pentru FIR, filtfilt-pentru IIR
Rezultatul obținut: semnalul filtrat în timp

5.Se reprezintă în timp: out=f(t), t –vectorul timp, construit în etapa anterioară


6.Se reprezintă în frecvență, urmând aceiași pași ca în etapa anterioară
Evaluarea performanțelor filtrului
1. Analiza vizuală- reprezentarea comparativă semnal inițial-semnal cu zgomot-semnal filtrat (în timp și în frecvență)
Evaluarea performanțelor filtrului
1. Analiza vizuală- reprezentarea comparativă semnal inițial-semnal cu zgomot-semnal filtrat (în timp și în frecvență)
Evaluarea performanțelor filtrului
2. Diferența algebrică semnal original-semnal filtrat

• Diferența=Semnal original-Semnal cu zgomot


• Modulul diferenței
• Determinarea valorii medii a vectorului diferență determinat anterior
Evaluarea performanțelor filtrului
3. Raportul semnal -zgomot (SNR)
Evaluează prezența unui anumit tip de zgomot(de exemplu, sinusoidal) în semnal.

𝐴𝑚𝑝𝑙𝑖𝑡𝑢𝑑𝑖𝑛𝑒 𝑆𝑒𝑚𝑛𝑎𝑙 𝑈𝑡𝑖𝑙


𝑆𝑁𝑅 =
𝐴𝑚𝑝𝑙𝑖𝑡𝑢𝑑𝑖𝑛𝑒 𝑍𝑔𝑜𝑚𝑜𝑡

• Determinare SNR între semnalul contaminat și zgomotul adăugat


• Determinare SNR între semnalul filtrat și zgomotul rezidual după filtrare
Zgomot rezidual=semnal initial-semnal filtrat)
Pentru comparație, se consideră valorile absolute

Implementare Matlab: Funcția SNR(semnal_analizat, zgomot)


(În Octave, este posibil să nu funcționeze această funcție. În acest sens, opțional, puteți rula această funcție pe
calculatorul unui coleg, având instalat Matlabul. Ceea ce este necesar însă, să înțelegeți semnificația: cum variază
SNR odată cu diminuarea/amplificarea zgomotului)
Y=H∙ 𝑿 Filtrarea în cascadă
|Y|=|H|∙ |𝑿| APLICAȚIA 1 : Proiectare unui FTB, utilizând FTJ și FTS

y=h∗ 𝒙
Filtrarea în cascadă Y=H∙ 𝑿
APLICAȚIA 2 : Semnal ECG |Y|=|H|∙ |𝑿|
Se consideră un semnal ECG, eșantionat cu frecvența Fs=300 Hz. Acest semnal va fi aplicat la intrarea unui FTJ, cu frecvența de
tăiere 45 Hz. Semnalul rezultat=?

Se consideră un semnal ECG, eșantionat cu frecvența Fs=300 Hz. Acest semnal va fi aplicat la intrarea unui FTS cu frecvența de
tăiere 20 Hz. Semnalul rezultat=?

Se consideră un semnal ECG, eșantionat cu frecvența Fs=300 Hz. Acest semnal va fi aplicat la intrarea unui FTJ, cu frecvența de
tăiere 45 Hz. Semnalul rezultat, va fi aplicat la intrarea unui FTS cu frecvența de tăiere 20 Hz. Semnalul final rezultat=?

Se consideră un semnal ECG, eșantionat cu frecvența Fs=300 Hz. Acest semnal va fi aplicat la intrarea unui FTS cu frecvența de
tăiere 20 Hz. Semnalul rezultat, va fi aplicat la intrarea unui FTJ cu frecvența de tăiere 45 Hz. Semnalul final rezultat=?

Se consideră un semnal ECG, eșantionat cu frecvența Fs=300 Hz. Acest semnal va fi aplicat la intrarea unui FTJ, cu frecvența de
tăiere 20 Hz. Semnalul rezultat, va fi aplicat la intrarea unui FTS cu frecvența de tăiere 45 Hz. Semnalul final rezultat=?
Semnale biomedicale: achiziție

Protecție la supratensiuni Preamplificare Filtrare

Amplificare

Conversie analog-digitală
Cerințe-proiect final
➢Proiectați :
• Un filtru de tip fereastră ideală, care să elimine interferența de la rețeaua de alimentare cu energie
electrică/ zgomotul adăugat(dacă ați considerat altă frecvență diferită de 50 Hz)
• Un filtru FIR, care să elilimine interferența de la rețeaua de alimentare cu energie electrică
• Un filtru IIR, la alegere, care să elilimine interferența de la rețeaua de alimentare cu energie electrică
➢ Pentru filtrele proiectate, reprezentați:
• Funcția de transfer
• Funcția pondere(doar pentru FIR și IIR)
➢Aplicați aceste filtre semnalului cu zgomot:
• Reprezentați semnalul de la ieșirea filtrului, în frecvență și în timp (pt FIR și IIR)
➢Evaluați performanțele filtrelor proiectate: prin cel puțin 2 metode(metoda SNR la alegere)
Introduceți datele rezultate în urma fiecărei metode de evaluare, pentru fiecare filtru într-un tabel
comparati. Alegeți filtrul pe care îl considerați potirivit aplicației și semnalului ales.

Notați observații pentru reprezentările grafice obținute.

DDL: Predarea finală a proiectului


Cerințe-proiect final(opțional)
OPȚIONAL: Proiectați și alte tipuri de filtre IIR (Chebisev/Butterworth/eliptic), și aplicați-le
semnalului analizat. (BONUS)
OPȚIONAL: Dacă în etapa anterioară ați ađăugat și zgomot gaussian, proiectați un filtru care
să minimizeze prezența acestui tip de zgomot.

Notați observații pentru figurile obținute.

DDL: Predarea finală a proiectului

S-ar putea să vă placă și