📄 asigpro.c
字号:
y[i] = output1[data_length-i-1];
d1y[i] = output2[data_length-i-1];
d2y[i] = output3[data_length-i-1];
}
}
//----------------------------------------------------------------
// The new data section is determinated in here!.
//SETP 2
while((d1max > THRESHOLD1)&&(!counter2))
{
i=0;
if(p_d1max-i-1<2)
p_min1=0;
else
{
while((i<p_d1max-2)&&((output2[p_d1max-i-1])*(output2[p_d1max-i]))>0)
i++;
p_min1=p_d1max-i-1;//THE POSITION OF MIN1
}
min1 = output1[p_min1];
//-2-------------------------------------
i=0;
while(output2[p_d1max+i]*(output2[p_d1max+i+1]>0)&&(p_d1max+i<1+data_length)-3)//?????
i++;
p_max = p_d1max + i+1;
max = output1[p_max];
//3-----------------------------------
i=0;
if((p_max-p_min1)>THRESHOLD3)
{
if(p_d1max-THRESHOLD1-i>3)
{
while((output2[p_d1max-THRESHOLD1-i-1]*output2[p_d1max-THRESHOLD1-i]>0)&&(i<p_d1max-THRESHOLD1-3))
i++;
}
p_min1=p_d1max-i-1;
min1 = output1[p_min1];
}
//4--------------------------------------------
i=0;
while((output2[p_max+i]*output2[p_max+i+1]>0)&&(p_max+i)<data_length-2)
i++;
p_min2 = p_max+i;
min2 = output1[p_min2];
//Step4-------------------------------------------
if((max-min1)>=THRESHOLD4*(max-min2))
{
if((p_max+THRESHOLD1)<data_length)
{
while((output3[p_max+THRESHOLD1+i]*(output3[p_max+THRESHOLD1+2]>0))&&(p_max+i<(data_length-2)))
i++;
p_d1min=p_max+THRESHOLD1+i;
//d1min=output1[p_d1min];
}
else
{
p_d1min=data_length-1;
//d1min=output1[p_d1min];
}
i=0;
while((output2[p_d1max+i]*output2[p_d1min+i+1]>=0)&&((p_d1min+i)<(data_length-2)))
{
i++;
}
p_min2 = p_d1min+i-1;
min2 = output1[p_min2];
}
//A NEW AND SIMPLE METHOD TO FIND OUT ABRATION!!!!!!!!
temp_num = THRESHOLD6;
if(p_d1max>27)
{
temp_num = 0;
for(i=0;i<10;i++)
{
temp_num = output2[p_d1max-15-i]+output2[p_d1max+15+i]+temp_num;
}
}
if((temp_num<THRESHOLD6)&&(d1max>8))
{
divided_data[counter1][0] = 1;
divided_data[counter1][1] = p_min1;//++++????????????????
divided_data[counter1][2] = p_min2;
divided_data[counter1][3] = p_d1max;
divided_data[counter1][4] = p_max;
divided_data[counter1][5] = max-min1;
counter1++;
}
//END OF NEW METHOD
else if((p_max-p_d1max)<=THRESHOLD4*(p_d1max-p_min1))
{
// if(p_max>p_d1max-extremum[3])
// alpha3=10;
// else
alpha3=20;
if((p_min2-p_min1)<300)
{
if((max-min1)<(alpha3*(max-min2)))
{
divided_data[counter1][1] = p_min1;//++++????????????????
divided_data[counter1][2] = p_min2;
divided_data[counter1][3] = p_d1max;
divided_data[counter1][4] = p_max;
divided_data[counter1][5] = max-min1;
counter1++;
}
}
}
data_length=data_length-p_min2+p_min1;
d1max = output2[data_length-1];
p_d1max = 0;
for(i=0;i<(data_length);i++)
{
if(i>=p_min1)
{
output1[i]=output1[i+p_min2-p_min1];
output2[i]=output2[i+p_min2-p_min1];
output3[i]=output3[i+p_min2-p_min1];
}
if (d1max < output2[i])
{
d1max = output2[i];
p_d1max = i;
}
}
counter2++;
//--------------------------------
//-----------------
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
counter2 = 0;
data_length = temp_num1;
for(i=0;i<data_length;i++)
{
y[i] = output1[data_length-i-1];
d1y[i] = output2[data_length-i-1];
d2y[i] = output3[data_length-i-1];
}
for(i=0;i<data_length;i++)
{
output1[i] = y[i];
output2[i] = -d1y[i];
output3[i] = d2y[i];
if (d1max < output2[i])
{
d1max = output2[i];
p_d1max = i;
}
}
while((d1max > THRESHOLD1)&&(!counter2))
{
i=0;
if(p_d1max-i-1<2)
p_min1=0;
else
{
while((i<p_d1max-2)&&((output2[p_d1max-i-1])*(output2[p_d1max-i]))>0)
i++;
p_min1=p_d1max-i-1;//THE POSITION OF MIN1
}
min1 = output1[p_min1];
//-2-------------------------------------
i=0;
while(output2[p_d1max+i]*(output2[p_d1max+i+1]>0)&&(p_d1max+i<1+data_length)-3)//?????
i++;
p_max = p_d1max + i+1;
max = output1[p_max];
//3-----------------------------------
i=0;
if((p_max-p_min1)>THRESHOLD3)
{
if(p_d1max-THRESHOLD1-i>3)
{
while((output2[p_d1max-THRESHOLD1-i-1]*output2[p_d1max-THRESHOLD1-i]>0)&&(i<p_d1max-THRESHOLD1-3))
i++;
}
p_min1=p_d1max-i-1;
min1 = output1[p_min1];
}
//4--------------------------------------------
i=0;
while((output2[p_max+i]*output2[p_max+i+1]>0)&&(p_max+i)<data_length-2)
i++;
p_min2 = p_max+i;
min2 = output1[p_min2];
//Step4-------------------------------------------
if((max-min1)>=THRESHOLD4*(max-min2))
{
if((p_max+THRESHOLD1)<data_length)
{
while((output3[p_max+THRESHOLD1+i]*(output3[p_max+THRESHOLD1+2]>0))&&(p_max+i<(data_length-2)))
i++;
p_d1min=p_max+THRESHOLD1+i;
//d1min=output1[p_d1min];
}
else
{
p_d1min=data_length-1;
//d1min=output1[p_d1min];
}
i=0;
while((output2[p_d1max+i]*output2[p_d1min+i+1]>=0)&&((p_d1min+i)<(data_length-2)))
{
i++;
}
p_min2 = p_d1min+i-1;
min2 = output1[p_min2];
}
//A NEW AND SIMPLE METHOD TO FIND OUT ABRATION!!!!!!!!
temp_num = THRESHOLD6;
if(p_d1max>27)
{
temp_num = 0;
for(i=0;i<10;i++)
{
temp_num = output2[p_d1max-15-i]+output2[p_d1max+15+i]+temp_num;
}
}
if((temp_num<THRESHOLD6)&&(d1max>8))
{
divided_data[counter1][0] = 1;
divided_data[counter1][1] = p_min1;//++++????????????????
divided_data[counter1][2] = p_min2;
divided_data[counter1][3] = p_d1max;
divided_data[counter1][4] = p_max;
divided_data[counter1][5] = max-min1;
counter1++;
}
//END OF NEW METHOD
else if((p_max-p_d1max)<=THRESHOLD4*(p_d1max-p_min1))
{
// if(p_max>p_d1max-extremum[3])
// alpha3=10;
// else
alpha3=20;
if((max-min1)<(alpha3*(max-min2)))
{
if((p_min2-p_min1)<300)
{
divided_data[counter1][1] = p_min1;//++++????????????????
divided_data[counter1][2] = p_min2;
divided_data[counter1][3] = p_d1max;
divided_data[counter1][4] = p_max;
divided_data[counter1][5] = max-min1;
counter1++;
}
}
}
data_length=data_length-p_min2+p_min1;
d1max = output2[data_length-1];
p_d1max = 0;
for(i=0;i<(data_length);i++)
{
if(i>=p_min1)
{
output1[i]=output1[i+p_min2-p_min1];
output2[i]=output2[i+p_min2-p_min1];
output3[i]=output3[i+p_min2-p_min1];
}
if (d1max < output2[i])
{
d1max = output2[i];
p_d1max = i;
}
}
counter2++;
//--------------------------------
//-----------------
}
a_sp.ab_value = divided_data[0][5];
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -