【通信原理】数字基带传输的线路码型

2023-10-31

数字基带传输的线路码型

简单介绍数字基带传输的线路码型的信号波形的特点,以及生成方法。注意观察频谱。文末附Matlab代码。

以下包括双极性NRZ、单极型NRZ、双极型RZ、单极型RZ、差分码,曼切斯特码/数字双相码、密勒码、CMI码、AMI码、HDB3码。

参数:Rb = 20 bps;fs = 200 Hz;仿真时间2s。

PART1

  1. 双极性NRZ

    • “1”对应“+1V”,“0”对应“-1V”
    • 双极性的优点是抗噪能力强一些
    • 缺点是生成电路需要正负双电源供电。
    • 不归零信号抗噪声能力较强
  2. 单极性NRZ

    • “1”对应“+1V”,“0”对应“0V”
    • 单极性的优点是可以采用单电源供电
    • 缺点是具有直流分量,只能在直流耦合的电路中使用。如果在交流耦合的电路中,比如通过一个电容器,则会过滤掉直流分量。
  3. 双极性RZ

    • “1”对应“+1V”,“0”对应“-1V”。维持其电平半个bit时间( T b / 2 T_b/2 Tb/2),将电平回到零电平。
    • 归零信号跳变边缘丰富,易于定时
  4. 单极性RZ

    • “1”对应“+1V”,“0”对应“0V”。“1”维持正电平半个bit时间( T b / 2 T_b/2 Tb/2),将电平回到零电平。
  5. 差分码

    • “1”对应“上跳电平”或者“下跳电平”,“0”保持上一bit对应的电平。
    • 第一个bit如果为1,上跳或者下跳则由电路复位后保持的电平确定。本仿真中初相(或者说第0个bit)为0。
    • 生成方法是进行 m _ n e w i = x o r ( m i , m i − 1 ) m\_new_i = xor( m_i,m_{i-1}) m_newi=xor(mi,mi1)

请添加图片描述

PART2

  1. 数字双相码/曼切斯特码
    • “1”对应“下跳电平”,“0”对应“上跳电平”。
    • 数字双相码没有直流分量,包含丰富的定时信息
    • 但占用的带宽加大。用于10Mbps的以太网中。
  2. 密勒码/延迟调制码
    • “1”对应“上跳电平”或者“下跳电平”,“0”对应负或正电平,连0时要交替。密勒码是数字双相码使用下降沿触发一级触发器后的结果,克服了数字双相码的定时相位不确定性。
  3. 传号反转码(CMI)
    • “1”对应交替的正或负电平,“0”对应“上跳脉冲”。
    • 没有直流分量,跳变丰富,容易接收、易于检错。
  4. 交替传号反转码(AMI)
    • “1”——交替的(+1)或(-1),“0”对应“0V”。
    • 长连“0”串时,无法提取时钟
    • AMI码3电平信号,是北美电话系统中的接口标准之一。
  5. HDB3码
    • 规则:先将码改为AMI码,然后将四连0调整为“0 0 0 V”或者“B 0 0 V”,保证V和前面的B同极性(不同极性的时候就调整为“B 0 0 V”),同时V、B各自正负交替出现。
    • HDB3具有AMI码的优点,译码简单,且容易提取定时时钟。

请添加图片描述

PART3 Matlab代码

% ---------------------------------------------
% 作者:wsg
% 日期:2022124% 邮箱:shouguo19@163.com
% 主题:基带传输的线路码型的仿真
% 参考:李晓峰《通信原理(第二版)》,第四章第九节。
% ---------------------------------------------

% 基本参数
Rb = 20;              % 信息bit速率
t_span = 2;           % 仿真时间
fs = 200;            % 采样频率

unitBitSa = fs/Rb;          % 单位原始信息采样点数
bit_length = Rb*t_span;     % 信息序列长度

t = transpose(0:1/fs:(t_span-1/fs));    % 仿真时间轴 
N_points = length(t);
f = (1/N_points:1/N_points:1/2)*fs;     % 频率轴

m = randi([0 1], bit_length, 1);        % 随机产生的bit序列

name_list = ["双极性NRZ","单极性NRZ","双极性 RZ", "单极性 RZ", "差分码",...
             "曼切斯特码", "密勒码", "传号反转码CMI", "交替传号反转码AMI","HDB3码"];

%% part1
rz_gt = zeros(unitBitSa,1);
rz_gt(1:unitBitSa/2) = ones(unitBitSa/2, 1);    % 归零码生成滤波器
nrz_gt = ones(unitBitSa,1);                     % 不归零码生成滤波器

% 1. 双极性NRZ
s1 = filter(nrz_gt, 1, upsample(m*2-1, unitBitSa));

% 2. 单极性NRZ
s2 = filter(nrz_gt, 1, upsample(m, unitBitSa));

% 3. 双极性 RZ
s3 = filter(rz_gt, 1, upsample(m*2-1, unitBitSa));

% 4. 单极性 RZ
s4 = filter(rz_gt, 1, upsample(m, unitBitSa));

% 5. 差分码
m5 = zeros(bit_length,1);
tmp = 0;    % 初相
for i = 1:bit_length
    tmp = xor(tmp,m(i));
    m5(i) = tmp;
end
s5 = filter(nrz_gt, 1, upsample(m5, unitBitSa));


%% part2
down_pulse = zeros(unitBitSa,1)-1;
down_pulse(1:unitBitSa/2) = ones(unitBitSa/2, 1);
up_pulse = flipud(down_pulse);

% 6. 曼切斯特码/数字双相码
m_tmp = [m,~m]';
m6 = m_tmp(:);
s6 = filter(ones(unitBitSa/2,1),1,upsample(m6*2-1,unitBitSa/2));


% 7. 密勒码/延迟调制码
bph = [m,~m]';
bph = bph(:);

m7 = zeros(bit_length*2,1);
tmp = 0;
for i = 1:bit_length*2
    if isequal([tmp,bph(i)], [1,0])
        m7(i) = ~m7(i-1);
    else
        if i==1  
            m7(i) = tmp;
        else
            m7(i) = m7(i-1);
        end
    end
    tmp = bph(i);
end
s7 = filter(ones(unitBitSa/2,1),1,upsample(m7*2-1,unitBitSa/2));


% 8. CMI
s8 = zeros(N_points,1);
flag = 1;
for i = 1:bit_length
    if m(i)==1
        if flag == 1 
            s8((1:unitBitSa)+(i-1)*unitBitSa) = 1;
        else 
            s8((1:unitBitSa)+(i-1)*unitBitSa) = -1;
        end
        flag = ~flag;
    else
        s8((1:unitBitSa)+(i-1)*unitBitSa) = up_pulse;
    end
end


% 9.AMI
s9 = zeros(N_points,1);
flag = 1;
for i = 1:bit_length
    if m(i)==1
        if flag == 1 
            s9((1:unitBitSa)+(i-1)*unitBitSa) = 1;
        else 
            s9((1:unitBitSa)+(i-1)*unitBitSa) = -1;
        end
        flag = ~flag;
    else
        s9((1:unitBitSa)+(i-1)*unitBitSa) = 0;
    end
end

% 10. HDB3
m10 = zeros(bit_length,1);
flagb = 0;
flagv = 1;
for i = 1:bit_length
    if m(i)==1
        flagb = ~flagb;
        if flagb == 1 
            m10(i) = 1;
        else 
            m10(i) = -1;
        end
    else
        m10(i) = 0;
        if i>3 && isequal(m10(i-3:i),zeros(4,1))    
            if flagv == flagb
                if flagv == 1
                    m10(i) = 1;
                else
                    m10(i) = -1;
                end
            else
                if flagv == 1
                    m10(i-3:i) = [1;0;0;1];
                else
                    m10(i-3:i) = [-1;0;0;-1];
                end
                flagb = ~flagb;
            end
            flagv = ~flagv;
        end
    end
end
s10 = filter(ones(unitBitSa,1),1,upsample(m10,unitBitSa));

%% 绘图
figure(3)
for i = 1:5
    s = eval("s"+num2str(i));
    S = abs(fft(s));

    subplot(5,2,i*2-1)
    plot(t,s);xlabel("t/s");ylim([-1.2 1.2]);title(name_list(i))
    subplot(5,2,i*2)
    plot(f,S(1:N_points/2));xlabel("f/Hz");
end

figure(2)
for i = 1:5
    s = eval("s"+num2str(i+5));
    S = abs(fft(s));

    subplot(5,2,i*2-1)
    plot(t,s);xlabel("t/s");ylim([-1.2 1.2]);title(name_list(i+5))
    subplot(5,2,i*2)
    plot(f,S(1:N_points/2));xlabel("f/Hz");
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【通信原理】数字基带传输的线路码型 的相关文章

  • 什么是Base64?

    Base64概念 什么是Base64 按照RFC2045的定义 Base64被定义为 Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式 The Base64 Content Transfer Encod
  • RSA非对称加密算法详解

    加密概要 加密技术是对信息进行编码和解码的技术 编码是把原来可读信息 又称明文 译成代码形式 又称密文 其逆过程就是解码 解密 加密技术的要点是加密算法 加密算法可以分为三类 1 对称加密 2 非对称加密 3 不可逆加密 对称加密算法 加密
  • XSS quiz 1~5解题方案

    第1题 第一题很简单 没做过滤 直接可A过 第二题 查询框中写123查看源码 需要先闭合左边的input 所以 gt 即可 第三题 本题有过滤当输入 gt 时发现引号 尖括号都被过滤 lt gt 分别变成了转义符 尝试Unicode编码也未
  • 《信号与系统》解读 第1章 信号与系统概述-5:非常重要!!!深入、详细地解读什么基本的复指数信号、IQ信号、欧拉公式?

    前言 正弦信号与复指数信号 更准确称为虚指数信号 是现代移动通信系统中最基本的信号 其中正弦信号常是射频调制的载波信号 而虚指数信号 包含了两路同频的正交正弦与余弦信号 常用于现代通信基带数字调制 因此理解正弦信号和复指数信号 是深入理解现
  • python json.dumps 中文编码

    json dumps var ensure ascii False 并不能解决中文乱码的问题 python 2 7版本 coding utf 8 m a 你好 print m gt a xe4 xbd xa0 xe5 xa5 xbd pri
  • 关于UTF-8、GBK编码以及编译时charset的指定的一些总结

    首先分清两个概念 C文件中 转换为16进制 汉字的编码 编译后bin文件中汉字的编码 gcc的 finput charset 和 fexec charset 两个选项的存在就是为了实现这两者的转换 1 默认情况下 gcc使用UTF 8 ch
  • java自动根据文件内容的编码来读取避免乱码

    通过cpdetector这个开源的jar包可以自动判断当前文件的内容编码 从而在读取的时候选择正确的编码读取 避免乱码问题 原创不易 转载请注明出处 java自动根据文件内容的编码来读取避免乱码 测试结果 提供截图 GBK文件内容 UTF8
  • 二维码原理、制作和识别

    参考 二维码 QR code 基本结构及生成原理 附标准下载 二维码到底是怎么被识别的 黑白小方块又是怎么储存数据的 一 矩阵式二维条码QR 矩阵式二维条码 又称棋盘式二维条码 QR码的设计理念之一就是尽可能地容错和自适应 它是在一个矩形空
  • ffmpeg实战教程(四)格式转换如MP4转MKV等

    知识延伸 I P B帧和PTS DTS的关系 基本概念 I frame 帧内编码帧 又称intra picture I 帧通常是每个 GOP MPEG 所使用的一种视频压缩技术 的第一个帧 经过适度地压缩 做为随机访问的参考点 可以当成图象
  • 什么是Base64

    一 什么是Base64 百度百科中对Base64有一个很好的解释 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一 Base64就是一种基于64个可打印字符来表示二进制数据的方法 什么是 可打印字符 呢 为什么要用它来传输8
  • 锟斤拷?UTF-8与GBK互转,为什么会乱码?

    作为一名程序员 肯定有被乱码困扰的时候 真到了百思不得其解的时候 就会觉得 英文程序员真幸福 但其实只要明白编码之间的转换规律 其实乱码so easy 我们知道 计算机存储数据都是2进制 就是0和1 那么这么多的字符就都需要有自己对应的0和
  • C#常用代码

    最近学习用C 写了几个程序 记录一下常用的几个操作 方便以后Copy 文件操作 FileStream fs null try byte buf FileStream fs new FileStream strSampleFileName F
  • git 拉取上游仓库tag并同步

    git remote add upstream https github com xxxx xxxx git git fetch upstream tag vX X git tag git push origin refs tags vX
  • ANSI是个啥???

    来自 https blog csdn net imxiangzi article details 77370160 http www cnblogs com malecrab p 5300486 html 用Notepad 创建一个文本文件
  • python接收易语言数据中文乱码

    易语言代码 book name 发送到发 txt 提交信息 引号 book name 引号 引号 编辑框 下载 内容 引号 到文本 网页 访问 对象 http 127 0 0 1 8000 download 1 提交信息 Content T
  • python3解决读取到的邮件中的乱码问题

    点进来看这篇文章的你 是不是有这种情况 不管用什么模块去读取邮箱中的邮件 都能看到类似 gb18030 B 1vfM4g 这样的仿佛像乱码一样的东西 你比如说这样子的 X QQ FEAT YSSoAXAEBlFn3rgysgiXLVc6JA
  • 【信号与系统】零输入响应和自由响应的区别

    课本内容 以下内容来自郑君里 信号与系统 第三版 上册 p61 1 自由响应和零输入响应都满足齐次方程的解 2 然而 它们的系数完全不同 零输入响应的系数仅由起始储能情况决定 而自由响应的系数要同时依从于起始状态和激励信号 3 自由响应由两
  • 曼彻斯特编码/差分曼彻斯特编码

    1 曼彻斯特编码 Manchester Encoding 位中间电平从低到高跳变表示 0 位中间电平从高到低跳变表示 1 2 差分曼彻斯特编码 differential Manchester encoding 在最初信号的时候 即第一个信号
  • 编码 & 8421BCD 码的故事

    计算机编码中 我们都是先了解了二进制 其中分有符号数 无符号数 然后会接触到BCD码 那么BCD码是怎么产生的 为什么又要用四位二进制来表示呢 8421BCD 码的故事 一 BCD码 1 由来 2 8421BCD码 3 修正 二 底层验证修
  • 多媒体开发计算机颜色相关知识

    颜色模式 颜色模式 颜色模型和颜色空间 计算机中的颜色格式 常用的颜色模型分类 RGB颜色模型 介绍 RGB模型的颜色空间 RGB555 RGB565 RGB24 RGB32 FFMPEG中定义的RGB色彩空间 显示器的颜色空间

