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

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(使用前将#替换为@)

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

  • ubuntu安装bochs,nasm

    1 ubuntu上安装bochs nasm 1 1 安装缘由 最近想自己做个操作系统玩一玩巩固巩固知识 工欲善其事 必先利其器 开发操作系统首先得搭建环境 编程语言上我选择C和汇编完成 开发环境是在我装的一个虚拟机ubuntu上 ubunt
  • 本原多项式/PRBS编码

    Pseudo Random Binary Sequence伪随机二进制序列 前言 PRBS N 其中N代表阶数 伪随机序列以2 N 1数据长度为周期 其他基础原理见百度或其他博主 在此不赘述 一 常用的本原多项式 PRBS3 X3 X2 1
  • .bat文件闪退,原因及解决

    之前学习mongodb 创建了一个txt文件 内容是 D cd D Program Files MongoDB bin mongod exe dbpath G data db 然后更改文件名称为 bat时 一运行就一闪就没了 后来 用cmd
  • unicode编码表

    unicode编码表 转载于 近來情轉深的博客 http jlqzs blog 163 com blog static 2125298320070101826277 另附一个汉字转化unicode编码的网页工具 http www bangn
  • 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
  • 《信号与系统》解读 前言:为什么要解读《信号与系统》?

    什么需要解读 信号与系统 为什么需要开辟这个专题呢 1 基础理论的基础 2 工程技术的基础 3 建立系统思维 1 基础理论的基础 信号与系统 是 数字信号处理DSP 通信原理 数字通信原理 等其他基础课程的基础 传统的信号与系统偏硬件 现代
  • 编码的几种实现

    几个概念 Unicode是一种 编码 所谓编码就是一个编号 数字 到字符的一种映射关系 就仅仅是一种一对一的映射而已 Unicode只是一个符号集 它只规定了符号的二进制代码 却没有规定这个二进制代码应该如何存储 GBK UTF 8是一种
  • ffmpeg实战教程(四)格式转换如MP4转MKV等

    知识延伸 I P B帧和PTS DTS的关系 基本概念 I frame 帧内编码帧 又称intra picture I 帧通常是每个 GOP MPEG 所使用的一种视频压缩技术 的第一个帧 经过适度地压缩 做为随机访问的参考点 可以当成图象
  • 《信号与系统》解读 前言:经典教材的选择

    1 教材选择 信号与系统 系统的教材很多 分国内与国外教材 专题以 信号与系统 奥本海姆第二版为基础与主线 结合LTE 5G移动通信的工程实践需要 有选择性的对理论内容进行解读 2 主要内容 信号与系统 是美国麻省理工学院 MIT 的经典教
  • 【计算机知识】Base64 编码说明

    一 理论 Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法 由于 2 6 64 所以每 6 个比特为一个单元 对应某个可打印字符 Base64 常用于在通常处理文本数据的场合 表示 传输 存储一些二进制数据 包括 MI
  • 《信号与系统》解读 第1章 信号与系统概述-6:系统对时域信号的基本运算与基本变换---幅度、加法、乘法、积分、微分、时延、反转、混合

    目录 1 常见信号间的运算 1 1 幅度运算 1 2 加法运算 1 3 乘法运算 1 4 连续信号微分与积分 1 5 离散信号的差分与迭分 2 常见信号自变量的变换 2 1 时延变换 2 2 时间反转变换 2 3尺度变换 2 4混合变换 1
  • ANSI是个啥???

    来自 https blog csdn net imxiangzi article details 77370160 http www cnblogs com malecrab p 5300486 html 用Notepad 创建一个文本文件
  • mysql [42000][1071] Specified key was too long; max key length is 767 bytes

    今天在MySQL中建立表的时候 报了一个错误 说是key太长了 超戳了767个字节 但是建表语句并有超过指定的长度啊 CREATE TABLE XXL JOB QRTZ JOB DETAILS SCHED NAME VARCHAR 120
  • 遗传算法之二进制编码

    遗传算法的基本步骤 遗传算法 GA 的流程如图所示 Created with Rapha l 2 2 0 编码 把所需要选择的特征进行编号 每一个特征就是一个基因 一个解就是一串基因的组合 为了减少组合数量 在图像中进行分块 然后把每一块看
  • 字符游戏-智能蛇的学习

    目标 实现可以智能化移动 不撞墙 自由追寻果实的贪吃蛇程序 即拥有感知 决策 行动的能力 学习过程 根据index中sin曲线的绘制过程可知我们可以知道可以用while循环反复打印的方式达到刷屏的效果 这样 我们将贪吃蛇移动的每一步都单独打
  • 【信号与系统】零输入响应和自由响应的区别

    课本内容 以下内容来自郑君里 信号与系统 第三版 上册 p61 1 自由响应和零输入响应都满足齐次方程的解 2 然而 它们的系数完全不同 零输入响应的系数仅由起始储能情况决定 而自由响应的系数要同时依从于起始状态和激励信号 3 自由响应由两
  • 「通信原理」格雷码的生成与破译

    通信原理 格雷码的生成与破译 格雷码 gray code 相邻两数之间只有一个bit发生了改变 因此相比于自然编码的二进制系统 格雷编码的更不容易出错 使用卡诺图化简布尔代数式的时候 也会用到格雷码 本文将介绍三种格雷码的生成与破译方法 即
  • Console.WriteLine打印中文为何出乱码?

    因为你当前环境代码页是437 是美国英语的字符编码 你把你环境设置成936就是简体中文字符编码环境了 你当前的是这个 Console OutputEncoding Encoding GetEncoding 437 设置成这样就支持中文编码了
  • 连续和离散傅立叶变换总结及推导

    连续时间复指数信号 e j w 0 t e jw 0t ejw0 t 是否为周期信号 x t x t T x t x t T x t x t T 现假设 x t e j w 0 t x t e jw 0t x t ejw0 t e j w
  • 【PDF】PDF无法注释的一种解决方案

    PDF无法注释 需要检查 1 权限问题 2 文档规范问题 PDF A 拓展阅读 浏览器打开PDF调整亮度和颜色的小技巧 处理pdf 文档的相关功能包总结 1 pdf文档不能注释 下载的一篇pdf文档在阅读时不能注释 高亮和打字机等选项都是灰

随机推荐

  • 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