Telecoms Systems - PART.1

在课程开始前我们先想几个问题,信号是怎么传输的,信号的传输过程是怎样的。

“通过一定的介质将模拟信号或电信号进行传输”

那么这个过程中一定会有一些信号的损失而使得我们接受到的信息不准确,造成损失的原因分为:

那么如何去让信号的传输更加稳定可靠,就是本课程的目的。我们关注信号的处理方式,以及信道的设计等等,以尽可能的减少Impairment,让通信过程更加可靠。 

该课程的对应是通信原理,但只包括其中的一部分。总体来说在讲述下面这个图中的事情:

你可以假象自己是一个通信工程师,学这门课的目标就是去设计一个可靠的通信系统来传输信息。

这个过程大致可以理解为

1.预处理 ---- 2.编码 ---- 3.传输 ---- 4.译码 ---- 5.输出

1.预处理

通过Sampling和Quantisation将信号数字化,生成二进制数字序列。

我们知道信号分为analog和digital,也就是连续与离散。我们所学习的是数字通信系统,那么我们应接受离散信源,这里就涉及到模拟信号的数字化,这个过程就涉及到Sampling和Quantisation

而关于这两者的关系,查了一些资料理解为:信号经过抽样只是时域上的离散,所以我们需要对其频域进行量化实现真正的数字化然后才能进行编码。

我们先来看Sampling,其实这些在信号与系统讲过,我们来简单回顾一下

连续信号的抽样与重构

首先我相信大家对时域与频域有一个大概的概念,看最上面这俩。在时间上变化越缓慢,那么它的频域就会集中到低频段(周期=1/频率)

我们通过一系列冲激函数抽样,如左下图,那么频域卷积的结果就会如右下图。然后呢,我们通过低通滤波器,采集右下图中中间的那个。这样采集后的结果就是抽样前的频谱,我们就可以通过这个频谱来重构信号。

这是最理想的情况,因为现实中理想的冲激信号和方波信号都不存在。但是这就是抽样与重构的基本原理。

那么为了在通过低通滤波器能够滤出需要的频谱以重构信号,我们得保证这个频谱经过抽样之后的形态依旧正确。那么就不能出现Oversampling,而我们的抽样定理也是为了限制这个条件使得可以重构。

抽样定理

只需要知道抽样频率大于等于带宽(频谱上达到的最大频率)的2倍,接着就是量化。

均匀量化

啥是量化呢?

在标量量化中,每个抽样会被转化成有限个电平之一,再将电平编码成一个二进制序列。

我们来看一个例子,这是一个量化函数。按区间划分后,每个区间都给予一个电平值。图中有8个电平(0不算),所以信源就可以用3个比特来表示这8个电平。他们的关系如下,R代表比特数,N代表电平数。这种表示方法让其得以转化成二进制序列,但代价就是引入了失真(误差)。

R=log_{2}N

也许这个例子更加直观一点,我们需要分清这些数字之间的关系

通过量化函数我们就可以把输入信号转化成这样的形式(图中红线):

这是我们引入的失真,这个图老师在课上讲的比较清楚。但是手写确实不太好写,总之就是关注原函数和量化函数的差值,我们可以看到这个差值一直在-q/2和q/2之间来回变,上面和下面那个error signal是一直对应的。幅度横跨整个数字位宽表示范围的信号,其四舍五入的量化误差可以通过一个峰峰值幅度为q的锯齿波形来表示。

然后推导了一下Quantising error power,记结果就好:

P_{Q}=q^{2}/12

那么我们怎么具体衡量量化所带来的失真呢,来衡量量化后的性能

SQNR (Signal to Quantisation Noise Ratio 信号量化噪声比 简称量噪比)

这个比率可以很好的描述出我们通信的质量,因为计算的是我们需要的信息(量化信号)和不要的信息(噪声)的比例。所以这个比例越高,说明通信系统越好,通信质量更清晰。

噪声就理解成杂质什么的,就是那些不想要的失真什么的

我们来看这里,分母就是上面的Quantising error power,将其带入就得到如下图中的结果,M代表Number of quantisation level,也就是电平数。最下面的阿尔法是ratio of peak to mean signal power。Peak是那个电平之间的差值,signal power下图中给了。(应该是这样,我再查查)

