通信原理软件实验.docx

上传人:b****6 文档编号:3192341 上传时间:2022-11-19 格式:DOCX 页数:19 大小:214.18KB
下载 相关 举报
通信原理软件实验.docx_第1页
第1页 / 共19页
通信原理软件实验.docx_第2页
第2页 / 共19页
通信原理软件实验.docx_第3页
第3页 / 共19页
通信原理软件实验.docx_第4页
第4页 / 共19页
通信原理软件实验.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

通信原理软件实验.docx

《通信原理软件实验.docx》由会员分享,可在线阅读,更多相关《通信原理软件实验.docx(19页珍藏版)》请在冰豆网上搜索。

通信原理软件实验.docx

通信原理软件实验

实验报告

 

课程名称

通信原理

实验项目名称

通信原理软件实验

实验类型

实验学时

班级

学号

姓名

指导教师

实验室名称

实验时间

实验成绩

实验原理

(1分)

实验步骤

(2分)

实验结果

(2分)

总成绩

教师签字

日期

 

哈尔滨工程大学教务处制

通信原理软件仿真实验

一、实验题目

1、基带码型仿真

1)通过仿真观察占空比为50%、75%以及100%的单、双极性归零码波形以及其功率谱,分析不同占空比对仿真结果的影响。

2)通过仿真产生一随机消息码序列,将其分别转换为AMI码和HDB3码,观察它们的波形及其功率谱密度。

2、数字带通调制仿真

设计一个采用2DPSK调制的数字通信系统:

产生二进制随机数据,并仿真其对应的2DPSK调制波形,分析其频谱。

所产生的调制波形加入不同信噪比的白噪声,选取合适的接收方案,画出系统误码率曲线,并与理论误码率进行对比。

2、实验基本原理

1、基带码型仿真

想要产生不同占空比的单、双极性归零码波形,首先要确定码元序列,其次要对码元序列进行采样并输出到图表上。

确定码元序列的原理很简单,对于单极性码元,只需要产生一系列随机数并判断随机数是否大于零即可。

若大于等于零则码元为1,若小于零则码元为0。

对于双极性码元,可以通过判断随机数的极性来产生码元。

AMI码为传号交替反转码,为1反转,否则归零。

而HDB3码则是在AMI的基础上进行变换。

通过检测4个及以上的连零来插入破坏符号(V)。

倘若两个相邻破坏符号间的非零符号有偶数个时,还要插入B符号。

2、数字带通调制仿真

2DPSK数字调制系统的调制过程可以认为成差分双极性非归零矩形脉冲与高频载波的乘积。

至于解调过程,我在本次实验中选取的为相位比较法。

基本原理是将接收到的调制波形延迟一个码元周期,再与未延迟的调制波形相乘,分析该信号,从而解调码元。

3、仿真方案

1、基带码型仿真

2、数字带通调制仿真

4、实验结果

1、基带码型仿真

1)

占空比为0.5

占空比为0.75

占空比为1

分析:

由实验结果可知,随着占空比的增大,码元信号的直流分量会逐渐增多,频谱变窄。

而且,相较于单极性,双极性的功率谱要更宽一些。

2)

(参数:

HDB3码中V为1.5,B为2)

分析:

通过以上实验结果可见,AMI和HDB3码波形正确,而二者的功率谱在如此有限的码元数量内看不出来太多的区别。

相比之下,HDB3的功率谱成分要更复杂,更多。

2、数字带通调制仿真

上图为综合了调制和解调结果的总图。

(仅取了一种信噪比)

分析可得:

调制完成后的2DPSK波形是正确的,叠加噪声后,送入解调器,得到的码元序列如图,可见解调结果还是比较正确和稳定的。

上图为选取了100000个码元情况下的解调器信噪比和误码率之间的关系。

欲要求误码率在

,则只需保证信噪比

即可。

上图为选取100000个码元情况下的误码率理论曲线。

可见仿真得到的曲线要比理论曲线的误码率更小。

原因可能是该处的信噪比较小,与书中理论公式所要求的大信噪比条件不符,故而误差较大。

5、程序源代码

1、单双极性码元序列及可调的占空比:

function[output_args]=exam_1(D)

L=64;%每码元采样点数

N=512;%采样点数

M=N/L;%码元数

Rs=2;%码元速率(个)/s

Ts=1/Rs;%比特间隔

fs=L/Ts;%采样速率

T=N/fs;%截短时间

t=[-(T/2):

1/fs:

(T/2-1/fs)];%时域采样点

fin=zeros(1,N);

fin1=zeros(1,N);

forloop=1:

1000

a=(randn(1,M)>0);%产生单极性数据

a1=sign(randn(1,M));%产生双极性数据

tmp=zeros(L,M);

tmp1=zeros(L,M);

L1=L*D;%D是占空比

tmp([1:

L1],:

)=ones(L1,1)*a;

tmp1([1:

L1],:

)=ones(L1,1)*a1;

s=tmp(:

)';

s1=tmp1(:

)';

[f,S]=T2F(t,s);

[f1,S1]=T2F(t,s1);

P=abs(S).^2/T;%样本信号的功率谱密度

P1=abs(S1).^2/T;

fin=fin*(1-1/loop)+P/loop;

fin1=fin1*(1-1/loop)+P1/loop;

end

subplot(2,2,1)

plot(t,s);

axis([-2,2,-2,2]);

title('单极性');

gridon;

subplot(2,2,2)

plot(t,s1);

