jj.h

来自「三种模拟调制与解调的算法」· C头文件 代码 · 共 86 行

H
86
字号
#include "head.h"

void jj(float *h,float *s,char *filename)
{
    //jj,卷积函数
	//h:指向滤系数的指针,以END_FLAG为结束标志
	//s: 指向数据流的指针,以END_FLAG为结束标志
	//filename: 卷积后保存的文件名
	float *temp;
	unsigned long i,j;
	float y;

	CFile out_put_file(filename,CFile::modeCreate|CFile::modeWrite);
	if (!out_put_file) 
	{
		cout<<"Cann't create the out put file:"<<filename<<endl;
		getch();
		exit(1);
	}


	i=0;
	while ((*(h+i)!=END_FLAG)&&(*(s+i)!=END_FLAG))
	{
		j=0;
		y=0;
		while (j<=i)		
		{
			y=y+(*(h+j))*(*(s+i-j));
			j++;
		}
		i++;
	
			out_put_file.Write(&y,sizeof(float));
		
	}
	
	if ((*(s+i)==END_FLAG)&&(*(h+i)!=END_FLAG))
	{
		temp=s;
		s=h;
		h=temp;
	}

	i--;
	s++;
	while (*(s+i)!=END_FLAG)
	{
		j=0;
		y=0;
		while (j<=i)		
		{
			y=y+(*(h+j))*(*(s+i-j));
			j++;
		}
		s++;
	
			out_put_file.Write(&y,sizeof(float));
	}

	h++;
	i--;
	while (i!=-1)
	{
		j=0;
		y=0;
		while (j<=i)		
		{
			y=y+(*(h+j))*(*(s+i-j));
			j++;
		}
		s++;
		h++;
		i--;
		
			out_put_file.Write(&y,sizeof(float));
	}
	//写入结束标志
	y=10000.0;
	out_put_file.Write(&y,sizeof(float));
	out_put_file.Close();
}



⌨️ 快捷键说明

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