通信原理实验4

  • 格式:doc
  • 大小:121.50 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

仲恺农业工程学院信息学院通信工程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)蒙特卡罗仿真图如下: