通信原理实验4
- 格式:doc
- 大小:121.50 KB
- 文档页数:6
仲恺农业工程学院信息学院通信工程092班徐铭璐200910324225
实验名称:2PSK与蒙特卡罗仿真
实验目的
(1)掌握2PSK的调制和蒙特卡罗仿真的原理
二、实验设备及器材
(1)计算机
三、实验内容
1:编写2PSK调制仿真程序。
2. 利用MA TLAB编程,对蒙特卡罗仿真的差错概率与理论差错概率进行比较。
四、实验报告
(一)二进制相移键控2PSK
(1)2PSK调制原理:
2PSK信号码元的“0”和“1”分别用两个不同的初始相位0和π来表示,而其振幅和频率保持不变。故2PSK信号表示式可写为:
S(t)=Acos(w0t+θ)
式中,当发送“0”时,θ=0;当发送“1”时,θ=π。
或者写成:
╱ Acos(w0t) 发送“0”时
s(t)=
╲Acos(w0t+π)发送“1”时由于上面两个码元的相位相反,故其波形的形状相同,但极性相反。因此,2PSK信号码元又可以表示成:
╱ Acosw0t 发送“0”时
s(t)=
╲-Acosw0t发送“1”时
(2)2PSK程序设计思想:
首先假设一个随机序列来代表二进制基带信号:用length函数判断输入序列a的长度。
设置变量i,a(i)表示a中的第i个值
For循环,i值逐渐增加,表示出二进制键控信号,如果是“1”,进行调制,然后画出这个码元调制后的图象Acos(2*pi*f1*t),如果码元为“0”,画出这个码元调制后的图象-Acos (2*pi*f1*t),直接调制为零画出图象。
程序框图如下:
(3)2PSK的程序如下:
1)一个码元包含整数个载波周期时
a=[0 1 0 0 1 1 0 1]; %任意给定一组二进制数
subplot(211)
stem(a);
n=length(a);
for i=1:n
if a(i)==1
t=i-1:0.01:i;
t1=[0:0.01:1];
s=-cos(2*pi*t1)
end;
if a(i)==0
t=i-1:0.01:i;
t1=[0:0.01:1];
s=cos(2*pi*t1);
end;
figure(1)
subplot(212);
plot(t,s);
hold on
TITLE('2PSK1')
end;
一个码元包含整数个载波周期时2PSK图如下:
在上图中相位为0表示“0”,相位为pi表示“1”. 2)一个码元比整数个载波周期多半个周期时
a=[0 1 0 0 1 1 0 1]; %任意给定一组二进制数
subplot(211)
stem(a);
n=length(a);
for i=1:n
if a(i)==1
t=i-1:0.01:i;
t1=[0:0.01:1];
s=-cos(3*pi*t1)
end;
if a(i)==0
t=i-1:0.01:i;
t1=[0:0.01:1];
s=cos(3*pi*t1);
end;
figure(1)
subplot(212);
plot(t,s);
hold on
TITLE('2PSK1')
end;
一个码元比整数个载波周期多半个周期时图如下:
在上图中相位为0表示“0”,相位为pi表示“1”.
(二)利用MA TLAB编程,对蒙特卡罗仿真的差错概率与理论差错概率进行比较。
(1)蒙特卡罗仿真的程序如下:
N=input('Enter number of symbols>'); %设置仿真系统数据符号的个数
snrdB_min=-3;snrdB_max=8; %设置信噪比取值的上下限
snrdB=snrdB_min:1:snrdB_max; %设置信噪比的向量,dB为单位
snr=10.^(snrdB/10); %计算相应的信噪比值
len_snr=length(snrdB); %信噪比取值的个数
%对每个给定的信噪比的通信系统,计算BER的估算值
for i=1:len_snr
sigma=sqrt(1/(2*snr(i))); %由给定的信噪比计算加性白噪声标准差
Ne=0; %差错计算器初始化
%传输N个数据符号,统计差错符号(即比特)
for k=1:N
d=round(rand(1)); %产生一个数据符号:可能是0.1
x_d=2*d-1; %得到发送器发送的数据符号:可能取值为-1,+1
n_d=sigma*randn(1); %产生信道的加性白噪声
y_d=x_d+n_d; %接收端的数据
%检测接收端的数据
if y_d>0;
d_est=1; %判断发送端发送的数据为1 else
d_est=0; %判断发送端发送的数据为0 end
%检测器判断结果与发送端发送的数据符号进行
if (d_est~=d)
Ne=Ne+1; %差错计算器加1
end
end
%计算误符号个数
errors(i)=Ne;
ber_sim(i)=errors(i)/N
end
%对每个给定信噪比的通信系统,计算BER的理论值
ber_theor=qfunc(sqrt(2*snr));
%BER曲线:理论值和估算值对比图
semilogy(snrdB,ber_theor,snrdB,ber_sim,'o')
axis([snrdB_min snrdB_max 0.0001 1])
xlabel('SNR in dB')
ylabel('BER')
legend('Theoretical','Simulation')
(2)蒙特卡罗仿真图如下: