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

📄 ls.c

📁 估计脉冲响应源程序的VC程序代码
💻 C
字号:
/////////////////////////////////////////
// 输入为寄存器数为10的M序列信号,     //
// 噪声为均值为0,方差为0.1的白噪声,  //
// 分别从数据文件Data1和Data2读入。    //
// 执行结果存在数据文件\Data3中。      //
/////////////////////////////////////////


#include "math.h"
#include "stdio.h"	 
#include "brmul.c"
#include "brinv.c"
int main()
{
	FILE *fp1,*fp2,*fp;
	int u[600][1];double v[600][1];
	double g[51][1],g1[51][1];
	int i,j;
	double w[500][51],w1[51][500],w2[51][500];
	double y[500][1],y1[500][1];
	double t[51][51];
	fp1 = fopen("data1.txt","r");
	fp2 = fopen("data2.txt","r");
	for(i = 0;i<600;i++) 
	{
		fscanf(fp1,"%d",&u[i][0]);//输入信号M序列
		fscanf(fp2,"%lf",&v[i][0]);//均值为0,方差为0.1的白噪声
	}
	fclose(fp1);
	fclose(fp2);
	for(i = 0;i< 51;i++)
		g[i][0] = 0.25*exp(-0.5*i)-exp(-0.25*i)+0.75*exp(-i/6);
	for(i = 0;i<500;i++)
	{
		for(j = 0;j<51;j++) 	
			w[i][j] = u[50+i-j][0];
	}
	for(i = 0;i < 500;i++) 
	{	
		for(j = 0;j < 51;j++) 
			w1[j][i] = w[i][j];
	 }
	brmul(w,g,500,51,1,y);
	for(i=0;i<500;i++) 	y1[i][0] = y[i][0]+v[i][0];
	brmul(w1,w,51,500,51,t);
	brinv(t,51);
	brmul(t,w1,51,51,500,w2);
	brmul(w2,y1,51,500,1,g1);
	fp = fopen("Data3.txt","w");
	fprintf(fp,"真值\t\t计算值\n"); 
	for(i = 0;i<51;i++)
	{
		fprintf(fp,"%f\t%f\n",g[i][0],g1[i][0]); 
	}
	fclose(fp);

	return 0;  
}

⌨️ 快捷键说明

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