C语言实现AMI码

C语言AMI编码,HDB3编、译码,Matlab绘制波形代码.rar

C语言实现AMI编码,HDB3编码及译码,MATLAB绘制波形。 运行hdb3_test.c,编/译码结果输出在test_out.txt文件里。 HDB3_Encoding.c和HDB3_Dncoding.c是用来编译成MATLAB的.mexw文件的。 hdb3_encoding_decoding.m文件是用MATLAB绘制波形的文件。

立即下载

AMI码

  AMI码全称是传号交替翻转码。AMI码把单极性非归零NRZ码中的0码与零电平对应,1码对应极性正、负交替变换的电平。
  例如:

原二进制序列:0 0 1 0  1 1 0
    AMI码:0 0 1 0 -1 1 0
  AMI码有如下优点:
  1. 在1、0码不等概率情况下,也没有直流分量,且零频附近低频分量小。
  2. 若接收端收到的码元极性与发送端的完全相反,也能正确判决。
  3. 便于观察误码。

C语言AMI编码

/**
 * @description: Encode the source code as AMI code.
 * @param: AMI    is a pointer to AMI code.
 *         source is a pointer to source code.
 *         len    is sequence length.
 * @return: none
 */
void AMI_Encoding(char *AMI, const char *source, int len)
{
    unsigned int i = 0;
    unsigned int cnt_1 = 0;
    for(i = 0; i< len; i++)
    {
        if(!source[i])//0
        {//源码是0的位置,AIM码一定是0
            *(AMI+i) = 0;
        }
        else//1
        {//源码第奇数个1转换为AMI码的1,第偶数个1转换为AMI码的-1
            cnt_1++;
            *(AMI+i) = (cnt_1&0x01)?1:-1;
        }
    }
}
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读