dataprocess.c

来自「基于dsp2812逆变电源设计 基于dsp2812逆变电源设计」· C语言 代码 · 共 34 行

C
34
字号
/*
DataProcess.c
	void adapt_filter();
*/
#include "DSP28_Device.h"
void adapt_filter(float* source,float* result,int SampleNum,int TotalNum)
{
	int i,k=5;
	float u=0.0005; //收敛因子
	float Ref_Signal1,Ref_Signal2,Ref_Signal3,Ref_Signal4, err;
	float  w1_now,w1_past,w2_now,w2_past,w3_now,w3_past,w4_now,w4_past; //权值系数
	w1_now=0.2;
	w2_now=0.1;
	w3_now=0.05;
	w4_now=0.02;
	for(i=0;i<TotalNum;i++)
	{
		Ref_Signal1=k*sin(3.14159/SampleNum*(i));
		Ref_Signal2=k*sin(3.14159/SampleNum*(i)+0.7);
		Ref_Signal3=k*sin(3.14159/SampleNum*(i)+1.4);
		Ref_Signal4=k*sin(3.14159/SampleNum*(i)+2.2);
		w1_past=w1_now;
		w2_past=w2_now;
		w3_past=w3_now;
		w4_past=w4_now;
		result[i]=w1_now*Ref_Signal1+w2_now*Ref_Signal2+w3_now*Ref_Signal3+w4_now*Ref_Signal4;
		err=source[i]-result[i];
		w1_now=w1_past+2*u*err*Ref_Signal1;
		w2_now=w2_past+2*u*err*Ref_Signal2;
		w3_now=w3_past+2*u*err*Ref_Signal3;
		w4_now=w4_past+2*u*err*Ref_Signal4;
	}
}

⌨️ 快捷键说明

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