You are on page 1of 11

1 |O l d a l

Biolgiai jelek rgzitse s feldolgozsa


ksztette: Fehr ron
szak: Automatika s alkalmazott informatika 2.v












2 |O l d a l



Clkitzs: a biolgiai jelek mintavtelezsnek, kondcionlsnak, s feldolgozsnak
tanulmnyozsa, illetve egy sajt mintavtelez/feldolgoz rendszer ltrehozsa.

A biolgiai jelek tanulmnyozsval fontos informcikat nyerhetnk testnk
mkdsrl, ezen jelek felhasznlsval bizonyos tevkenysgek elvgzst is
megknnythetjk. A legfontosabb biolgiai elektromos jelek az EEG, EKG, es EMG jelek. Az
EEG jelek amplitdja 10V - 100V, az EMG jelek 50V 30mV kztti rtket vehet fel,
mg az EKG jelek mV-os nagysgrendek.
Kt mdszerrel lehet tanulmnyozni a biolgiai jeleket: felleti s invazv eljrssal. A
ksrletezs cljbl az elbbi mdszert alkalmaztuk. Az elernyedt izomszvet elektromosan
inaktv. Az egyen feszltsg mindig jelen van a kontakt potencil illetve a galvnjelensgek
miatt, illetve a enuromuszkulris csompontok spontn aktivitsa is zavarknt jelentkezik. Az
emltett jelensgekbl, illetve a fenti jelek nagysgrendjbl kvettkeztethetnk, hogy egy
specifikus jel klnll mrshez bonyollt szrrendszereket, magas felbonts
mintavtelezst kell alkamazni.
A fenti informcit felhasznlva egy EEG elektrda testreszabsval kezdtk
tanulmnyozsainkat. A felersitett jeleket a Microchip dspicdem 1.1 fejlesztpanelnek
segtsvel digitalizltuk, szrtk, s vittk be a szmtgpbe, ahol egy sajt programmal
vizsgltuk az izmok ltal kivltott jeleket. A Microchip dspicdem 1.1 fellet egy dsPIC30F6014
16-bites mikrokontrollert tartalmaz, mely idelis a jelek feldolgozsra. A firmware fejlesztsre
a mikroElektronika MikroC kompiltort hasznltam, a program getshez az ICD3 egysget
MplabX krynezetben.
Az rajelrt egy 7.37MHz-es kvarc kristly felel, PLL hasznlata nlkl. A kd egyszersge,
illetve a stabil tpegysg miatt nem hasznlok Brow-out reset impulzusokat s Watchdog
idztt.




3 |O l d a l


1.bra a dsPICDem 1.1 ideiglenesen sszektve az elektrdval.

2.bra tesztelsi krnyezet.








4 |O l d a l

#define Lo(param) ((char *)&param)[0]
#define Hi(param) ((char *)&param)[1]
const unsigned BUFFER_SIZE = 512;
const unsigned FILTER_ORDER = 20;
unsigned inext;
ydata unsigned input[BUFFFER_SIZE];


const unsigned COEFF_B[FILTER_ORDER+1] = {
0x0000, 0x0001, 0x0002, 0x0003, 0x0000, 0xFFF6,
0xFFE4, 0xFFCB, 0xFFB0, 0xFF9B, 0x7F93, 0xFF9B,
0xFFB0, 0xFFCB, 0xFFE4, 0xFFF6, 0x0000, 0x0003,
0x0002, 0x0001, 0x0000};

void ADC1Int() org IVT_ADDR_ADCINTERRUPT {
unsigned CurrentValue;
input[inext] = ADCBUF0;

CurrentValue = FIR_Radix(FILTER_ORDER+1,
COEFF_B,
BUFFER_SIZE,
input,
inext);

inext = (inext+1) & (BUFFER_SIZE-1);
UART2_WRITE(255);
Uart2_Write(Hi(CurrentValue));
Uart2_Write(Lo(CurrentValue));

ADIF_bit = 0;
}//~


void Timer1Int() org IVT_ADDR_T1INTERRUPT {

if (DONE_bit){
SAMP_bit = 1;
}
PORTC.RC1 = ~PORTC.RC1;

5 |O l d a l

T1IF_bit = 0;
}//~

