基于MATLAB的调制解调与信道编译码仿真.docx
《基于MATLAB的调制解调与信道编译码仿真.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的调制解调与信道编译码仿真.docx(18页珍藏版)》请在冰豆网上搜索。
基于MATLAB的调制解调与信道编译码仿真
基于MATLAB的调制解调与信道编译码仿真
摘要:
随着信息时代的步伐,通信技术得到了全面的发展,信息技术已成为了21世纪最强大的国际化动力。
在通信技术中,信息的调制、解调和误码纠错都占有重要的地位。
MATLAB作为一款功能强大的数学工具软件,在通信领域中得到了很广泛的应用。
本文基于MATLAB对信号进行模拟仿真设计,实现对二进制相移键控、循环码的纠错仿真、BPSK的调制解调等进行仿真设计。
关键字:
MATLAB、调制解调、2PSK、BPSK、重复码。
一、二进制和四进制相移键控调制仿真设计
1.1二进制相移键控(2PSK)原理
相移键控是利用载波的相位变化来传递数字信息的,而振幅和频率保持不变。
在2PSK中常用0和π分别表示二进制“0”和“1”,2PSK的信号时域表达式为:
表示为第n个符号的绝对相位,因此上式可改写为:
由于表示信号的两种码形完全相同,极性相反,故2PSK信号一般表示一个双极性全占空矩形脉冲序列与一个正弦载波相乘。
=s(t)coswct
其中:
s(t)=
g(t-nTs);
这里,g(t)为脉宽Ts的单个矩形脉冲;
的统计特征为
=
即发送二进制“0”时(
),
取0相位;发送二进制符号“1”时(
),
取π相位。
这种以载波的不同相位直接法去表示相应二进制数字信号的调制方式,称为二进制绝对相移方式。
2PSK信号时间波形
2PSK信号的调制原理如下图所示,与2ASK的产生方法相比,只是对s(t)的要求不同,在2ASK中s(t)是单极性的,而在2PSK中s(t)是双极性的基带信号。
(a)模拟调制方法
(b)键控法
2PSK信号的解调通常采用相干解调法,解调原理如下原理框图所示,在相干解调中,如何得到与接受的2PSK信号同频同相的相干载是关键问题,后续进一步介绍。
2PSK信号的调解原理框图
1.2二进制差分相移键控
2PSK相干调解时,由于载波恢复中相位有0、π模糊性,导致调解过程出现”反相工作”现象,恢复出的信号“1”和“0”倒置,从而使2PSK难以实际应用。
二进制差分相移键控(2DPSK)能够克服次缺点。
2DPSK是利用前后码元的载波相位变化传递数字信息,假设
为当前码元与前一码元的载波相位差,定义为一种数字信息与
之间的关系为
与是可将一组二进制数字信息与其对应的2DPSK信号的载波相位关系示例如下:
二进制数字信息:
110100110
2DPSK信号或相位:
(0)π00πππ0ππ
或:
(π)0ππ000π00
相应的2DPSK的典型波形如下图:
(a)绝对码11010
(b)相对码010011
对于相同的基带数字信息序列,由于序列初始码元的参考相位不同,2DPSK信号的位置可以不同。
2DPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信息的符号。
1.3四进制幅度调制原理
振幅键控时利用载波的振幅变化来传递数字信息,而其频率和初始相位保持不变。
4ASK信号的一般表达式为
如果其中是0的四进制信号,只要让载波信号与多进制信号通过乘法器即可调制
完成。
如果两个电平都不是0,只要让载波信号的振幅固定,通过乘法器与多进制信号相乘。
而解调的两种方法包括非相干解调和相干解调,其原理图如下:
三
1.3程序流程图:
2PSK调制流程图
二、二进制对称信道下的重复码编译码及错误概率统计仿真设计
2.1循环码的编码
循环码是采用循环移位的特性界定的一种线性分组码,除了具有线性分组码的一般特性之外,还具有循环性,是一种无权码。
循环码的最大特点就是码字循环特性,所谓循环特性是指循环码中任何一组循环码循环移位后,所得到的码组仍是循环码。
若(an-1an-2,,,a1an)为一组循环码组则(an-2an-3,,a0an-1)、(an-3an-4,,an-1an-2)、,,,还是循环码组,也就是说,不论是左移还是右移,也不论移多少位,仍然循环的循环码组。
例如(3,1)重复码两个码字是(0,0,0)和(1,1,1)。
编码forj=1:
L
fork=1:
n
code=[code;data(j,1)];
end
end
其中L为信息序列的码长,n为重复码字的长度。
这种编码方式时间开销较大。
2.2循环码的译码
decode=reshape(demodcode,n,L);
decode=decode;
weight=sun(decode);
weight=weight;
weight(weightweight(weight>n/2);
dedata=weight;
2.3循环码的纠错
当传输信息比特b=1,得到码字c=b*G=(1,1,1);若信道中存在噪声干扰,导致接收端收到一个错误的码元,如v=(1,0,1)此时根据多判决法可以判断发送的信息比特为1。
同理,若b=0,收到码字v=(1,0,0),可以判断出发送的信息bite为0。
通过这样的方式实现纠错。
有纠错定理:
若分组码有最小距离d,那么该码的最大检错数tmd和最大纠错数tmc满足:
(1)在检错模式时,有tmd=d-1
(2)在纠错模式下,tmc=[(d-1)/2]
(3)在混合检错模式下有
Tmc+tmd
d-1并同时又tmc2.4程序流程图如下
:
续下页
循环码的编码译码流程图
2.5程序脚本语言:
n=1;
N=100000;
forp=0.05:
0.01:
0.1
a=randi([01],1,N);
A=bsc(a,p);
B=bsc(a,p);
C=bsc(a,p);
D=bsc(a,p);
fori=1:
N
X(i)=A(i)+B(i)+C(i)+D(i);
end
fori=1:
100000
ifX(i)<=2
e(i)=0;
else
e(i)=1;
end
end
K=find(e~=a);
E(n)=length(K)/N;
n=n+1;
end
p=0.05:
0.01:
0.1;
plot(p,E);
2.6调试结果:
三、BPSK的调制与解调
3.1BPSK简介:
均匀分布在给定频带上的高斯噪声,概率分布正态分布。
高斯噪声是一种随机噪声,在任选瞬时中任取n个,其值按n个变数的高斯概率定律分布。
如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
如热噪声,散粒噪声等都是高斯白噪声。
加性高斯白噪声(AWGN)从统计上而言是随机无线噪声,其特点是其通信信道上的信号分布在很宽的频带范围内。
高斯白噪声的概念:
“白”指功率谱恒定;高斯指幅度取各种值时的概率p(x)是高斯函数。
加性高斯白噪声在通信领域中指的是一种各频谱分量服从均匀分布(即白噪声),且幅度服从高斯分布的噪声信号。
因其可加性、幅度服从高斯分布且为白噪声的一种而得名。
该噪声信号为一种便于分析的理想噪声信号,实际的噪声信号往往只在某一频段内可以用高斯白噪声的特性来进行近似处理。
3.2程序设计流程图:
3.3程序脚本语言:
用AWGN产生高斯白噪声
clear,clc;
N=0:
1000;
fs=1024;
t=N./fs;
y=3*sin(2*pi*t);
x=wgn(1,1001,2);
i=y+x;
subplot(3,1,1),plot(x);
subplot(3,1,2),plot(y);
subplot(3,1,3),plot(i);
3.4调试结果
高斯白噪声
运行结果
四、重复码和BPSK调制解调
4.1译码简介:
译码器分两种,一种是检错译码,一种是纠错译码,对于检错译码,记译码器输出为y,则译码器输出y=(r,s),r为当前接受向量,s是r是否具有差错的标志;对于纠错译码,其工作区又分为译码成功和译码失败两种状态。
译码器能够在达到译码码字差错概率最小的条件下输出一个确切的码字
,即y=
。
译码失败是指译码器不能输出一个正确的码字
,通常此时的译码器输出y与检测译码相同。
伴随式纠错译码是通用译码方法。
(1)按最可能出现的
个差错图案e,计算相应的伴随式s,并构建伴随式-差错检测图案表[s,e];
(2)对接受向量r计算伴随式s
(3)查[(s,e)]表的e;
(4)纠错计算
一个二源数据传输系统,在不同观察统计点上的误码率是不同的,尽管一个码字的差错检测并不一定导致全部消息的差错,但是对大多数纠错码,在统计上总可以认为消息与码字之间的映射,不改变码字差错导致在整个码长内比特差错的均匀分布特性,这样在统计意义上有
pbm≈pbd
若考虑码字是等概率发送的,则错误译码的误码率pbe为
其中,
是发送全0码字并错为j重码字的概率。
另一方面,一个码字差错冰然有至少2t+1位码字比特错,每个码字平均有(2t+1)k/n位消息比特错,所以
与
有如下渐进关系
≈(2t+1)
对于译码失败造成的误码率为
,有
因此译码后总的误码率为
,
=
+
二元数据传传输系统
Pbc是信道的比特差错概率。
4.2流程图
4.3程序代码
clearall;
clc;
t=0:
0.01:
1;
L=length(t);
N=10000;
ES_NO=2;
s=sin(2*pi*t);
A=randi(1,N);
b=zeros(1,5);
C=zeros(1,N);
fork=1:
N
fori=1:
5
b(i)=A(k);
end
x=b;
y=1-2*x;
z=[];
fori=1:
5
ify(i)==1
z=[zs];
else
z=[z-s];
end
end
r=awgn(z,ES_NO-10*log10(L/2)-10*log10(5),'measured');
foru=1:
5
a=r(u*L-(L-1):
u*L).*s;
d(u)=sum(a);
end
Y=sign(d);
forj=1:
5
ifY(j)==-1
C(k)=C(k)+1;
end
end
ifC(k)>=3
C(k)=1;
else
C(k)=0;
end
end
number=length(find(A~=C));
error=length(find(A~=C))/N;
4.4运行结果:
续下页
五、总结
数字调制是通信系统中最为重要的环节之一,数字调制技术的改进也是通信系统性能提高的重要途径。
本文首先分析了数字调制系统的几种基本调制解调方法,然后,运用Matlab仿真设计了这几种数字调制解调方法的仿真程序,主要包括BPSK,DPSK和BSC等。
通过仿真,分析了这三种调制解调过程中各环节时域和频域的波形,并考虑了信道噪声的影响。
通过仿真更深刻地理解了数字调制解调系统基本原理。