编码01--极性编码详解(极性码、单极性码、双极性码产生原理)

前言

数据通信中,为了正确的传输数据,就必须对原始数据进行编码,而计算机终端在不同的信道中传输需要使用不同的编码方式,不同的信道支持不同的编码类型,本文解释了编码中的极性编码。

一、极性编码

在数据通信系统中,有一种码型使用正电平(正电压)、负电平(负电压)、零电平(零电压)表示二进制信息中的“1”和“0”。极包括正极(正电平)和负极(负电平)。(PS:如果不懂负电压怎么来的,后面有机会再来讲,这里理解极性编码用不到负电压的原理)。

1、极性码

我们知道极包括正极和负极,那我们就用正极表示二进制的“0”,负极表示二进制的“1”。

图:极性码

通过上图,可以看出,每一个比特对应的波形都很清楚的用正电平和负电平表示出来了。比如第一个0就是用正极表示,第二1就是用负电平表示。

特点

优点:极性码直接用正负电平来表示二进制“0”和“1”,电平差比较大,所以极性码的抗干扰行较好。

缺点:图中第二个“1”和第三个“1”为连续的两个数据,当发送端发送出去的时候,接收端难以定时,不知道这个“1”是啥时候的,所以在传送一长串的“1”或“0”的时候需要同步信号。

2、单极性码

### 单极编码在Matlab中的实现 单极编码是一种常见的二进制数据表示方式,在这种编码方案中,“0”通常被映射到低电平(例如0),而“1”则被映射到高电平(例如+1)。下面展示了一个简单的例子来说明如何利用Matlab创建并可视化单极不归零(NRZ)信号。 #### 创建单极 NRZ 编码的数据流 为了生成单极的波形,首先定义一组随机产生的比特序列作为输入: ```matlab % 定义参数 bitLength = 8; % 每位持续时间单位数 numBits = 16; % 总共要发送的比特数量 % 产生随机比特串 (0 或者 1) dataBits = randi([0, 1], numBits, 1); disp('原始数据:'); disp(dataBits'); ``` 接着转换这些逻辑值成相应的电压水平,这里假设‘1’对应于正电压(+1),'0'保持不变即为零伏特: ```matlab unipolarSignal = double(dataBits); % 将布尔型转为数值型 ``` 对于每一个比特位置分配一定长度的时间间隔以形成完整的脉冲形状。这可以通过重复每个元素`bitLength`次完成: ```matlab expandedData = repmat(unipolarSignal', bitLength, 1); signalWaveform = expandedData(:); timeVector = (0:length(signalWaveform)-1)/bitLength; ``` 最后一步是画出所形成的单极NRZ波形图以便观察其特: ```matlab figure(); stairs(timeVector, signalWaveform, 'LineWidth', 2); title('Unipolar NRZ Signal Waveform'); xlabel('Time Units'); ylabel('Amplitude'); grid on; axis tight; ``` 上述代片段展示了怎样通过几个基本操作就能构建起一个简单却有效的单极NRZ编解器模型[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值