打印

『原创』Viterbi译码器的C语言实现

[复制链接]
3694|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DSP探路者|  楼主 | 2007-6-6 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个版本是06年2月修改过的版本,在VC下面调试通过。

注意:TraceBack长度等于输入数据的长度,在输入数据不太长的情况下获得很好的效果。


/*********************************************************************************************************
** 函数名称: convenc
** 功能描述: 卷积编码的通用编码函数,通过查表trillis得到。
** 输 入: DATAINF *pData: 描述待编码数据信息的指针。
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
** 备    注:注意,这个模块的输入是以紧凑的8bit为单位(字节)
**           输出数据是以码元为单位,需要特别注意!
**
** 作 者: DSP探路者
** 日 期: 2005年11月18日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void convenc(INT8U *pin, INT8U *pout, INT16U BitNum)
{
    INT16U bit_num_cnt, bit_cnt;
    INT8U  data_in, data_out, bit_in;
    INT8U  CURSTATE, NEXTSTATE;

    CURSTATE = 0;
// search state change trace and output data as input
    for(bit_num_cnt = 0; bit_num_cnt < BitNum ; bit_num_cnt++)
    {
        data_in = *pin++;
        //for(bit_cnt = 8; bit_cnt > 0; bit_cnt--)
        //{
            //bit_in    = (data_in>>(bit_cnt-1)) & 0x01;
            bit_in    = data_in;
            NEXTSTATE = trellissta[(CURSTATE<<1) + bit_in];
            data_out  = trellisout[(CURSTATE<<1) + bit_in];
            *pout++ = data_out;
            CURSTATE = NEXTSTATE;
            //data_in = data_in << 1;
        //}
    }
}



相关链接:http://www.evmdiy.com/viewthread.php?tid=153&extra=page%3D1

相关帖子

沙发
ZHAOJIUDE| | 2007-6-8 09:52 | 只看该作者

不是译码吗?怎么是编码?很惊讶如此简洁,原来只是编码!!

不是译码吗?怎么是编码?很惊讶如此简洁,原来只是编码!!

使用特权

评论回复
板凳
DSP探路者|  楼主 | 2007-6-8 10:22 | 只看该作者

编码和译码的程序在链接中能够找到

下载这个链接是包括编码和译码,还有vc的工程

相关链接:http://www.evmdiy.com/viewthread.php?tid=153&extra=page%3D1

使用特权

评论回复
地板
DSP探路者|  楼主 | 2007-6-12 08:53 | 只看该作者

viterbi是通信中的重要算法

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

84

帖子

0

粉丝