📄 sw.c
字号:
//sw.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "user_func.h"
//#include "user_face.h"
void main()
{
int i=0;
int j=0;
int cnum=0;
int zeronum=0;
int maxnum=0;
int minnum=0;
int cflag=0;
int flag;
float sdnum,a,b,power;
float input[SIZE],m[SIZE];
float zeroteam[SIZE],maxteam[SIZE],minteam[SIZE];
float spline_value_up[SIZE],spline_value_down[SIZE];
float c1[SIZE],c2[SIZE],c3[SIZE],c4[SIZE],c5[SIZE],h[SIZE];
float c[SIZE],pre[SIZE],r[SIZE];
float * p_in;
while(1)
{
p_in=input;
for(i=0;i<SIZE;i++)
{ a=((float)i/63);
b=((float)i/63);
power=2*sin(PAI*b);
input[i]=power*cos(2*PAI*a*4)+power*cos(2*PAI*a*10);}
for(j=0;j<TIMES;j++)
{ zeronum=0; maxnum=0; minnum=0;
zeroplot(p_in,zeroteam,&zeronum);
mnflag(p_in,maxteam,minteam,&maxnum,&minnum);
if(maxnum>=2) splinevalue(spline_value_up,maxnum,p_in,maxteam);
if(minnum>=2) splinevalue(spline_value_down,minnum,p_in,minteam);
average(spline_value_up,spline_value_down,m);
for(i=0;i<SIZE;i++)
pre[i]=p_in[i];
for(i=0;i<SIZE;i++)
h[i]=p_in[i]-m[i];
sdnum=sd(h,pre);
if(sdnum<0.3)
{for(i=0;i<SIZE;i++)
c1[i]=h[i];cnum++;break;}
else p_in=h;
}
for(i=0;i<SIZE;i++)
r[i]=input[i]-c1[i];
p_in=r;
for(j=0;j<TIMES;j++)
{ zeronum=0; maxnum=0; minnum=0;
if(cflag==0)
{if(cnum==1)
{for(i=0;i<SIZE;i++)
r[i]=input[i]-c1[i];p_in=r;}
else if(cnum==2)
{for(i=0;i<SIZE;i++)
r[i]=input[i]-c1[i]-c2[i];p_in=r;}
else if(cnum==3)
{for(i=0;i<SIZE;i++)
r[i]=input[i]-c1[i]-c2[i]-c3[i];p_in=r;}
else if(cnum==4)
{for(i=0;i<SIZE;i++)
r[i]=input[i]-c1[i]-c2[i]-c3[i]-c4[i];p_in=r;}
else {for(i=0;i<SIZE;i++) r[i]=input[i]-c1[i]-c2[i]-c3[i]-c4[i]-c5[i];p_in=r;}
}
cflag=1;
zeroplot(p_in,zeroteam,&zeronum);
mnflag(p_in,maxteam,minteam,&maxnum,&minnum);
splinevalue(spline_value_up,maxnum,p_in,maxteam);
splinevalue(spline_value_down,minnum,p_in,minteam);
average(spline_value_up,spline_value_down,m);
for(i=0;i<SIZE;i++)
pre[i]=p_in[i];
for(i=0;i<SIZE;i++)
h[i]=p_in[i]-m[i];
sdnum=sd(h,pre);
p_in=h;
while(sdnum<0.3)
{++cnum;
if(cnum==2) {for(i=0;i<SIZE;i++) c2[i]=h[i];cflag=0;break;}
else if(cnum==3) {for(i=0;i<SIZE;i++) c3[i]=h[i];cflag=0;break;}
else if(cnum==4) {for(i=0;i<SIZE;i++) c4[i]=h[i];cflag=0;break;}
else {for(i=0;i<SIZE;i++) c5[i]=h[i];cflag=0;break;}
}
flag=1;
flag=low(m);
if(!flag)
break;
}
for(i=0;i<cnum;i++)
{
if(i==0) { for(j=0;j<SIZE;j++)
c[j]=c1[j];
hilbth(c1);
phase(c1,c);
}
else if(i==1) { for(j=0;j<SIZE;j++)
c[j]=c2[j];
hilbth(c2);
phase(c2,c);
}
else if(i==2) { for(j=0;j<SIZE;j++)
c[j]=c3[j];
hilbth(c3);
phase(c3,c);
}
else if(i==3) { for(j=0;j<SIZE;j++)
c[j]=c4[j];
hilbth(c4);
phase(c4,c);
}
else { for(j=0;j<SIZE;j++)
c[j]=c5[j];
hilbth(c5);
phase(c5,c);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -