基于matlab的信道编码仿真毕业论文(3)

2020-06-03 12:44

基于matlab的信道编码仿真

出都只有0和1两种符号,并且发送0而接受到1,以及发送1而收到0(即误码)的概率相同,所以称信道是对称的。此时条件差错概率由p表示。二进制对称信道的转移概率如图3.1

图3.1 二进制对称信道

3.2二进制删除信道(BEC)

图3.2二进制删除信道

信道的特点是,信源传输0或1时,接收端以1-a的概率正确接收,以概率a被删除。

3.3高斯白噪声信道(AWGN)

在信号传输的过程中,它会不可避免地受到各种干扰,这些干扰统称为“噪声”。加性高斯白噪声AWGN是最常见的一种噪声。

加性高斯白噪声是最简单的一种噪声,它表现为信号围绕平均值的一种随机波动过程。加性高斯白噪声的均值为o,方差表现为噪声功率的大小。一放情况下,

6

基于matlab的信道编码仿真

噪声功率越大,信号的波动幅度就越大,接收端接收到的信号的误比特率就越高。在研究通信系统的误码率与信道质量的关系时,一放先研究它在加性高斯白噪声信道下的性能,然后再把它推广到具有快衰落的复杂情况。

4. Hamming码

4.1汉明码

当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。但这种方法比简单重传协议的成本要高。汉明码利用奇偶块机制降低了前向纠错的成本。

4.2校验方法

进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据1001总共是4个比特位,包括2个1,1的数目是偶数,因此,如果是偶校验,那么增加的校验位就是一个0,反之,增加一个1作为校验位。通过“异或”运算来实现偶校验,“同或”运算来实现奇校验。单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在传输过程中受到噪音影响而出错。利用更多的校验位,汉明码可以检测两位码错,每一位的检错都通过数据中不同的位组合来计算出来。校验位的数目与传输数据的总位数有关,可以通过汉明规则进行计算: d+p+1<=2的p次方

7

基于matlab的信道编码仿真

d表示传输数据位数目,p表示校验位数目。两部分合称汉明码字,通过将数据位与一个生成矩阵相乘,可以生成汉明码字。 2008-07-05 19:10

针对4位数据的汉明码编码示意图

汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。以典型的4位数据编码为例,汉明码将加入3个校验码,从而使实际传输的数据位达到7个(位),它们的位置如果把上图中的位置横过来就是: 数据位

1 2 3 4 5 6 7 代码

P1 P2 D8 P3 D4 D2 D1 说明

第1个汉明码 第2个汉明码 第1个数据码 第3个汉明码 第2个数据码 第3个数据码 第4个数据码

注:Dx中的x是2的整数幂(下面的幂都是指整数幂)结果,多少幂取决于码位,D1是0次幂,D8是3次幂,想想二进制编码就知道了。另外,汉明码加插的位置也是有规律的。以四位数据为例,第一个汉明码是第一位,第二个是第二位,第三个是第四位,1、2、4都是2的整数幂结果,而这个幂次数是从0开始的整数。这样我们可以推断出来,汉明码的插入位置为1(20 (注:20表示2的0次幂))、2(21)、4(22)、8(23)、16(24)、32(25)……

8

基于matlab的信道编码仿真

4.3汉明码编码

4.3.1汉明码对高斯白噪声信道 随机信号源:

function [out,rc]=inform(k) rc=rand(k,1); for n=1:k

if rc(n)>=0.5 out(n)=1; else out(n)=0; end end

产生高斯噪声:

function out=noise(snr,k,r) snr=10^(snr/10); rate=k/(k+r);

q=1/(sqrt(2*snr*rate)); out=randn(1,k+r)*q;

汉明码编码:

function code=hamming(ic,k,P) IG=eye(k); G=[IG,P'];

code=rem(ic*G,2);

汉明码译码:

function out=dehamming(in,k,r,P) m=k+r;

IH=eye(r); H=[P,IH];

S=rem(in*H',2); n=0;

while n

h=H(:,n); if S==h' break; end end

in(n)=1-in(n); for i=1:k

9

基于matlab的信道编码仿真

out(i)=in(i); end

调制:

function out=modd(in,k,r) m=k+r; for n=1:m

if in(n)<1 out(n)=-1; else

out(n)=1; end end

解调:

function out=demod(in,k,r) m=k+r; for n=1:m

if in(n)<0 out(n)=0; else

out(n)=1; end end

总程序

k=4; %信息位 r=3; %监督位

P=[1 1 1 0; %校验矩阵 0 1 1 1; 1 1 0 1;];

SNR=1; %信噪比

N=1000; %测试的数据包数目

w=0; %译码错误码元数目统计的变量 n=1;

while n

[ic,rc]=inform(k); %产生随机信号源 hc=hamming(ic,k,P); %汉明码编码 mc=modd(hc,k,r); %调制

nc=mc+noise(SNR,k,r); %通过带噪声信道 dmc=demod(nc,k,r); %解调

dhc=dehamming(dmc,k,r,P); %汉明码译码 for m=1:k %统计译码错误码元数 if dhc(m)~=ic(m)

10


基于matlab的信道编码仿真毕业论文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Opqbfe乡村经济管理自测题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: