Українські реферати, курсові, дипломні роботи
UkraineReferat.org
українські реферати
курсові і дипломні роботи

Обробка квазіпереодичних сигналів у реальному часі

Реферати / Комп'ютери і технології / Обробка квазіпереодичних сигналів у реальному часі

},

mean[4]={0,0,0,0},

kpmo[4]={0,0,0,0},

krs[4]={0,0,0,0},

amvoi[4]={0,0,0,0},

ofsmed[4]={0,0,0,0},

sum[4]={0,0,0,0},

tmpmed[7]={0,0,0,0,0,0,0},

flags[4]={0,0,0,0},

flags1[4]={0,0,0,0},

fla[4]={0,0,0,0},

iper[4]={0,0,0,0},

iex[4]={0,0,0,0},

io[4]={0,0,0,0},

fex[4]={0,0,0,0},

imean[4]={-1,-1,-1,-1},

st[4]={2,2,2,2},

ipd[4]={0,0,0,0},

ips[4]={0,0,0,0},

per[4][10],

percnt[4]={-1,-1,-1,-1};

/*переменные программы*/

int

t,f1=0,flag,iex1=0,j,kk=0,

ps=0,z,pd=1,

dko=0,

k=1,i,m,fl=1,

dx=3,dx1=-4;

char str[5];

/*выходные данные*/

static int me[4][Meanings],/* экстремумы */

mp[4][Meanings],/* перегибы */

mo[4][Meanings],/* особые точки */

mr[4][Meanings],/* первые разности*/

ms[4][Meanings],/* секунды */

md[4][Meanings];/* дискретные отсчеты */

/* Переменные для процедуры обработки */

int ot1,ot2,ot3,ot4,ot5,ot6;

int tf,tf1,ne,vk,

int masp[4][11];

int kaz;

long sq,s;

void init_azp(int[][Meanings],char[] );

void interrupt ( *oldhandler)( CPPARGS);

void interrupt handler( CPPARGS)

{

if(--kf<0)

{

oldhandler();

kf=5;

}

else

outportb(0x20,0x20);

if(mean[dko]<Meanings-1)

{

amvoi[dko]=azp[dko][mean[dko]];

putpixel(dx,(dko*100+350)-amvoi[dko]/2,12);

putpixel(dx,dko*100+75,10);

mean[dko]++;

outmed[dko*7+ofsmed[dko]]=amvoi[dko];

if(mean[dko]>KMO-1)

{

for(i=0;i<7;i++)

tmpmed[i]=outmed[dko*7+i];

k=1;

while(k==1)

{

k=0;

for(i=0;i<6;i++)

if(tmpmed[i]<tmpmed[i+1])

{

m=tmpmed[i];

tmpmed[i]=tmpmed[i+1];

tmpmed[i+1]=m;

k=1;

}

}

outsr[dko*7+krs[dko]]=outmed[dko*7+3];

for(i=dko*7;i<dko*7+6;i++)

outmed[i]=outmed[i+1];

if(krs[dko]>=KSO-1)

{ // сглаживание

sum[dko]=0;

for(i=dko*7;i<dko*7+7;i++)

sum[dko]+=outsr[i];

for(i=dko*7;i<dko*7+6;i++)

outsr[i]=outsr[i+1];

++imean[dko];

out[dko][imean[dko]]=sum[dko]/7;

putpixel(dx1,(dko*100+350)-out[dko][imean[dko]]/2,14);

if(imean[dko]>=1)

{ // вычисление 1-ой разности

mr[dko][imean[dko]-1]=out[dko][imean[dko]] out[dko][imean[dko]-1];

if (imean[dko]>=3)

{ // вычисление второй разности

if(mr[dko][imean[dko]-2]<mr[dko][imean[dko]-3])

{

if(flags[dko]==1)

{

mp[dko][iper[dko]]=imean[dko]-2;

mo[dko][io[dko]++]=out[dko][imean[dko]-2];

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

iper[dko]++;

}

flags[dko]=-1;

}

else

if(mr[dko][imean[dko]-2]>mr[dko][imean[dko]-3])

{

if (flags[dko]==-1)

{

mp[dko][iper[dko]]=imean[dko]-2;

mo[dko][io[dko]++]=out[dko][imean[dko]-2];

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

iper[dko]++;

}

flags[dko]=1;

}

}

if((out[dko][1]-out[dko][0])>0)

flags1[dko]=1;

else

flags1[dko]=-1;

if((imean[dko]>14)&&(imean[dko]%6==0))

{

for(i=st[dko];i<imean[dko];i++)

{

if((out[dko][i]>out[dko][i-1])&&(flags1[dko]==-1))

{

st[dko]=i;

for(j=i+1,t=0;(t<13)&&(j<imean[dko]);t++,j++)

if(out[dko][j]<out[dko][i-1])

{fla[dko]=0;break;}

else fla[dko]=1;

if( (fla[dko]==1))

{

if(me[dko][iex[dko]-1]!=i-1 ){

me[dko][iex[dko]++]=i-1;

mo[dko][io[dko]++]=out[dko][me[dko][iex[dko]-1]];

fex[dko]=0;

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

circle(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,2);

floodfill(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,15);

}

flags1[dko]=1;

}

else

i=j;

}

else

if((out[dko][i]<out[dko][i-1])&&(flags1[dko]==1))

{

st[dko]=i;

for(j=i+1,t=0;(t<13)&&(j<imean[dko]);t++,j++)

if(out[dko][j]>out[dko][i-1])

{fla[dko]=0;break; }

else fla[dko]=1;

if((fla[dko]==1))

{

if(me[dko][iex[dko]-1]!=i-1 ){

me[dko][iex[dko]++]=i-1;

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

mo[dko][io[dko]++]=out[dko][me[dko][iex[dko]-1]];

fex[dko]=1;

circle(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,2);

floodfill(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,15);

}

flags1[dko]=-1;

}

else

i=j;

}

}

}

if((iex[dko]>1)&&(fex[dko]))

{

tf=me[0][1]-me[0][0]+1;

tf1=mo[0][14]-mo[0][12];

if(percnt[dko]==0)

line(me[dko][0]+10,dko*100+70,me[dko][0]+10,dko*100+80);

if(out[dko] [ me[dko] [iex[dko]-2]]<out[dko][ me[dko] [iex[dko]-iex[dko]]]+20)

{

fex[dko]=0;

++percnt[dko];

per[dko][percnt[dko]]=me[dko][iex[dko]-2];

if(percnt[dko]>0)

{

ne=iex[dko]-1+percnt[dko]-1;

if(ne%5)

goto End;

masp[dko][1] = dko + 1;

ot1=me[dko][(percnt[dko]-1)*4+0];

ot2=me[dko][(percnt[dko]-1)*4+1];

masp[dko][2]=out[dko][ot2];

ot3=me[dko][(percnt[dko]-1)*4+3];

masp[dko][5]=out[dko][ot3];

ot4=me[dko][(percnt[dko]-1)*4+2];

masp[dko][4]=out[dko][ot4];

masp[dko][3]=out[dko][ot4-4];

masp[dko][7]=per[dko][percnt[dko]]-per[dko][percnt[dko]-1];

if(!((masp[dko][7]>98)&&(masp[dko][7]<104) ))

goto End;

masp[dko][6]=me[dko][iex[dko]-1]-me[dko][iex[dko]-2]+1;

if(!( (masp[dko][6]>tf-3)&&(masp[dko][6]<tf+3)))

goto End;

for(int w =0;out[dko][ot2]!=mo[dko][w];w++);

if(! ( mo[dko][w]-mo[dko][w-2]+2) )

goto End;

line(me[dko][iex[dko]-2]+10,dko*100+70,me[dko][iex[dko]-2]+10,dko*100+80);

sprintf(str,"%d",masp[dko][7]);

setcolor(11);

outtextxy(me[dko][iex[dko]-2]-50,dko*100+85,str);

setcolor(15);

ot6=me[dko][(percnt[dko]-1)*4+4];

masp[dko][9]=me[dko][(percnt[dko]-1)*4+4]/100;

masp[dko][10]=me[dko][(percnt[dko]-1)*4+4]%100;

kaz=(out[dko][ot1]+out[dko][ot6])/2;

for(vk=2;vk<6;vk++)

masp[dko][vk]=masp[dko][vk]-kaz;

s=0;

for(vk=0;vk<ot4-1;vk++)

s=s+(out[dko][vk]+out[dko][vk+1])/2;

sq=(s/ot4-kaz)*masp[dko][7];

masp[dko][8]=sq;

fprintf(outst,"\t%d",percnt[dko]);

fprintf(outst,"\t");

for(z=1;z<11;z++)

fprintf(outst,"%5d ",masp[dko][z]);

fprintf(outst,"\n");

}

}

}

}

}

else

++krs[dko];

}

else

++ofsmed[dko];

End:if(dko==3)

{

++pd;

if(pd==100)

{

++ps;

pd=0;

}

dko=0;

++dx;

++dx1;

}

else

++dko;

}

else

stop=-1;

}

void main(void)

{

int gdriver = DETECT, gmode, errorcode;

Завантажити реферат Завантажити реферат
Перейти на сторінку номер: 1  2  3 

Подібні реферати:


Останні надходження


© 2008-2024 україномовні реферати та навчальні матеріали