随机推荐

  • Windows 解决端口占用方法

    查询9200端口 netstat nao findstr 9200 删除端口关联进程PID taskkill pid 11560 F
  • ORA-12505, TNS:listener does not currently know of SID given in connect desc

    出现以上的问题是无法识别SID 解决方法如下 1 找到以下目录 opt oracle product 10 2 0 db 1 network admin 修改listener ora find name listener ora即可找到该文
  • 带隔离变压器的DC/DC单端正激变换电路设计与Simulink仿真

    前期已经介绍了4种DC DC变换电路 这4种电路有一个共同特点 输入输出直接电气连接 之间没有做隔离措施 但是在实际应用中 由于电压等级的变换 安全 系统串并联等原因 开关电源的输入和输出之间需要进行电气隔离 在基本的非隔离DC DC变换电
  • R语言课程资料

    第一节 R语言简介 R语言简介 R 既是一种语言 R是一种解释性语言 也是一个软件由AT T贝尔实验室的S语言发展而来具有统计分析功能和强大的作图功能开源软件 目前在 R 网站上有 17500个程序包 涵盖了基础统计学 社会学 经济学 生态
  • 【ARM】在NUC977上搭建基于boa的嵌入式web服务器

    一 实验目的 搭建基于arm开发板的web服务端程序 通过网页控制开发板LED状态 二 boa简介 Boa服务器是一个小巧高效的web服务器 是一个运行于unix或linux下的 支持CGI的 适合于嵌入式系统的单任务的http服务器 源代
  • C# 调用SQL Server存储过程,传入参数,返回查询结果,更新dataGridView

    调用SQL Server存储过程 传入参数 返回查询结果 using SqlConnection conn new SqlConnection connectionString String cmdText Screen 存储过程名 Sql
  • Bible读经体会

    诸天述说 神的荣耀 穹苍传扬他的手段 诗篇19 1 花草树木在喊叫 耶和华造我的 数学从耶和华而来 自然界自然启示从耶和华而来 里面体现了耶和华的创意无限和思路周全 我们默默欣赏着观看着 今天阅读了创世纪的一点点体会 做下笔记 请勿用验证的
  • Shell--基础--01--介绍

    Shell 基础 01 介绍 1 Shell 环境 Shell 编程需要2个环境 文本编辑器 能解释执行的脚本解释器 2 Linux 的 Shell 常见种类 Bourne Shell usr bin sh或 bin sh Bourne A
  • python dataframe索引转成列_Pandas之DataFrame对象的列和索引之间的转化

    约定 import pandas as pd DataFrame对象的列和索引之间的转化 我们常常需要将DataFrame对象中的某列或某几列作为索引 或者将索引转化为对象的列 pandas提供了set index reset index
  • vue 项目中引用cdn上的静态js文件

    vue 项目中引用cdn上的静态js文件 需求 一份静态配置文件放在cdn中 文件暴露出数据列表和公共方法 读取文件的配置数据和公共方法 初始化Action列表 const cdnUrl https cdn xxx js libs vm a
  • Bat延时退出窗口

    timeout t 5
  • 【Error】ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

    参考文章 如何解决version GLIBCXX 3 4 29 not found的问题 1 问题 在 wsl ubuntu20 04 运行 yolov8 时 出现以下错误 ImportError lib x86 64 linux gnu
  • san.js源码解读之工具(util)篇——each函数

    一 迭代器模式 在开始解析源码之前 先来看一下 javascript 设计模式 迭代器模式 如果没有接触过该模式的小伙伴可能一脸疑惑 表示没听说过 但是这个迭代器模式 可能你已经用了很久了只是不知道它的名字罢了 比如 jquery中的 ea
  • 个位数统计 C语言

    1021 个位数统计 15 分 给定一个 k 位整数 N dk 1 10k 1 d1 101 d0 0 di 9 i 0 k 1 dk 1 gt 0 请编写程序统计每种不同的个位数字出现的次数 例如 给定 N 100311 则有 2 个 0
  • python萤火虫算法_萤火虫算法-python实现

    1 importnumpy as np2 from FAIndividual importFAIndividual3 importrandom4 importcopy5 importmatplotlib pyplot as plt6 7 8
  • FileNotFoundError: [Errno 2] No such file or directory: 'template/

    1 在运行generate list py时一直出现找不到templates header html和templates footer html的错误提示 2 后来才发现是路径问题 由于webapp是另外新建的目录 所以对yate py中w
  • Opencv使用cascade方法训练自己的LBP特征分类器的全过程

    前言 刚刚才把自己训练的分类器整出来 现在来理一下整个过程 从制作正负样本开始一直到最后产生自己的分类器 xml文件 因为毕设的要求 可能要用Opencv训练识别模型 用以识别道路积水 Opencv上自带的只有一些识别脸 眼睛等模型 所以要
  • 逻辑表达式三种化简方法

    逻辑表达式三种化简方法 目录 公式化简法 卡诺图化简法 机器化简法 一 公式法化简 是利用逻辑代数的基本公式 对函数进行消项 消因子 常用方法有 并项法 利用公式AB AB A 将两个与项合并为一个 消去其中的一个变量 吸收法 利用公式A
  • Unity WebGL Calls Rust Wasm

    Unity WebGL Calls Rust Wasm Jin Qing s Column May 2023 Reference https zenn dev ruccho articles 261136f7bdb003 In this a
  • 【通信原理】数字基带传输的线路码型

    数字基带传输的线路码型 简单介绍数字基带传输的线路码型的信号波形的特点 以及生成方法 注意观察频谱 文末附Matlab代码 以下包括双极性NRZ 单极型NRZ 双极型RZ 单极型RZ 差分码 曼切斯特码 数字双相码 密勒码 CMI码 AMI