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

📄 viterbi.h

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

#if !defined(Viterbih)
#define Viterbih

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class Viterbi  
{
public:
	void reset();
	Viterbi(int DecDepth=9);
	
	//从地址为data的缓冲移入第index个数据进行解码,移入的个数为DecodeDepth*2;
	void ShiftIn(int *data,int index);
	//解码输出到data_out的index位置,输入长度为译码深度
	void DecodeOut(int *data_out,int index);
	int DecodeDepth;//译码深度
	~Viterbi();


	
private:
	int R;
	void initi();
	void arrange(int inlength);
	void camplare(int* inbuf,int inlength,int& distance);
	void BufCopy(int* src,int* dst,int inlength);
	
	int bin2dec(int bithigh,int bitlow);//把输入的二位二进制转为十进制
	int **D;//共需保存2的3-1次方条路径
	
	int *InCode;//用于存放输入的待译码序列
	int Rstatus[8];//用来指示第i条路径到达的寄存器的状态,0:00;1:01;2:10;3:11;
	int *OutCode;//用于存放译码后的二进制,共有DecodeDepth个






};

#endif 

⌨️ 快捷键说明

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