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

📄 convolcode.cpp

📁 压缩包内为本人写的(2,1,3)卷积码编码器和维特比(viterbi)译码器.编码器和译码器分别封装在一个类中,每个类的方法和变量均有注解
💻 CPP
字号:
//****************************
//卷积编码类的实现
//(2,1,N)码,(2,1,3),(2,1,7)
//***************************
extern long length;

#include "ConvolCode.h"



ConvolCode::ConvolCode()
{
//	convol_depth=N;//定义卷积深度
	

}


//********************************
//
//函数:coder(int* in,long inlength,int *out)
//功能:把输入的二进制数编码为卷积码输出
//输入输出:in为要编码二进制数据,out为编码后的二进制数据,inlenght为要编码数据的长度
////返回:无
//
//********************************
void ConvolCode::coder213(int* in,long inlength,int *out)
{
	int D[2]={0,0};//移位寄存器的状态为0;
	int outbit=0;//输入序列的序号(下标)
	for(long inbit=0;inbit<inlength;inbit++)//逐一输入进行编码
	{
		out[outbit]=D[0]^D[1]^in[inbit];//模2加
		out[outbit+1]=D[0]^in[inbit];
	
		D[0]=D[1];//移位
		D[1]=in[inbit];//移位
    	outbit=outbit+2;//输出下两个
	}
	length=inlength*2;//更新长度为原来的2倍
}
//********************************
//
//函数:ViterbiDecoder(int* in,long inlength,int *out)
//功能:维特比译码器,把输入的卷积码解码输出
//输入输出:in为要解码二进制数据,out为解码后的二进制数据,inlenght为要解码数据的长度
////返回:无
//
//********************************
void ConvolCode::ViterbiDecoder(int *in,long inlength,int *out)
{

}

⌨️ 快捷键说明

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