哈工程通信原理软件仿真实验报告材料.docx
- 文档编号:28662062
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:27
- 大小:307.71KB
哈工程通信原理软件仿真实验报告材料.docx
《哈工程通信原理软件仿真实验报告材料.docx》由会员分享,可在线阅读,更多相关《哈工程通信原理软件仿真实验报告材料.docx(27页珍藏版)》请在冰豆网上搜索。
哈工程通信原理软件仿真实验报告材料
实验报告
课程名称
通信原理
实验项目名称
数字基带信号MATLAB软件仿真实验
数字调制解调MATLAB软件仿真实验
实验类型
实验学时
班级
学号
姓名
指导教师
实验室名称
实验时间
实验成绩
实验原理
(1分)
实验步骤
(2分)
实验结果
(2分)
总成绩
教师签字
日期
哈尔滨工程大学教务处制
实验一基带码型仿真
(1)单、双极性归零码仿真
1、实验原理
1.1归零码
归零码,是信号电平在一个码元之内都要恢复到零的编码方式,它包括曼彻斯特编码和差分曼彻斯特编码两种编码方式。
1.2单、双极性归零码
对于传输数字信号来说,最常用的方法是用不同的电压电平来表示两个二进制数字,即数字信号由矩形脉冲组成。
A)单极性不归零码,无电压表示”0”,恒定正电压表示”1”,每个码元时间的中间点是采样时间,判决门限为半幅电平。
单极性归零码(RZ)即是以高电平和零电平分别表示二进制码1和0,而且在发送码1时高电平在整个码元期间T只持续一段时间τ,其余时间返回零电平.在单极性归零码中,τ/T称为占空比.单极性归零码的主要优点是可以直接提取同步信号,因此单极性归零码常常用作其他码型提取同步信号时的过渡码型.也就是说其他适合信道传输但不能直接提取同步信号的码型,可先变换为单极性归零码,然后再提取同步信号
B)双极性不归零码,”1”码和”0”码都有电流,”1”为正电流,”0”为负电流,正和负的幅度相等,判决门限为零电平。
双极性归零码是二进制码0和1分别对应于正和负电平的波形的编码,在每个码之间都有间隙产生.这种码既具有双极性特性,又具有归零的特性.双极性归零码的特点是:
接收端根据接收波形归于零电平就可以判决1比特的信息已接收完毕,然后准备下一比特信息的接收,因此发送端不必按一定的周期发送信息.可以认为正负脉冲的前沿起了起动信号的作用,后沿起了终止信号的作用.因此可以经常保持正确的比特同步.即收发之间无需特别的定时,且各符号独立地构成起止方式,此方式也叫做自同步方式.由于这一特性,双极性归零码的应用十分广泛。
1.3功率谱密度
求信号的功率谱,功率谱=信号的频率的绝对平方/传输序列的持续时间,求得的功率谱进行单位换算以dB值表示
1.4占空比(DutyRatio)在电信领域中有如下含义:
例如:
脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。
在一段连续工作时间内脉冲占用的时间与总时间的比值。
2、仿真方案
2.1程序流程图
2.2参数设计
分别设置占空比为0.5、0.75、1.0
采样点数为2^k,k取正整数
每码元采样点数为64
码元速率为2Mb/s
3.实验程序
globaldttdfN
closeall
k=14;
Rt=0.5;%占空比
N=2^k;%采样点数
L=64;%每码元的采样点数
M=N/L;%码元数
Rb=2;%码速率为2Mb/s
Ts=1/Rb;%码元间隔
dt=Ts/L;%时域采样间隔
df=1/(N*dt);%频域采样间隔
T=N*dt;%截短时间
Bs=N*df/2;%系统带宽
t=linspace(-T/2,T/2,N);%时域横坐标
f=linspace(-Bs,Bs,N);%频域横坐标
EP=zeros(1,N);
forjj=1:
100
a=round(rand(1,M));%产生M个取值0,1等概的随机码
s=zeros(1,N);%产生一个N个元素的零序列
forii=1:
Rt*Ts/dt
s(ii+[0:
M-1]*L)=a;%产生单极性归零码
end
Q=t2f(s);%傅氏变换
P=Q.*conj(Q)/T;%P为单极性归零码的功率
EP=(EP*(ii-1)+P)/ii;%累计平均
aa=30+10*log10(EP+eps);%加eps以避免除以零
end
subplot(2,2,2)
plot(f,aa,'r')
title('单极性归零码的功率谱')
xlabel('f/MHZ')
ylabel('Ps(f)/MHZ')
axis([-15,+15,-50,50])
grid
subplot(2,2,1)
plot(t,s,'g')
title('单极性归零码')
xlabel('t(ms)')
ylabel('s(t)(V)')
axis([-5,5,-0.5,1.5])
grid
forjj=1:
100
a=round(rand(1,M));%产生M个取值0,1等概的随机码
a=1-2*a;
s=zeros(1,N);%产生一个N个元素的零序列
forii=1:
Rt*Ts/dt
s(ii+[0:
M-1]*L)=a;%产生双极性归零码
end
Q=t2f(s);%付氏变换
P=Q.*conj(Q)/T;%P为双极性归零码的功率
EP=(EP*(ii-1)+P)/ii;%累计平均
aa=30+10*log10(EP+eps);%加eps以避免除以零
end
subplot(2,2,4)
%set(2,'position',[10,50,750,350])%设定窗口位置及大小
plot(f,aa,'r')
title('双极性归零码的功率')
xlabel('f(MHZ)')
ylabel('Ps(f)(MHZ)')
axis([-15,+15,-50,50])
grid
subplot(2,2,3)
plot(t,s,'g')
title('双极性归零码')
xlabel('t(ms)')
ylabel('s(t)(V)')
axis([-5,5,-1.5,1.5])
grid
子程序
functionX=t2f(x)
globaldtdfNtfT
%X=t2f(x)
%X与x长度相同,并为2的整幂。
%本函数需要一个全局变量dt(时域取样间隔)
H=fft(x);
X=[H(N/2+1:
N),H(1:
N/2)]*dt;
end
图一占空比为0.5的波形
图二占空比为0.75的波形
图三占空比为1.0的波形
(2)AMI码和HDB3码仿真
一、实验原理
1.1AMI码
1码通常称为传号,0码则叫空号,这是沿用了早期电报通信中的叫法。
从形态上看,它已是三状态信号,所以AMI码是伪三进制码。
(1)编码规则:
消息代码中的0传输码中的0
消息代码中的1传输码中的+1、-1交替
例如:
消息代码:
1010100010111
AMI码:
+10-10+1000-10+1-1+1
(2)AMI码的特点:
1由AMI码确定的基带信号中正负脉冲交替,而0电位保持不变;所以由AMI码确定的基带信号无直流分量,且只有很小的低频分量;
2在接收端不易提取定时信号,由于它可能出现长的连0串;
3具有检错能力,如果在整个传输过程中,因传号极性交替规律受到破坏而出现误码时,在接收端很容易发现这种错误。
(3)解码规则
从收到的符号序列中将所有的-1变换成+1后,就可以得到原消息代码
1.2HDB3码
三阶高密度双极性码(英语:
HighDensityBipolarofOrder3,简称:
HDB3码)是一种适用于基带传输的编码方式,它是为了克服AMI码的缺点而出现的,具有能量分散,抗破坏性强等特点。
三阶高密度双极性码用于所有层次的欧洲E-carrier系统,HDB3码将4个连续的“0”位元取代成“000V”或“B00V”。
这个做法可以确保连续的violationsareofdifferingpolarity,即是相隔单数的一般B记号。
1先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI码就是HDB3码;
2若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,用表示(+1+,-1-);
3为了不破坏极性交替反转,当相邻V符号之间有偶数个非0符号时,再将该小段的第1个0变换成+B或-B,符号的极性与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化。
例如:
消息代码:
100001000011000011
AMI码:
+10000-10000+1-10000+1-1
HDB3码:
+1000+V-1000-V+1-1+B00+V-1+1
二、实验程序
globaldtdftfN
closeall
N=2^14;%采样点数
L=64;%每码元的采样点数
M=N/L;%码元数
Rb=2;
Ts=0.5;%码元宽度是0.5us
dt=Ts/L;
df=1/(N*dt);%MHz
RT=0.5;%占空比
T=N*dt;%截短时间
Bs=N*df/2;%系统带宽
t=[-T/2+dt/2:
dt:
T/2];%时域横坐标
f=[-Bs+df/2:
df:
Bs];%频域横坐标
EPAMI=zeros(size(f));
EPHDB=zeros(size(f));
forii=1:
8
ami=zeros(1,M);
hdb=zeros(1,M);
a=round(rand(1,M));
b=3;%表示0000之间循环个数
c=-1;%记载相邻V之间的1元素个数
sign1=-1;%标志前一个信号
sign2=-1;%标志前一个信号
forii=1:
M
ifa(ii)==1
sign1=0-sign1;
ami(ii)=sign1;
end
end
forii=1:
M
ifb==3%表示非0000
ifa(ii)==1
sign2=0-sign2;
hdb(ii)=sign2;
ifc>=0%表示不是第一个0000
c=c+1;%用来计算相邻v之间的非0元素个数
end
elseifii<=M-3&a(ii)+a(ii+1)+a(ii+2)+a(ii+3)==0
ifmod(c,2)==1%000V
hdb(ii+3)=sign2;
else%B00V
sign2=0-sign2;
hdb(ii)=sign2;
hdb(ii+3)=sign2;
end
c=0;
b=0;
end
elseifb<3%对0000的循环
b=b+1;
end
end
fori=[1:
L]
ami1(i+[0:
M-1]*L)=ami;
hdb1(i+[0:
M-1]*L)=hdb;
end
AMI=t2f(ami1);
PAMI=AMI.*conj(AMI)/T;
HDB=t2f(hdb1);
PHDB=HDB.*conj(HDB)/T;
EPAMI=(EPAMI*(ii-1)+PAMI)/ii;
EPHDB=(EPHDB*(ii-1)+PHDB)/ii;
%画出RNZ、AMI、HDB3码波形
figure
(1)
subplot(3,1,1)
tt=[1:
40];
stem(a(1:
40))
axis([1,40,-1.5,1.5])
title('原始RNZ信号')
subplot(3,1,2)
stem(tt,ami(1:
40)')
title('AMI码')
subplot(3,1,3)
stem(tt,hdb(1:
40))
title('HDB3码')
%画出AMI的功率谱密度图
figure
(2)
subplot(2,2,1)
stem(tt,ami(1:
40)','g')
title('AMI码')
subplot(2,2,3)
stem(tt,hdb(1:
40),'g')
title('HDB3码')
subplot(2,2,2)
aa=30+10*log10(EPAMI+eps);%加eps以避免除以零
bb=30+10*log10(EPHDB+eps);
plot(f,aa,'r');
grid
axis([-8,+8,-80,40])
xlabel('f/MHz')
ylabel('Ps(f)(dBm/MHz)')
title('AMI功率谱密度')
%画出HDB3的功率谱密度图
subplot(2,2,4)
plot(f,bb,'r');
grid
axis([-8,+8,-80,40])
xlabel('f/MHz')
ylabel('Ps(f)(dBm/MHz)')
title('HDB3功率谱密度')
end
实验2:
采用2DPSK调制的数字通信系统
1、实验原理
1.12DPSK信号原理
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。
现假设用Φ表示本码元初相与前一码元初相之差,并规定:
Φ=0表示0码,Φ=π表示1码。
则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。
图1.12DPSK信号
在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。
如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。
所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。
定义为本码元初相与前一码元初相之差,假设:
→数字信息“0”;
→数字信息“1”。
则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:
数字信息:
1011011101
DPSK信号相位:
或:
0
1.22DPSK信号的调制原理
图1.2.1模拟调制法
1.32DPSK信号解调的差分相干解调法
差分相干解调的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。
它的原理框图如图1.3.2所示。
图1.3.2差分相干解调原理图
二、仿真方案
实验先生成12个随机码元,再由12个随机码元由汉明码编码成21个码元。
clearall;
closeall;
fs=2000000;%设定系统的抽样频率
k=10000;%设定数字基带信号的频率
fc=100000;%设定正弦载波频率
t=0:
1/fs:
4000/fs;%仿真时间范围
p=10000;
s=randint(1,p,2);%设定需要产生的码元个数
m=s(ceil(k*t+0.01));%将基带生成时域信号
figure
(1)
subplot(311)
plot(t,m);
axis([010e-4-0.21.2]);
gridon;
title('数字基带信号');
b=randint(1,p,2);%将生成的基带转换为差分码
fori=1:
p
if(i==1)
if(s(i)==0)
b(i)=0;%通过模二加实现差分码的转换
elseb(i)=1;
end
elseif(s(i)==b(i-1))b(i)=0;
elseb(i)=1;
end
end
n=b(ceil(k*t+0.01));%将差分码生成时域信号
subplot(312)
plot(t,n);
axis([010e-4-0.21.2]);
gridon;
title('差分码')
x=(n-0.5).*2;
car=sin(2*pi*fc*t);%定义载波
dpsk=x.*car;%2dpsk信号的载波调制
subplot(313);
plot(t,car);
axis([010e-4-1.21.2]);
title('正弦载波');
figure
(2)
subplot(311);
plot(t,dpsk);
axis([010e-4-1.21.2]);
title('2DPSK信号');
gridon;
vn=0.05;
noise=vn.*(randn(size(t)));%产生噪音
subplot(312);plot(t,noise);
gridon;
title('噪音信号');
axis([010e-4-0.20.2]);
dpskn=(dpsk+noise);%调制后加噪
subplot(313);
plot(t,dpskn);
axis([010e-4-1.21.2]);
title('加噪后信号');
gridon;
%带通滤波器
fBW=40e3;f=[0:
3e3:
4e5];
w=2*pi*f/fs;
z=exp(w*j);
BW=2*pi*fBW/fs;a=.8547;
p=(j^2*a^2);gain=.135;
Hz=gain*(z+1).*(z-1)./(z.^2-(p));
Hz(Hz==0)=10^(8);
a=[100.7305];
b=[0.1350-0.135];
dait=filter(b,a,dpskn);
dait=dait.*10;
figure(3)
subplot(311);
plot(t,dait);
axis([010e-4-1.21.2]);
title('通过带通滤波后输出');gridon;
cm=dpsk.*car;%2dpsk相干解调
subplot(312);plot(t,cm);
axis([010e-4-1.21.2]);
gridon;
title('通过相乘器后输出');
%低通滤波器
p=0.72;gain1=0.14;
Hz1=gain1*(z+1)./(z-(p));
a1=[1-0.72];
b1=[0.140.14];
dit=filter(b1,a1,cm);
dit=dit-mean(dit);
subplot(313);
plot(t,dit);
axis([010e-4-1.21.2]);
title('通过低通滤波器后输出');
gridon;
%抽样判决器
H=1;L=0;Z=0;
len=length(dit);
forii=1:
len
ifdit(ii)>=Z
%z即为阈值
Vs(ii)=H;else
Vs(ii)=L;
end
end
figure(4)
subplot(311)
plot(t,Vs)
title('解调后差分信号')
axis([010e-4-0.21.2])
gridon;
c=randi(1,22,2);%产生解调后的差分码元
forf=0:
19
c(f+1)=fix(Vs(f*200+50)+0.2)
end
d=randint(1,21,2);%定义差分译码后的码元
forl=1:
21%得到差分译码后的码元
if(l==1)
if(s
(1)==0)
d
(1)=0;
elsed
(1)=1;
end
elseif(c(l)==c(l-1))d(l)=0;
elsed(l)=1;
end
end
y=d(ceil(k*t+0.01));
subplot(313);
plot(t,y);
axis([010e-4-0.21.2]);
title('码反变换输出');%基带信号与解调后的信号对比
subplot(312)
plot(t,m);
axis([010e-4-0.21.2]);
title('原始基带信号');
%误码率与信噪比关系
figure(5)
gridon
initial_snr=0;
final_snr=9;%snr信噪比
snr_step=0.01;
snr_in_dB=initial_snr:
snr_step:
final_snr;
fori=1:
length(snr_in_dB)
snr=10^(snr_in_dB(i)/10);%将信噪比单位dB转化一下
Pe(i)=erfc(sqrt(snr))*(1-1/2*erfc(sqrt(snr)));%2dpSK相干解调
end
semilogy(snr_in_dB,Pe);%信噪比取对数,单位变为dB
title('2DPSK误码率曲线');
holdon
yima=y;
ran=m;
snr_in_dB=8;
snr=10^(snr_in_dB/10);%信噪比取对数,单位变为dB
Err=length(find(yima~=ran))%计算解调信号中错误码元个数
Pe_fact=Err/10000;%计算实际误码率
semilogy(snr_in_dB,Pe_fact,'*');
Pe_throry=erfc(sqrt(snr))*(1-1/2*erfc(sqrt(snr)));%计算理论误码率
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工程 通信 原理 软件 仿真 实验 报告 材料