资源描述
通信原理三级项目
班 级:通信工程2班
姓 名:
学 号:
指引教师:
教 务 处
5月
远距离点对点数字通信系统设计
(燕山大学信息科学与工程学院)
摘要:本文讨论进行了远距离点对点数字通信系统设计,着重讨论了模仿信号数字化过程,其中包括了为了提高系统性能进行信源编码技术和信道编码技术,我采用了HDB3码克服连0问题,运用奇偶监督码和差错重传机制控制误码率。此外,讨论了数字调制技术实现,本文采用最小频移键控调制和解调技术,并讨论了在高斯白噪声信道条件下此办法可靠性和有效性。
核心词:脉冲编码调制,HDB3码,奇偶监督码,MSK调制,高斯白噪声,MATLAB仿真
目录
1.通信系统概述 3
1.1普通通信系统模型 3
1.2数字通信系统模型 3
1.3远距离语音通信系统 4
2.信号数字化 4
2.1信号抽样 4
2.1.1抽样定理 4
2.1.2脉冲幅度调制PAM 5
2.2信源编码 6
2.2.1十三折线法 6
2.2.2脉冲编码调制PCM 7
2.3信道编码 9
2.3.1 HDB3码 9
2.3.2奇偶监督码 9
3.调制与解调 9
3.1 MSK调制 9
3.1.1 MSK调制原理 10
3.1.2 MSK调制 11
3.2 MSK解调 12
4.信道描述 13
5.系统总体设计 14
附录 MATLAB实当代码 14
1.通信系统概述
1.1普通通信系统模型
普通作为一种通信系统都由发送端和接受端两某些构成,而发送端则分为信息源和发送设备两某些,接受端与其相应有接受端和受信者两某些,发送端和接受端之间则是咱们信号传播所需要通过信道,信号在信道中传播时会有噪声混入,这也是咱们通信系统性能讨论终点。
图1-1 普通通信系统
信息源是把各种原始消息转换成原始电信号设备,它通过各种物理转换办法从自然界中采集信息并把它们转换成相应电信号,从而便于咱们通过电子设备对其进行进一步解决。受信者则是把接受到电信号还原成自然界中信息设备。
发送设备是通过对采集到原始电信号进行一系列解决把它变成适合于远距离传播信号。在模仿传播系统中涉及放大、滤波、模仿调制等过程;在数字传播系统中则包括编码、加密、数字调制等过程。接受设备则是上述过程逆过程,将信道中传播信号还原成易于解决直接电信号。
信道是从发送设备到接受设备之间信号传播物理煤质,分为无线信道和有限信道两大类,每种信道特点不同,应用场合也不相似。
噪声源是笼统一种说法,它集中表达分布于通信系统中各处噪声。
1.2数字通信系统模型
数字通信系统是通过数字信号来传递信息通信系统。需要注意是,这并不代表用于在信道中传播信号就是数字信号,数字通信系统是通过数字信号来表达要传送信息,而在传播过程中则还是运用高频调制模仿信号传播。
图1-2 数字通信系统
信源编码目是将信息源采集来信号进行编码从而提高信息有效性,对于模仿信号来说则还要完毕信号数字化,即采样、量化、编码过程,实现模数转换。信源译码则是它逆过程。
加密和解密作用是提高信息在传播过程中安全性,防止或延缓被盗取信息。
信道编码目是将数字信号转换成适合于在信道中传播码,增强抗干扰能力,涉及检错纠错能力等。信道译码是其逆过程。
数字调制是将数字信号调制成易于在信道中传播带通信号,其抗干扰性能是咱们讨论重要方面。数字解调是其逆过程。
数字通信系统具备抗干扰能力强、噪声不积累、传播差错可控、便于解决、易于集成以及保密性好等长处,广泛用于当代通信系统当中。
1.3远距离语音通信系统
本文中咱们讨论远距离语音通信系统,系统模型如下图所示。
语
音
信
号
PCM译
码
码型变换
MSK
解
调
MSK
调
制
码型变换
PCM编码
语
音
信
号
信道
图1-3 语音通信系统
咱们这里信道中噪声只考虑高斯白噪声,信道也抱负化为抱负全通信道。
这里咱们没有进行加密和解密解决,码型变换中采用了克服连0问题适合于远距离传播HDB3码,传播差错控制采用了奇偶监督码来监测差错,采用差错重传机制来控制误码率,不具备纠错能力。
为了减少误码率,咱们数字调制方式采用了最小频移键控MSK调制,它是2FSK调制改进,具备包络稳定、相位持续、带宽最小并且严格正交特性。
2.信号数字化
2.1信号抽样
2.1.1抽样定理
语音信号频带范畴大概当前300~3400Hz左右,进行A/D转换第一步就是对模仿信号进行抽样。理论上要用冲激信号对其进行采样,由于它物理不可实现咱们采用窄脉冲抽样,要想可以无失真地恢复原模仿信号,抽样频率必要满足奈奎斯特采样定理,即设模仿信号最高频率分量为fc,抽样频率fs必要不不大于等于fc,因此抽样频率要在6800Hz以上。
但在实际中,要想恢复模仿信号就要用到滤波器滤波,实际设计滤波器频率特性无法达到抱负滤波器那样严格选频特性,因此咱们在抽样时要留有一定余量来保证频谱不发生混叠,采样频率fs选取8000Hz为宜,这也是实际电话系统采用抽样频率。
2.1.2脉冲幅度调制PAM
设语音信号为m(t),其频谱函数为M(f),抽样过程就是用这个信号对一种脉冲载波s(t)(周期窄脉冲,频率为8000Hz)进行幅度调制,它输出就是时域卷积及频域相乘。它过程如下图所示。
图2-1 PAM调制过程
Ms(f)
Ms(f)H(f)
图中左边是时域波形,右边表达是相应频域波形,从图中可以看出,咱们已经将时间上持续模仿信号变成了时间上离散抽样信号,从其频域中可以看到要想恢复原信号只需要用一种低通滤波器滤波就可以完整恢复原信号。
抽样保持电路H(f)
m(t)
s(t)
图2-2 PAM调制框图
MH(t)
m(t)
设抽样保持电路传播函数为H(f),则其输出信号就是时域卷积频域相乘MH(f)=Ms(f)H(f),其中,代入得到,从式中可以里看出每一项都乘以了H(f),因此只要在低通滤波前加上一种传播函数为1/H(f)修正滤波器就可以恢复原始信号了,因此恢复框图如下图所示。
低通滤波器
修正滤波器
图2-3 恢复框图
至此咱们完毕了信号时间上离散化和恢复。
2.2信源编码
虽然时域抽样完毕了模仿信号时间上抽样,但是其幅度值依然是取持续变量,要想完全用二进制编码表达则会有无数多位,这显然是不适当。因此咱们要对其进行幅度上量化。
将抽样值范畴划提成M个区间,每个区间用一种电平表达。这样,共有M个离散电平,它们称为量化电平。用这M个量化电平表达持续抽样值办法称为量化。
量化电平数M和量化间隔Δv都是拟定,量化噪声Nq也是拟定。但是,语音信号在低频段较为集中。当信号小时,信号量噪比也小。因此,这种均匀量化器对于小输入信号很不利。为了克服这个缺陷,改进小信号时信号量噪比,在实际应用中常采用非均匀量化,咱们采用欧洲普遍采用A律压缩,即13折线法进行量化。
2.2.1十三折线法
咱们但愿信噪比不随信号强度变化,当输入电压x减小时,应当使量化间隔DΔx 按比例地减小,即规定Δx∝x,这在理论上规定压缩特性具备对数特性。十三折线压缩就是对其近似实现。
十三折线原理图如下图2-4所示。图中横坐标x在0至1区间中分为不均匀8段。1/2至1间线段称为第8段;1/4至1/2间线段称为第7段;1/8至1/4间线段称为第6段;依此类推,直到0至1/128间线段称为第1段。图中纵坐标y 则均匀地划分作8段。将与这8段相应座标点(x,y)相连,就得到了一条折线。
图2-4 十三折线法原理图
由图可见,除第1和2段外,其她各段折线斜率都不相似。在下表中列出了这些斜率。
表1 折线斜率表
折线段号
1
2
3
4
5
6
7
8
斜率
16
16
8
4
2
1
1/2
1/4
由于语音信号为交流信号,因此,上述压缩特性只是实用压缩特性曲线一半,在第3象限尚有对原点奇对称另一半曲线,其完整曲线如下图所示。
图2-5 十三折线
2.2.2脉冲编码调制PCM
把从模仿信号抽样、量化,直到变换成为二进制符号基本过程,称为脉冲编码调制。例如模仿信号抽样值为3.15,3.96,5.00,6.38,6.80和6.42,若按照“四舍五入”原则量化为整数值,则抽样值量化后变为3,4,5,6,7和6,在按照二进制数编码后就变成二进制符号:011、100、101、110、111和110。
咱们采用上面讲十三折线法对语音信号进行编码。在13折线法中采用折叠码有8位。其中第一位c1表达量化值极性正负。背面7位分为段落码和段内码两某些,用于表达量化值绝对值。其中第2至4位(c2 c3 c4)是段落码,共计3位,可以表达8种斜率段落;其她4位(c5 ~ c8)为段内码,可以表达每一段落内16种量化电平。段内码代表16个量化电平是均匀划分。因此,这7位码总共能表达27 = 128种量化值。在下面表中给出了段落码和段内码编码规则。
表2 段落码编码规则
段落序号
段落码c2 c3 c4
段落范畴(量化单位)
1
1 1 1
1024-2048
2
1 1 0
512-1024
3
1 0 1
256-512
4
1 0 0
128-256
5
0 1 1
64-128
6
0 1 0
32-64
7
0 0 1
16-32
8
0 0 0
0-16
表3 段内码编码规则
量化间隔
段内码c5 c6 c7 c8
量化间隔
段内码c5 c6 c7 c8
15
1 1 1 1
7
0 1 1 1
14
1 1 1 0
6
0 1 1 0
13
1 1 0 1
5
0 1 0 1
12
1 1 0 0
4
0 1 0 0
11
1 0 1 1
3
0 0 1 1
10
1 0 1 0
2
0 0 1 0
9
1 0 0 1
1
0 0 0 1
8
1 0 0 0
0
0 0 0 0
运用MATLAB进行PCM编译码如下:
咱们懂得,PCM编码过程是存在量化误差,而咱们解码出成果正是证明了这一点。
2.3信道编码
由于在远距离传播过程中连0问题会使得接受方无法及时获取同步时钟而使得译码变得混乱,此外为了获得检纠错能力咱们也要加上监督码,这时咱们就要对编码进行再次编码使其变成适合于在信道中传播码字,即信道编码。
2.3.1 HDB3码
由于HDB3码具备无直流成分,高、低频分量少,连“0”个数不超过3个利于在接受端提取定期信号特点,在远距离传播中非常合用。其编码规则如下:
2.3.2奇偶监督码
奇偶监督码分为奇数监督码和偶数监督码,原理相似。咱们采用偶数监督码,无论信息位有多少,其监督码只有一位,它使得码组中1数目为偶数,即满足an-1 an-2 …… a0=0,式子中a0是监督位。
这种编码可以检测奇数个错码,在接受端按照上式求“模2和”,若计算成果为1则阐明存在错码,否则则以为无错码,这是最简朴一种检错编码办法,没有纠错能力,可以采用差错重传机制来修正。
3.调制与解调
3.1 MSK调制
最小频移键控(MSK)信号是一种包络恒定、相位持续、带宽最小并且严格正交2FSK信号,MSK可以当作是OQPSK优化。当前MSK已经应用于诸多通信系统中。例如,SMSK(serial MSK)已经在NASA高档通信技术卫星(ACTS)系统中应用,GMSK(Gaussian MSK)已是欧洲全球移动通信(GSM)系统调制方式。
下图是MSK信号调制波形示意图。
图3-1 MSK调制波形示意
3.1.1 MSK调制原理
MSK信号第k个码元为,其中(k-1)Ts<t<kTs。式中,s代表载波角频率,Ts是码元宽度,k是第k个码元初始相位,ak=1(当输入码元为1时ak=+1,当输入码元为0时ak=-1)。
需要注意是相位与码元有关。相位持续普通条件是前一码元末尾总相位等于后一码元开始时总相位,即。
化简后得到,在用相干法接受时,可以假设ak-1初始值等于0,这时由上式可知(mod 2π),这阐明MSK信号先后码元具备有关性。
咱们将MSK信号第k个码元表达式子展开化简,令pk=、,咱们发现:
因此咱们可以采用类似差分编码方式来得到pk和qk,其原理框图如下。
pk
ak
串/并
转换
差分编码
qk
图3-2 p k和q k实现
3.1.2 MSK调制
从原理讨论中咱们可以得到MSK调制式如下:
从而咱们可以得到MSK调制实现原理框图如下图3-3,至此咱们得到了高频调制MSK信号,这里可以看出,虽然咱们对原始信息进行了数字化,但在需要传播时,咱们依然把其调制成高频模仿信号进行发送,这有助于在信道中传播或天线发射。
图3-3 MSK调制实现原理框图
3.2 MSK解调
对最小频移键控调制信号解调时咱们采用相干解调办法。用本地载波作为相干载波与接受到信号相乘,再通过积分判决来解调出调制之前信号。
若输入两个码元为“+1,+1”或“+1,-1”,则qk(t)值在0 < t <2Ts期间始终为正。若输入一对码元为“-1,+1”或“-1,-1”,则值始终为负。
因而,若在此2Ts期间对上式积分,则积提成果为正值时,阐明第一种接受码元为“+1”;若积提成果为负值,则阐明第1个接受码元为“-1”。按照此法,在Ts < t <3Ts期间积分,就能判断第2个接受码元值,依此类推。
图3-4 MSK解调
图中两个积分判决器积分时间长度均为2Ts,但是错开时间Ts。上支路积分判决器先给出第2i个码元输出,然后下支路给出第(2i+1)个码元输出。
MSK信号是用极性相反半个正(余)弦波形去调制两个正交载波。因而,当用匹配滤波器分别接受每个正交分量时,MSK信号误比特率性能和2PSK、QPSK及OQPSK等性能同样。但是,若把它当作FSK信号用相干解调法在每个码元持续时间Ts内解调,则其性能将比2PSK信号性能差3dB。
运用MATLAB仿真得到MSK调制传播过程中MSK信号如图所示:
通过计算咱们得到了误码率和信噪比之间关系曲线,其中实线是理论上误码率值随信噪比变化曲线,以‘*’标示出来曲线就是实际中误码率与信噪比之间关系曲线。
4.信道描述
信道可分为有线信道(电线、光纤)和无线信道(电磁波,含光波)。信道中存在各种干扰。
通信系统中最简朴数学模型就是加性噪声信道,信道仅对通过它传播信号s(t)叠加一种随机噪声过程n(t)。从物理上讲,加性噪声过程来自通信系统电子元件和接受机放大器,或者来自传播中遇到干扰。这种类型噪声从记录特性上属于高斯噪声过程。因而相应数学模型普通称为加性高斯噪声信道。
这种信道幅度特性是平坦,并且对于所有频率,其相频响应是线性,因而调制信号通过高斯白噪声信道不会引起不同频率分量幅度损失和相位失真,不存在衰落。唯一畸变是由高斯白噪声引起。
“白”意味着噪声是一种在所有频率上具备平坦功率谱密度平稳随机过程。习惯上,假定其功率谱密度为:,这意味着白色过程就有无限大能量,这固然是数学上抱负状况。
y(t)
x(t)
咱们讨论信道中噪声对信号传播影响都以高斯白噪声为前提进行讨论。其原理框图如下。
n(t)
图4-1 信道噪声
5.系统总体设计
本通信系统设计思路如上图所示,语音信号先通过抽样电路进行时间上离散化,再通过PCM编码电路,采用13折线法进行幅度上量化编码,即信源编码。
随后进行码型变换即信道编码,涉及转换成HDB3码和添加奇偶监督码两步,此时信号成为了适合于在信道中传播码字。
紧接着咱们对信道编码后数字信号进行了MSK调制,将其调制到高频载波上用于在信道中传播,MSK调制具备良好频带特性和较低误码率。
在信道中传播时信号加入了高斯白噪声,这是一种加性噪声,到达接受端后先进行MSK信号解调,将其解调成数字信号,这时依照信号奇偶监督位来进行检错,如果发现错误则要给发送端一种反馈进行差错重传,如果没有错误,则进行信道译码、PCM译码,这时再通过一种低通滤波器和平滑滤波器就可以将原始语音信号恢复出来,达到了通信目。
数字调制
信
源
编码
信
道编码
信
源
噪声
信道
数字解调
信道译码
信源译码
信
宿
图5-1 通信系统原理图
附录 MATLAB实当代码
%pcm编码
function [pcm_out]=pcm_encode(x)
r=length(x);
pcm_out=zeros(r,8);
for i=1:r
if x(i)>=0
pcm_out(i,1)=1;
else
pcm_out(i,1)=0;
end
if abs(x(i))>=0&abs(x(i))<16
step=1;st=0;pcm_out(i,2)=0;pcm_out(i,3)=0;pcm_out(i,4)=0;
elseif 16<=abs(x(i))&abs(x(i))<32
step=1;st=16;pcm_out(i,2)=0;pcm_out(i,3)=0;pcm_out(i,4)=1;
elseif 32<=abs(x(i))&abs(x(i))<64
step=4;st=64;pcm_out(i,2)=0;pcm_out(i,3)=1;pcm_out(i,4)=1;
elseif 128<=abs(x(i))&abs(x(i))<256
step=8;st=128;pcm_out(i,2)=1;pcm_out(i,3)=0;pcm_out(i,4)=0;
elseif 256<=abs(x(i))&abs(x(i))<512
step=16;st=256;pcm_out(i,2)=1;pcm_out(i,3)=0;pcm_out(i,4)=1;
elseif 512<=abs(x(i))&abs(x(i))<1024
step=32;st=512;pcm_out(i,2)=1;pcm_out(i,3)=1;pcm_out(i,4)=0;
else 1024<=abs(x(i))
step=64;st=1024;pcm_out(i,2)=1;pcm_out(i,3)=1;pcm_out(i,4)=1;
end
tmp=floor((abs(x(i))-st)/step);
t=dec2bin(tmp,4)-48;
if tmp==16
t(1:4)=[1 1 1 1];
end
pcm_out(i,5:8)=t(1:4);
end
display(pcm_out);
%pcm译码
function [out]=pcm_decode(in,v)
n=length(in);
in=reshape(in,8,n/8);
slot(1)=0;
slot(2)=16;
slot(3)=32;
slot(4)=64;
slot(5)=128;
slot(6)=256;
slot(7)=512;
slot(8)=1024;
step(1)=1;
step(2)=1;
step(3)=2;
step(4)=4;
step(5)=8;
step(6)=16;
step(7)=32;
step(8)=64;
for i=1:n/8
ss=in(i,1)*2-1;
tmp=in(i,2)*4+in(i,3)*2+in(i,4)+1;
st=slot(tmp);
dt=(in(i,5)*8+in(i,6)*4+in(i,7)*2+in(i,8))*step(tmp)+0.5*step(tmp);
out(i)=ss*(st+dt)/2048*v;
end
%MSK调制与解调
function out = delay(data,n,sample_number)
out = zeros(1,length(data));
out(n*sample_number+1:length(data))=data(1:length(data)-n*sample_number);
End
%----------------差分编码---------------
function [data_diff] = difference(data)
data_diff = zeros(1,length(data));
data_diff(1) = 1 * data(1);
for i = 2:length(data)
data_diff(i) = data_diff(i-1) * data(i);
End
%----------------调制--------------
function [signal_out,I_out,Q_out]=mod_msk(data,data_len,sample_number,Rb)
[data_diff] = difference(data);
I(1) = 1;
for i = 1:2:data_len
Q(i) = data_diff(i);
Q(i+1) = data_diff(i);
end
for i = 2:2:data_len
I(i+1) = data_diff(i);
I(i) = data_diff(i);
end
for i = 1:sample_number
I1(i:sample_number:data_len*sample_number) = I(1:data_len);Q1(i:sample_number:data_len*sample_number) =Q(1:data_len);
end
t=1/fs:1/fs:data_len*Tb;
I_out = I1 .* cos(pi*t/2/Tb);
Q_out = Q1 .* sin(pi*t/2/Tb);
signal_out = I_out + j*Q_out;
subplot(221)
plot(data,'.-');title('MSK传播数据');xlabel('时间');ylabel('幅度')
subplot(222)
plot(data_diff,'.-');title('差分后数据');xlabel('时间');ylabel('幅度')
subplot(223)
plot(I1,'.-');title('加权前I路');xlabel('时间');ylabel('幅度');
subplot(224)
plot(Q1,'.-');title('加权前Q路');xlabel('时间');ylabel('幅度');
figure(2)
subplot(221)
plot(cos(pi*t/2/Tb),'.-');title('加权函数cos(πt/(2Tb))');xlabel('时间');ylabel('幅度')
subplot(222)
plot(sin(pi*t/2/Tb),'.-');title('加权函数sin(πt/(2Tb))');xlabel('时间');ylabel('幅度')
subplot(223)
plot(I_out,'.-');title('加权后I路');xlabel('时间');ylabel('幅度');
subplot(224)
plot(Q_out,'.-');title('加权后Q路');xlabel('时间');ylabel('幅度');
%----------------解调----------------
clear all
close all
data_len =3000;%码元个数
sample_number = 8;%采样个数
Rb = 240;%码元速率
fc = 9600;%载波频率
data = rand_binary(data_len);
[signal_out,I_out,Q_out] =mod_msk(data,data_len,sample_number,Rb);
multi = fc/Rb;
I_temp=interp(I_out,multi);
Q_temp=interp(Q_out,multi);
Fs=fc*sample_number;
t=1/Fs:1/Fs:length(I_temp)*1/Fs;
signal_i=I_temp.*cos(2*pi*fc*t);
signal_q=Q_temp.*sin(2*pi*fc*t);
signal_mod=I_temp.*cos(2*pi*fc*t)-Q_temp.*sin(2*pi*fc*t);
for SNR = 0:8
signal_mod1 = 0.01 * awgn(signal_mod,SNR);
N=300;
F=[0,fc-1000,fc+1000,Fs/2]*2/Fs;
A=[1,1,0,0];
lpf=firls(N,F,A);
[amp_lpf,w]=freqz(lpf);
I_dem=signal_mod1.*cos(2*pi*fc*t)*2 .* cos(pi*t*Rb/2);I_dem=conv(I_dem,lpf);
I_dem=I_dem(N/2+1:N/2+length(I_temp));
Q_dem=signal_mod1.*sin(2*pi*fc*t)*2 .* sin(pi*t*Rb/2);Q_dem=conv(Q_dem,lpf);
Q_dem=-Q_dem(N/2+1:N/2+length(I_temp));
I_dem_out=zeros(1,length(I_dem)/multi);
for i=1:length(I_dem_out)
I_dem_out(i)=I_dem(multi*(i-1)+1);
Q_dem_out(i)=Q_dem(multi*(i-1)+1);
end
demod_data = zeros(1,data_len);
for i = 1:data_len
I_dem1(i) = I_dem_out(i*sample_number)>0;
Q_dem1(i) = Q_dem_out(i*sample_number)>0;
end
for i = 1:2:data_len
m1(i) = Q_dem1(i);
end
for i = 2:2:data_len
m1(i) = I_dem1(i);
end
m1 = 2*m1-1;
demod_data = zeros(1,data_len);
demod_data(1) = 1 * m1(1);
for i = 2:data_len
demod_data(i) = m1(i-1) * m1(i);
end
[num,ber(SNR+1)]=symerr(demod_data,data);
end
semilogy([0:8],ber,'r*-');
snr = 0:0.1:8;
for i = 1:length(snr)
snr1(1,i) = 10^(snr(1,i)/10);
ps(1,i) = 1/2 * erfc(sqrt(snr1(1,i)));
pe(1,i) = 2 * ps(1,i);
end
hold on
semilogy([0:.1:8],pe);
展开阅读全文