我们引入了失真,但是为了量化这是没办法避免的,我们只能尽量减少引入的失真,通过非均匀量化实现。

非均匀量化

上面我们讲述了均匀量化,也就是保证量化区间的长度一致,如果我们放宽这个条件,也就是允许量化区间长度的不一致。那么就可以在较少条件下实现失真的最小化。

其实也很好理解,这种非均匀会让量化函数更加拟合原函数,减少之间的差值,失真也自然减少。 

那么非均匀量化怎么实现呢 -- Companding(压扩)。其实我们是将均匀量化,通过压扩,形成了非均匀量化。

啥叫压扩呢,跟字面意思一样,先在发送端压一下,然后在接收端扩一下。通过这套操作,我们可以大大降低信道的信噪比,提高通信质量。为啥就不用管了,我们来看看怎么操作。

 有两种压扩,就是下图中标红的俩。这些细节性能啥的就不管了,我们关注它的8-bit code

通过这个图,就可以看到是怎么实现将均匀量化转化成非均匀量化。我们先等比的划分区间(所以不均匀),然后在区间上的每一段内,是16电平的均匀量化。也就是非均匀里面包着一堆均匀。我们只看A律。

 如果数一下区间的话,发现有7段,左右对称一下就有14段。但是因为靠近0左右两段区间上那两条折线的斜率一样,就可以将其合并成一条。所以称为13段折线法。

 

量化完最后的结果是二进制序列,也就是下图中的output code。

我们可以看到格式是 P XXX abcd

P代表正负,0正1负

XXX代表外部这个不均匀的段的编码,可以看到与Segment那一列对应

abcd代表内部段内的编码(每条段内是一个16电平的均匀量化) 2^4=16 所以是4位

以上就是抽样与量化的一些细节,然后就需要对信号完成编码来生成二进制序列。但是在实际中,这三个过程是被统一在一个行为内 -- Modulation

Modulation 

PCM(Pulse code modulation)

 我们来看示意图就可以明白整个流程

分析下ppt上这张图,首先通过低通滤波器滤掉限制带宽以外的信号(这步是保证后续的抽样的正确性,因为要满足抽样定理)。

图中低通滤波器的带宽为3.4kHz,这样进入抽样的信号带宽就是3.4kHz。然后抽样频率是8kHz,也就是每125us抽一次。满足抽样定理(8>2*3.4)。

然后我们进入Compander(压扩器,进行量化和编码)。我们可以看到压扩器是8-bit A-low compander,说明他是一个输出8比特码,满足A律的压扩器,正好对应我们上面说的那个图。

这里SDR(SNR)=33dB,就是信噪比,衡量这个压扩器的性能,就是会掺进去多少杂质(噪声)。

然后8bit*8kHz=64kbit/s 就是压扩器的数据率。就是每秒传输多少bit。可以理解因为向压扩器每125ms送进一个采样(这个转化成频率就是8kHz),就会输出8bit,所以PCM的数据率就是8kHz。总之就是右图中的公式。

tip: kbit/s和kbps 是一个单位,p是per

补充一下带宽这个概念,我一直都理解为信号在频域上的最大范围。就是你的信号在频域上不是一个f=f(x)的函数吗,x代表频率,然后带宽就是x的能取到的最大值。对于模拟信号和数字信号来说,带宽的单位是不一样的。

 

DM(Delta modulation)

这个也是一种modulation的方式,用导数的方式理解就看懂了。这里就放张图:

为了让拟合度更高,我们需要控制这个区间增长的长度。所以也很好的跟导数联系起来。

 至此我们就得到了一串二进制码,接着需要更多的操作才能让其进行传输。

 我们来看例题:

Let y(t) be a band-limited signal to W=1kHz, signal y(t) is sampled at a rate 30% higher than the Nyquist rate to provide a guard band.

1) What is the sample rate for y(t)?

2) Please use diagrams to explain what aliasing is and why in general sampling has to meet the Nyquist sampling theorem.

3) Please user diagrams to explain why the oversampling is easier to design a simple filter.

1)

啥是Nyquist rate呢:为防止信号混叠需要定义最小采样频率,称为奈奎斯特频率。

说白了就是抽样定理那个二倍带宽,那么结果就是。后俩题前面概念就不看了。

r=\left( 100\% +30\% \right) \cdot \left( 2\cdot W\right) =2.6\ kHz

The maximum acceptable error for signal x(t) in the sample amplitude(the maximum quantization error) is 1% of the peak amplitude. The quantized samples are binary coded.

1) How many quantization levels are required? How many bits per sample are required?

2) Assuming the sampling rate of this system is 8kHz, what is the minimum bandwidth of a channel required to transmit the encoded binary signal? 

3) Calculated the bit rate required to transmit x(t) as a linearly quantised PCM signal maintaining an SQNR of 55dB.(Assuming that the signal's peak to mean ratio is 20dB).

1) 我们知道最大error就是q/2,而最大峰值幅度就是Vpeak,

q/2=V_{peak}\cdot 1%

所以一个Vpeak就有50个q,那么Vpeak-peak就是100个q,那么就需要7bit才能表示。

N=log_{2}100\approx 7

2)抽样频率是8kHz,通过抽样定理我们知道原信号的带宽最大是4kHz。那么这个系统的最低带宽就是4kHz。

3)这个直接带公式(应该是这么做我再查查)

更新!!!!!下面里的那个n代表 bits/step,所以应该是整数,这里应该取上整,所以这个答案是有问题的,大家计算时候注意一下!!!!!!!!!!!

\begin{gathered}SQNR=4.8+6n-\alpha_{dB} =55dB\ \ \\ \alpha_{dB} =20dB\\ R_{B}=f_{s}\times N_{B}=8\times 12=96bps\end{gathered}

If x(t) is quantised by a non-uniform quantiser Q and power P=100. The quantiser Q is defined bt the following four quantisation regions: R0=[0,1] , R1=[1,3] and R3=[7,15].

Symbols ai, i=1,2,3 and 4 ,correspond to the amplitudes produced by each quantisation region Ri and the probabilities pi that the amplitude of x(t) is in each region Ri are as follows.

P0P1P2P3
0.170.490.250.09

1) What are the quantisation noise power in each region assuming that the noise is distributed uniformly, the average quantisation noise power, and SQNR in dB.

2) Obtain the information content of each symbol and entropy of the information source under the probabilities in 1)

1) 分析一下,这是个不均匀量化,分成四个不均匀的区间。但是在每个区间内部是一个均匀量化。如果我们想求噪声功率就是q^2/12。所以重点在于求出每个区间的q。然后SQNR直接用100/(q^2/12)就好。但这个题我真不知道咋做,我不知道这个给的四个ai在哪里????反正这题我没太明白

更新一下,题中的意思大概是

四个symbols,都对应于一个amplitude,这些amplitude是被对应的量化区间所产生的

意思就是说,量化区间的那个量化值,就是这四个symbols的amplitude

所以每个量化区间就只被分成了一段,那么他的q就是这个区间长度

所以直接带入q^2/12算就行

2)这个就是信息论里那个公式直接带就好

H=\sum^{}_{i} p_{i}log_{2}\left( 1/p_{i}\right)

2.编码 & 译码

这里我们要对第一步得到那串二进制码进行更详细的描述。主管逻辑上,我们都更想要一种更高效的方式来传输信息。那么我们的目标就是找到一种有效的信源输出的表示方式,能够没有或者几乎没有冗余。我们也将从另一个角度理解通信系统,我们将研究信息在表示和传输方面的基本限。

大白话就是,尽可能让第一步输出的二进制码在单位长度内表示更多信息。这就涉及到 Source Coding。

但是我们怎么知道这段二进制码中有多少信息呢,我们该怎么度量信息?这就涉及到一个更重要的东西 ---- Information Theory 

Information Theory可以理解为一种信源的数学建模。我们知道,通信系统的设计目的在于传输信息,在所有的通信系统中都产生信息,通信系统的目的就是把信源的输出传送到信宿。而为了研究不同的类型的信源(比如图像,视频,二进制码),我们需要建立数学模型来表示信源并衡量它所产生信息的信息量。

信息是什么?信息在直观上的概念就是指与某种事物相关的新知识,我们通过视听或者其他方式来获取信息。信源产生那些接受者感兴趣的信息作为输出,接受者预先并不知道这些输出的信息。也就可以理解为信源的输出是一个时变不可预测的函数(如果是可以预测的,那么就没有必要传输该信息)。

比如我们用信源来表示一个女生对一个追她的男生说的话,假设有两种输出

a1: 我不喜欢你,我们在一起吧

a2: 我喜欢你,我们在一起吧

在现实逻辑中,这两种结果的输出概率肯定是a2>a1对吧。

所以对于a2来说,它传输的信息量就更少,a1就更多。

直观上感觉可能一样多,但是你细想,a2中已经知道她喜欢我了,那么我就能猜测到她会跟我在一起,那么就相当于我已经知道我们会在一起,你就没有必要再跟我说一遍,所以相当于只传输了“我喜欢你”的信息。

a1中,她跟我说我不喜欢你,根据主观逻辑来说,结果是我们不会在一起,但是你却跟我说我们会在一起,这是我没有预测到的,那么就相当于你传输给我 “我不喜欢你,我们在一起” 的信息。

根据这个例子,对于信息的度量正是关于信源输出概率的一个连续函数,定义为自信息:

接下来看这个公式,是一个加权平均值,用每条输出的概率乘对应的信息量然后求和,所以他就是衡量信源的信息量,也是信源的不确定度(因为输出结果无法预测,所以是一种不确定)定义为信息熵:

 但是对于处理多个随机变量时,像概率论引入联合概率和条件概率,这里引入联合熵和条件熵:

 

 公式不太好看,直接看这个图比较好

我们来解释一下这里面每个部分的意义:

H(X) / H(Y) : 在前面我们定义这两个为信息熵,那么它也相当于一种不确定性。

H(X|Y) H(Y|X) : 也就是在已知一个信源后,另一个信源的不确定性。

I(X;Y) : 互信息,一会解释

但是注意看,我第一次看到想了好久觉得不是很通(两边对称的所以只看一边):

 为什么在 H(X)下,这个条件概率是 H(X|Y) ?

因为H(X)代表的是不确定性,所以在可以这样想,H(X)这个圈里面,X是不确定的,但是圈以外X是确定的,相应的Y也一样。所以我们看到H(X|Y)是在Y的圈外面,也就是已知Y的条件下,X的不确定度。这样就与上面的定义对应上了。

那么之前提过的互信息是什么?我觉得这段话说的非常清楚。

所以互信息是随机变量Y所提供的关于随机变量X的信息量。我们将这句话带入通信系统中,我们向信道输入一个信源X,得到输出Y。那么在这里互信息就是这个输出Y中关于X的信息量,也就是我们传输了多少X中的信息到Y中。

好了,至此我们需要了解的信息论基础就结束了,那么它是干什么的?

大白话就是我们学会度量信号中的信息量,借助这套理论我们需要设计通信系统来实现高效传输,减少失真。 我们要设计一个编码器来达到这个效果,也就是设计一套编码方式来传输信息。

我们首先要实现传送最大的信息率,回到第二步开头说的找到一种有效的信源输出的表示方式,能够没有或者几乎没有冗余。同时我们还要保证正确性,这便是Source Coding

直接了解算法就好 -- Huffman coding 这里有一些可看可不看的原理介绍

这里就是上学期的数据结构中那个算法,甚至我觉得数据结构画霍夫曼树的写法比ppt那种给的好很多。借助这种方法我们得到了可靠(冗余少,效率高)的编码。

这里不需要问为啥,只需要知道这种编码方式很高效然后会利用这个算法,会算平均编码长度,然后会算source efficiency和source efficiency 。

然后我们就要将编码传输到Channel(信道)里。啥是信道呢?

重点是这句话,信道输入与输出的关系通常呈现随机性。很好理解,你这段二进制码输入信道后,就像电流遇到电阻造成损失一样,信息会收到噪声干扰,从而使得输出呈现随机性。那么对于这种随机性,我们就要用到概率来衡量。

digital channel可以抽象成如图的组成,有上面提过的Modulator和物理传输介质。 

我们先看 digital memoryless channel,图中这段话讲的十分清楚。其实这就像一个函数一样,对于你输入的一串字符集x,会按照概率输出字符集y。

 然后是Additive white gaussian noise (AWGN) channel。这是一个引入噪声的信道,他的输出定义为:

 我们课程就介绍了这两种信道,我们更加关注Channel capacity。记得我们前面提到过这是一个限,根据信道容量这个名字也很好理解。就像一个容器一样,我们不能超过他的容量,否则就会漏出去,造成损失。那么这个限就是传输速率的限。在这个限制之内,我们信息传输才是可靠的。具体接着往下看:

 我们先看一个例子。这是一个四输入四输出的离散无记忆信道。

假设我们收到a,那么我们无法分辨出这是由a还是d发送的。

假设我们收到b,同理我们依旧无法分辨出是a还是b发送的。

...

造成的结果就是传输错误。那么如果我们在发送信息前,我们发送方和接受方就规定好。我们只用a和c进行通信。也就是说发送方只会发送a和c,接受方依旧会接收到a,b,c,d

我们来看看效果

收到a,传的一定是a

收到b,传的一定是a

收到c,传的一定是c

收到d,传的一定是c

这样我们就大大提高了通信的可靠,但是我们牺牲了可能输入的个数。

这其中的实质就是,只选择这种输入,即他们所对应的可能输出永远不相交,这样发送的信息才不会产生不确定性。所选择的输入是相互远离的,这样他们在信道上的映射才不会发生互相重叠。

但现实中,对于二进制对称信道,我们无法得到无重叠的输出,而且对于大部分信道都是如此。因为你这个输入和输出都太短,所以很容易变成一样的,这样就造就重叠。那么我们就需要将信道扩展,也就是输入和输出的长度都变成n。

首先补充一点概率论 -- 大数定理

最简单的大数定理是啥呢,比如抛硬币,你越抛你越发现,它正反面的概率都是50%。当抛的次数越来越大到n时,正面朝上次数就是n/2。好了我们继续看信道。

如图,我们输入一串x,输出一串y,注意他们的长度都是n。我们知道二进制对称信道有一个crossover probability,假设其为q。那么他的意义就是这个信号经过信道出错的概率就是q。

根据大数定律,当n足够大时,会有q*n个信息出错。那么就是C(n,qn)个序列是出错的。然后这个就被近似成下图中那个式子。这是啥意思呢,就是你输出n,跟这n对应的输出有这么多。

然后那还有一个是啥呢,就是你输出的长度是n,那么你输出的总共可能有那么多。这是是把上面那个包含住的。一个是总共可能,一个是对应的可能。

那么这个互不重叠的输入序列的最大数为啥是两者之比。我们想想上面那个例子,当我知道输出,我可以唯一的知道输入。也就是要达到互不重叠,那么看这个图,嗯希望能懂我的意思...

 那么这个M就是可以允许一次发送的最大数目,那么我们就可以算出来传输的最大速度,这个速度就是Channel capacity。剩下的图中就说的就很详细了。 

这样我们就得到了有噪信道编码理论,就是不能超过信道容量这个限速,这样我们就有可能实现可靠的通信,否则不行。

然后离散无记忆信道的信道容量下面这个公式给出,就是我们之前提到的互信息。

 

上面介绍了离散无记忆,下面来说AWGN的信道容量,也就是Shannon' s formula,背公式就好,这个推导我看不懂。这块公式比较多,跟着ppt一点点看就好。

这里的意思是,你不停的增加带宽,这样确实会让你每秒传输更多的信号,但是你的接受方同样会收到更多的噪声。所以一昧的增加带宽并不能一直增加信道容量,会达到下图中的极限。

这里两个参数分别为,纵轴:频谱比特速率,横轴:每比特信噪比。分别衡量带宽效率和功率效率。

好了,信道讲完了。上面告诉我们这个传输过程会出错,那么对于这些错误怎么办?

这里就引入了 Channel Coding(区别于上面的Source Coding,这俩不是一个玩意)。他的作用是,以受控的方式在这串二进制码中引入某种冗余,使得接收机可以克服信道传输中噪声和信道干扰对信号造成的失真影响。这种引入的冗余能够提高接受数据的可靠性,改善信号的保真度,还有助于对信息序列的正确译码。

 

大白话就是,我们对经过抽样量化后的信号所得到的二进制码,通过某种可靠的方法,引入几个毫无意义的码(不代表任何信息),这样这串码就可以很好的克服传输过程中的信号损失,还有利于最后的译码。

还是很难理解,我们来看一个例子

我们用这种编码方式的结果就是,当我们输出结果接收到10或者01,我们知道发生了错误,但是我们却不知道它本来应该是00还是11。如果我们再增加一位冗余呢?

 

 这样的话我们结果中接收到101后就知道它发生了差错,并且它原本应该是111(至于为什么这么肯定因为我们假定只能检测出一位错误),所以我们就可以纠错。

这就是增加冗余的好处之一,便于纠错。

而信道编码的方式有两种

 这里只关注 Block codes,我们来看定义,反正一头雾水就对了。

我们再来看看这个版本的定义,大概清晰了很多

补充一下component-wise modulo 2 addition(按位模2加),就是一个圈圈里面套加号这个算子,就是你按位进行异或运算。比如:111 和 000 结果就是 111,101和 101 结果就是 000。异或,就是相同的得0,不同的得1。

这里面需要关注的概念有:

码书(codewords), 码重(Hamming weight), 汉明距离(Hamming distance), 错误图样(Syndrome) 以及那个码的形式(信息位+检验位)

上面提到一个(7,4)码,这个是怎么来的?因为所有的线性分组码的信息位和监督位都要满足这个关系式,所以(7,4)是一种,还有(15,11)等等

我们通过汉明码来简单分析一下(都是我查了很多资料加自己理解,可能有错但大概意思应该是对的)汉明码是线性分组码的一个特例,也就是一种构造方式,还有很多其他的方式

然后针对汉明码的分组方式,我们规定这样的构造(没有为啥),汉明码是线性分组码的一个特例,也就是一种构造方式,还有很多其他的方式。

 

那么我们就可以找到,我们传输的数据错误的位置和校验子Si的关系。(这个关系是按照我们构造规则计算出来的,有了这个表格之后,我们只需要查表就可以知道,究竟是数据传输中哪一位发生错误了,而不需要再按照构造规则进行计算了。但一定要注意,这个表格只限于这个规则,即这个表格只限于汉明码。) 

 然后我们知道如果矫正子全部为0的话,那么说明这组数据没有错误,于是我们可以写出:

a_{6}\oplus a_{5}\oplus a_{4}\oplus a_{2}=0

a_{6}\oplus a_{4}\oplus a_{3}\oplus a_{1}=0

a_{6}\oplus a_{4}\oplus a_{3}\oplus a_{0}=0

 进而可以算出检验位:

a_{2}=a_{6}\oplus a_{5}\oplus a_{4}

a_{1}=a_{6}\oplus a_{5}\oplus a_{3}

a_{0}=a_{6}\oplus a_{4}\oplus a_{3}

然后通过这个我们就算出来监督位,最后将信息位和监督位按顺序排列组成一串二进制码,就得到了完整的汉明码,且是(7,4)码,这个图就是(7,4)汉明码的码书。

 上面的定义提到,线性的意思是信息位和监督位满足一组线性代数方程的码,我们刚刚得到这样一组线性方程式:

\begin{cases}a_{6}\oplus a_{5}\oplus a_{4}\oplus a_{2}=0&\\ a_{6}\oplus a_{4}\oplus a_{3}\oplus a_{1}=0&\\ a_{6}\oplus a_{4}\oplus a_{3}\oplus a_{0}=0&\end{cases}

我们将其转化为这样的形式:

\begin{cases}1\cdot a_{6}+1\cdot a_{5}+1\cdot a_{4}+0\cdot a_{3}+1\cdot a_{2}+0\cdot a_{1}+0\cdot a_{0}=0&\\ 1\cdot a_{6}+0\cdot a_{5}+1\cdot a_{4}+1\cdot a_{3}+0\cdot a_{2}+1\cdot a_{1}+0\cdot a_{0}=0&\\ 1\cdot a_{6}+0\cdot a_{5}+1\cdot a_{4}+1\cdot a_{3}+0\cdot a_{2}+0\cdot a_{1}+1\cdot a_{0}=0&\end{cases}

再这样:

\left[ \begin{matrix}1&1&1&0&1&0&0\\ 1&1&0&1&0&1&0\\ 1&0&1&1&0&0&1\end{matrix} \right] \left[ \begin{matrix}a_{6}\\ a_{5}\\ a_{4}\\ a_{3}\\ a_{2}\\ a_{1}\\ a_{0}\end{matrix} \right] =\left[ \begin{matrix}0\\ 0\\ 0\end{matrix} \right]

这样我们就得到一个矩阵叫做H Parity check matrix(检验矩阵),记为H。注意观察右边三列是一个单位矩阵,所以他的形式可以看成两个矩阵合起来,左边的这个P在下面还会提到

H=\left[ \begin{matrix}1&1&1&0&1&0&0\\ 1&1&0&1&0&1&0\\ 1&0&1&1&0&0&1\end{matrix} \right] =\left[ P\ I_{r}\right]

同样的,来看一下算检验位的线性方程组

\begin{cases}a_{6}\oplus a_{5}\oplus a_{4}=a_{2}&\\ a_{6}\oplus a_{4}\oplus a_{3}=a_{1}&\\ a_{6}\oplus a_{4}\oplus a_{3}=a_{0}&\end{cases}

方法跟上面一样,转化成矩阵形式:

\left[ \begin{matrix}1&1&1&0\\ 1&1&0&1\\ 1&0&1&1\end{matrix} \right] \left[ \begin{matrix}a_{6}\\ a_{5}\\ a_{4}\\ a_{3}\end{matrix} \right] =\left[ \begin{matrix}a_{2}\\ a_{1}\\ a_{0}\end{matrix} \right]

令Q等于左边这个矩阵的转置,然后在Q的左边加一个单位矩阵凑成矩阵G

其中P就是上面提到的那个叫做 Parity matrix ,G就是 Generator matrix,注意P这里转置了一下

Q=P^{T}=\left[ \begin{matrix}1&1&1\\ 1&1&0\\ 1&0&1\\ 0&1&1\end{matrix} \right] \ \ \ \ \ G=\left[ \begin{matrix}1&0&0&0&1&1&1\\ 0&1&0&0&1&1&0\\ 0&0&1&0&1&0&1\\ 0&0&0&1&0&1&1\end{matrix} \right]

所以他们有什么用呢?首先我们可以看出来他们可以互相转化,确定了一个就可以得到另外两个

对于生成矩阵,由生成矩阵G可以产生整个码书,即有:

A=\left[ a_{6}a_{5}a_{4}a_{3}a_{2}a_{1}a_{0}\right] =\left[ a_{6}a_{5}a_{4}a_{3}\right] \cdot G

对于检验矩阵,他可以确定信息位和校验位的关系,这句话可以很直观的从上面的线性方程组来理解,他的作用可以看下面。这个与上面提到的错误图样(Syndrome) 关联起来。

其实根据名字也很好理解,检验矩阵,就是拿来验错然后修正的。这个看下面给出的例子就懂了,我们接受到一串码r,将其与H相乘,结果就是syndrome。根据这个结果我们可以确定哪一位出错,然后修改。

至此,我们就基本了解完线性分组码的相关知识。我们来看看应用: 

这里给了P,也就是构造规则,这样就可以写出生成矩阵,很显然他应该是一个三行六列的矩阵

我们先写出来P(Parity matrix),他就是(P1,P2,P3)的线性组合:

P=\left[ \begin{matrix}1&1&0\\ 1&1&1\\ 1&0&1\end{matrix} \right]

然后凑上单位矩阵,构成G(Generator matrix ):

G= \left[ \begin{matrix}1&0&0&1&1&0\\ 0&1&0&1&1&1\\ 0&0&1&1&0&1\end{matrix} \right]

然后H(Parity Check matrix):

H=\left[ \begin{matrix}1&1&1&1&0&0\\ 1&1&0&0&1&0\\ 0&1&1&0&0&1\end{matrix} \right]

如果第一步没看懂看下老师这里写的,我画红线的地方,这样把每一个P对应就好:

 有了这些矩阵就可以干相应的事情了:

a)这个好像是数电吧,我实在记不起来

b)生成矩阵上面写出来了

c)要写码书

我们来看看啥是codewords。这道题里面是(6,3)码,所以我们的结果是6位序列。

然后初始长度是3,所以2^3,共8个信息码(000,001,010,011,100,101,110,111),我们通过信息码来确定校验码,他们之间的联系在G(Generator matrix),即直接相乘:

比如 000 -- 000000 :

\left[ \begin{matrix}0&0&0\end{matrix} \right] \left[ \begin{matrix}1&0&0&1&1&0\\ 0&1&0&1&1&1\\ 0&0&1&1&0&1\end{matrix} \right] =\left[ \begin{matrix}0&0&0&0&0&0\end{matrix} \right]

比如 001 -- 001101 :

\left[ \begin{matrix}0&0&1\end{matrix} \right] \left[ \begin{matrix}1&0&0&1&1&0\\ 0&1&0&1&1&1\\ 0&0&1&1&0&1\end{matrix} \right] =\left[ \begin{matrix}0&0&0&1&0&1\end{matrix} \right]

后面就不放了,结果如下(如果没算错),注意这里面的加法是上面提到的那个component-wise modulo 2 addition:

\begin{gathered}000\ -\ 000000\\ 001\ -\ 001101\\ 010\ -\ 010111\\ 011\ -\ 011010\\ 100\ -\ 100110\\ 101\ -\ 101011\\ 110\ -\ 110001\\ 111\ -\ 111100\end{gathered}

d) 这个矫正能力容我在查查咋整

哦我找到了

 

 dmin在码书中可以算出来是3,那么纠错能力就是t=1

e) syndrome的定义是出的错乘校验矩阵

但这个syndrome table我还不知道是啥意思,容我再查查

f) 译码

记得在上面讲述最后的那个例子吗,我们将接收码和H(Parity check matrix)相乘:

r\cdot H^{T}=\left[ \begin{matrix}1&0&1&1&0&0\end{matrix} \right] \left[ \begin{matrix}1&1&1&1&0&0\\ 1&1&0&0&1&0\\ 0&1&1&0&0&1\end{matrix} \right]^{T} =\left[ \begin{matrix}1&1&1\end{matrix} \right] \neq \left[ 0\right]

结果不为0,说明出错了且是一位错(题上说的),我们看结果(1 1 1)为H的第二列,说明r的第2位出错,将1改成0,那么r译码结果应该为(我这里简略写了,正二八经的完整步骤参照上面那个例子)

r=\left[ \begin{matrix}1&1&1&1&0&0\end{matrix} \right]

回到码书中找对应,结果是111。

3.传输

至此编码就完成了,我们要将编码传输进信道。这就涉及到Channel capacity,这是一个关于传输速度的限。传输的介质我们叫做Channel(信道)。

重点是这句话,信道的输入与输出的关系通常呈现随机性

引用了很多其他博主的东西,十分感谢!

https://blog.csdn.net/weixin_42771934/article/details/105138463https://blog.csdn.net/weixin_42771934/article/details/105138463https://blog.csdn.net/weixin_42771934/article/details/105138463

https://blog.csdn.net/HiWangWenBing/article/details/118657107?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_linkhttps://blog.csdn.net/HiWangWenBing/article/details/118657107?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_linkhttps://blog.csdn.net/HiWangWenBing/article/details/118657107?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_linkhttps://zhuanlan.zhihu.com/p/58319950https://zhuanlan.zhihu.com/p/58319950https://zhuanlan.zhihu.com/p/58319950

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值