axis([-2,2,-2,2]);

title('双极性');

gridon;

subplot(2,2,3)

plot(f,fin);

title('单极性功率谱');

subplot(2,2,4)

plot(f1,fin1);

title('双极性功率谱');

end

2、AMI和HDB3码的产生:

function[output_args]=AMI_HDB3(D)

L=64;%每码元采样点数

N=1280;%采样点数

M=N/L;%码元数

Rs=2;%码元速率(个)/s

Ts=1/Rs;%比特间隔

fs=L/Ts;%采样速率

T=N/fs;%截短时间

t=[-(T/2):

1/fs:

(T/2-1/fs)];%时域采样点

tmp=zeros(L,M);

a=(randn(1,M)>0);%产生单极性数据

L1=L*D;%D是占空比

tmp([1:

L1],:

)=ones(L1,1)*a;

s=tmp(:

)';

a_AMI=zeros(1,M);

k=1;

m=0;

tmp_AMI=zeros(L,M);

%产生AMI码元数据

fori=1:

M

if(a(i)==1)

if(k==1)

a_AMI(i)=1;

m=i;

k=k+1;

else

a_AMI(i)=-a_AMI(m);

m=i;

k=k+1;

end

else

a_AMI(i)=0;

end

end

tmp_AMI([1:

L1],:

)=ones(L1,1)*a_AMI;

s_AMI=tmp_AMI(:

)';

%产生HDB3码数据

a_HDB3=a_AMI;

V=1.5;

B=2;

m=0;

k0=0;%连零计数

f0=0;%V之间的非零计数

v0=0;%V计数

flag=0;%是否有B出现

fori=1:

M

a_HDB3(i)=a_HDB3(i)*(-1)^(flag);

if(a_HDB3(i)==0)

k0=k0+1;

if(k0==4)

if(m==0)

a_HDB3(i)=V;

k0=0;

v0=1;

f0=0;

else

a_HDB3(i)=a_HDB3(m)*V;

v0=v0+1;

k0=0;

if(v0==1)

f0=0;

else

if(mod(f0,2)==0)

f0=0;

i1=m+1;

a_HDB3(i1)=-a_HDB3(m)*B;

i1=m+4;

a_HDB3(i1)=sign(a_HDB3(m+1))*V;

flag=flag+1;

else

f0=0;

end

end

end

end

else

k0=0;

f0=f0+1;

m=i;

end

end

tmp_HDB3=zeros(L,M);

tmp_HDB3([1:

L1],:

)=ones(L1,1)*a_HDB3;

s_HDB3=tmp_HDB3(:

)';

%求取功率谱

[f,S_AMI]=T2F(t,s_AMI);

[f1,S_HDB3]=T2F(t,s_HDB3);

P=abs(S_AMI).^2/T;

P1=abs(S_HDB3).^2/T;

figure

(1)

subplot(3,1,1)

plot(t,s);

axis([-5,5,-2,2]);

title('单极性');

gridon;

subplot(3,1,2)

plot(t,s_AMI);

axis([-5,5,-2,2]);

title('AMI码');

gridon;

subplot(3,1,3)

plot(t,s_HDB3);

axis([-5,5,-2,2]);

title('HDB3码');

gridon;

figure

(2)

subplot(2,1,1)

plot(f,P);

title('AMI码功率谱');

gridon;

subplot(2,1,2)

plot(f1,P1);

title('HDB3码功率谱');

gridon;

end

3、2DPSK调制:

function[wm,xzb]=DPSK(D,M)

L=64;%每码元采样点数

N=L*M;%采样点数

%M=N/L;

Rs=2;%码元速率(个)/s

Ts=1/Rs;%比特间隔

fs=L/Ts;%采样速率

T=N/fs;%截短时间

t=[-(T/2):

1/fs:

(T/2-1/fs)];%时域采样点

f0=2;

zb=cos(2*pi*f0*t-pi/2);%产生载波数据

tmp=zeros(L,M);

a=(randn(1,M)>0);%产生单极性数据

L1=L*1;

tmp([1:

L1],:

)=ones(L1,1)*a;

s=tmp(:

)';

a_AMI=zeros(1,M);

tmp_AMI=zeros(L,M);

a_AMI

(1)=1;

%产生差分双极性非归零码元数据

fori=2:

M

if(a(i)==1)

a_AMI(i)=-a_AMI(i-1);

else

a_AMI(i)=a_AMI(i-1);

end

end

tmp_AMI([1:

L1],:

)=ones(L1,1)*a_AMI;

s_AMI=tmp_AMI(:

)';

s_jt=zeros(1,N);

tz_DPSK=s_AMI.*zb;%产生调制波形

noise=randn(1,N)*D;%D为噪声比例

P_noise=(sum(noise.^2))/T;%求出噪声功率

P_sig=(sum(tz_DPSK.^2))/T;%求出信号功率

tz_noise=tz_DPSK+noise;%加入噪声

xzb=P_sig/P_noise;

forn=65:

N

s_jt(n)=tz_noise(n-64);

end

jt_DPSK=s_jt;%产生解调波形(携带噪声)

%-----相位比较法解调-----

fx=tz_noise.*jt_DPSK;

jt_sig=zeros(1,N);%解调出的码元数据

jt=zeros(1,M);%解调出的码元序列

forloop=1:

N

if(fx(loop)<0)

jt_sig(loop)=1;

end

end

k=1;

cnt0=0;

cnt1=0;

m=1;

forloop=1:

N

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1