int main() {
TRISB.B0 = 1;
TRISC.RC1 = 0;
PortC.RC1 = 1;
UART2_INIT(115200);
inext = 0;
Vector_Set(input, BUFFER_SIZE, 0);
TRISB = 0xFFFF;
ADCON1 = 0x00E2;
ADCON2 = 0x0000;
ADCON3 = 0x0202;
ADPCFG = 0x0000;
ADCHS = 0x0000;
ADCSSL = 0;
ADPCFG = 0x0000;
IFS0 = 0;
IFS1 = 0;
IFS2 = 0;
NSTDIS_bit = 1;
INTCON2 = 0;
T1IE_bit = 1;
ADIE_bit = 1;
T1IP0_bit = 1;
IPC2.B13 = 1;

PR1 = 0x05FF;
TON_bit = 1;
ADON_bit = 1;
SAMP_bit = 1;
while (1);

}





6 |O l d a l

Mivel a dsPIC A/D talaktja 12bites, de az UART kommunikci csak 8bites adatot tud
tovbbitani fel kell darabolni a mintavtelezett jelet. Ehhez definiltam a Lo/Hi makrkat. A
rendszerben jelentkez 50Hz-es zajt egy svzr szrvel lehet kikszblni, ezt FIR vagy IIR
eljrssal lehet megrni. A FIR szrre esett a vlaszts, mivel maga a program kismret, nem
ignyel sok szmtst ( ha sok szmtst kellene vgezni IIR lenne az optimlis vlaszts),
ugyanakkor lineris fzis-szrst vgez. Egy 20-adrend FIR szrt hasznlok 49-51Hz
kszbkkel ( amit a hexadecimlis b koefficiens tmb hatroz meg). A teljes program
megszakts alap, ezrt a vgtelen ciklusban semmit sem kell tegyen.
Az ADC megszakitsban mintt veszek, majd a Fir_Radix utasitssal a meglv adatok
s a szrsi koefficiens konvolutv szorzatt kpezem.Nvelem az inext indexet a
BUFFER_SIZE maradk osztlyon, illetve az UART soros kimeneten kldm tovbb a jelet,
majd nullzom a megszakits flag-et.
A Timer1 a mintavtelezsi frekvencit lltja el, illetve egy ngyszgjelet general az
RC1 lbon( az ellenrzs kedvrt).
A f fggvny csak a ki/bemenetek-rt felels regisztereket lltja be, a konverzi
felttelt, UART felttelt, flag-ek kezdrtkt, s a megszaktsok prioritst.


3.bra a svzr szr vlasza egy vltakoz frekvencij szinuszos jelre.


A tovbbiakban a tanulnyozott jelek alakjait figyelhetjk meg:

7 |O l d a l


4.bra potencilvltozs az alkaron izomfeszts kzben.

5.bra potencilvltozs vizsglata a bicepszen.
8 |O l d a l


6.bra EKG mrs a V6 poziciban.

7.bra EKG mrs a III. poziciban.







9 |O l d a l


Sajtfejleszts mintavtelez/feldolgoz rendszer rvid
ismertetse:

8.bra kapacitv elektrda
A fenti brn lthat egy elektrda rajza. A beltets ktoldalas NYK-ra trtnik, az als rteg
az rzkel korongot s az rnykol gyrt tartalmazza lakkozott szigetelssel, a fels rteg az
ramkri elemeket( kt feszltsgkvet ramkr impedancia illesztsre, s kapacitv jelleg
kikszblsre).
9.bra RLD ramkr mellyel a
kzs mdus interferencit
kszblm ki.






10 |O l d a l



10.bra 4 csatorns ersit, AD konverterrel s rdifrekvencis adval.
A 10.brn az elektrdk vezrmoduljt szemlltetem, mely egy 34dB-es ersit
fokozatot, egy 4-edrend Shallen-Key aloltereszt szrt ( 75Hz vgsi frekvencival), mgegy
34dB-es ersit fokozatot, s egy 12bit-es 200kSPS ADC ramkrt tartalmaz. A digitalis adatot
egy 8-bites PIC mikrokontroller veszi s adja tovbb egy 2.4GHz-es ad-vev modulnak (
mindezt SPI kommunikcin). A rendszer tpllst egy 3.3V-ra cskkentett 6V-os Ni-MH akku
tpllja( sajt tlt ramkrrel).

11 |O l d a l


11.bra USB-s vev ramkr
A fenti brn a vevramkr lthat. Egy 16bit-es dsPIC mely SPI kommunikcival olvassa a
jelet az RF vevrl, vgzi a digitalis szrst illetve ms mveleteket, majd I
2
C kommunikcin
adja tovbb az FTDI chip-nek. Az ramkr tpllsa kzvetlenl a szmtgprl tortnik.

A tovbbiakban a fenti rendszert szeretnm tanlmnyozni, megpteni majd az agy
tevkenysget vizsglni az alvs klnbz szakaszaiban, fleg az lmods alatt.

You might also like