⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rls.c

📁 对高斯白噪声进行rls滤波
💻 C
字号:
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
void rls(x,d,n,w,m,r)
int m,n;
double r,x[],d[],w[];
{int i,j,k;
double a,s,*g,*u,*px,*p;
g=malloc(m*sizeof(double));
u=malloc(m*sizeof(double));
px=malloc(m*sizeof(double));
p=malloc(m*m*sizeof(double));
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{p[i*m+j]=0.0;}
for(i=0;i<m;i++)
{p[i*m+i]=1.0e+8;}
for(i=0;i<m;i++)
{px[i]=0.0;}
for(k=0;k<n;k++)
{px[0]=x[k];
for(j=0;j<m;j++)
{u[j]=0.0;
for(i=0;i<m;i++)
{u[j]=u[j]+(1/r)*p[j*m+i]*px[i];}
}
s=1.0;
for(i=0;i<m;i++)
{s=s+u[i]*px[i];}
for(i=0;i<m;i++)
{g[i]=u[i]/s;}
x[k]=0.0;
for(i=0;i<m;i++)
{x[k]=x[k]+w[i]*px[i];}
a=d[k]-x[k];
for(i=0;i<m;i++)
{w[i]= w[i]+g[i]*a;}
for(j=0;j<m;j++)
for(i=0;i<m;i++)
{ p[j*m+i]= (1/r)*p[j*m+i]-g[j]*u[i];}
for(i=(m-1);i>=1;i--)
{px[i]=px[i-1];}
}
free(g);
free(u);
free(px);
free(p);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -