📄 test4.c
字号:
#include"stdio.h"
#include"math.h"
#include"lms.c"
double uniform(double a,double b,long int *seed)
{
double t;
*seed=2045*(*seed)+1;
*seed=*seed-(*seed/1048576)*1048576;
t=(*seed)/1048576.0;
t=a+(b-a)*t;
return(t);
}
double gauss(double mean,double sigma,long int *s)
{
int i;double x,y;
double uniform();
for(x=0,i=0;i<12;i++)
x+=uniform(0.0,1.0,s);
x=x-6.0;
y=mean+x*sigma;
return(y);
}
void lms(double x[],double d[],double y[],int n,double w[],int m,double mu)
{
int i,k;double e;
for(i=0;i<m;i++)
{w[i] = 0.0;}
for(k=0;k<m;k++)
{
y[k]=0.0;
for(i=0;i<=k;i++)
{y[k]+=x[k-i]*w[i];}
e=d[k]-y[k];
for(i=0;i<=k;i++)
{w[i]+=2.0*mu*e*x[k-i];}
}
for(k=m;k<n;k++)
{
y[k]=0.0;
for(i=0;i<m;i++)
{y[k]+=x[k-i]*w[i];}
e=d[k]-y[k];
for(i=0;i<m;i++)
{ w[i]+=2.0*mu*e*x[k-i];}
}
}
void filter1()
{
double a1=1,a2=-0.649407593197511, //butter(1,2.2/150)
b1=0.175296203401245,b2=0.175296203401245;
x[1]=x[2];
y[1]=y[2];
x[2]=data[2];
y[2]=b1*x[2]+b2*x[1]-a2*y[1];
data[3]=y[2];
}
void main()
{
long int i,i1,m,n;
long seed;double mu,pi,mean,sigma;
static float d[37852],x[501],y[501],w[50],d2[37852],weight[37852],weight1[37852];
static float zz[37852],d1[37852];
static int biaozhi=0;
// CString str;
FILE *fp;
//FILE *fp1;
pi=4.0*atan(1.0);
mean =0.0;
sigma = 1.0;
seed = 13579;
n=501;
// str="temperature";
fp=fopen("temperature.txt","r");
// for(i=0;i<4;i++)
i=0;
while(fscanf(fp,"%f",&zz[i])!=EOF) //打开数据到zz数组;
i++;
fclose(fp);
for(i=0;i<37851;i++)
{d[i]=zz[i];}
/*for(i=0;i<n;i++)
{
d[i]=sqrt(2.0)*sin(2*pi*i/20.0);
d[i]+=gauss(mean,sigma,&seed);
}*/
for(i=9;i<37851;i++)
{
for(i1=1;i1<10;i1++)
{
d[i]+=d[i-i1];
}
d[i]=d[i]/10;
}
fp=fopen("differece_temperature.txt","w");
for(i=1;i<37850;i++)
//{fprintf(fp,"%d %f\n",i,y[i]);}
{
if(i%20==0)
{fprintf(fp," %f ",d1[i]);}
}
fclose(fp);
fp=fopen("weight.txt","r");
// for(i=0;i<4;i++)
i=0;
while(fscanf(fp,"%f",&zz[i])!=EOF) //打开数据到zz数组;
i++;
fclose(fp);
for(i=0;i<37851;i++)
{weight[i]=zz[i];}
for(i=9;i<37851;i++)
{
for(i1=1;i1<10;i1++)
{
weight[i]+=weight[i-i1];
}
weight[i]=weight[i]/10;
}
for(i=1;i<37000;i++)
{
if(i%20==0)
{
d1[i]=d[i]-d[i-20];
if(fabs(d1[i])>=0.1)
{
biaozhi=2;
}
else if(fabs(d1[i])<0.1&&fabs(d1[i])>=0.07)
{
biaozhi=1;
}
else if(fabs(d1[i])<0.07)
{
biaozhi=0;
}
printf("%d \n",biaozhi);
//printf("%f \n",fabs(d1[i]));
}
if(biaozhi==0)
{
weight1[i]=weight[i+285];
}
else if(biaozhi==1)
{
weight1[i]=weight[i+300];
}
else if(biaozhi==2)
{
weight1[i]=weight[i+350];
}
}
/* for(i=1;i<37850;i++)
{
if(i%20==0)
{d1[i]=d[i]-d[i-20];}
}*/
fp=fopen("different_weight.txt","w");
for(i=1;i<37000;i++)
//{fprintf(fp,"%d %f\n",i,y[i]);}
{
//if(i%20==0)
{ fprintf(fp," %f ",weight1[i]);}
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -