通信原理软件实验.docx

上传人:b****6 文档编号:15352077 上传时间:2023-07-03 格式:DOCX 页数:15 大小:36.30KB
下载 相关 举报
通信原理软件实验.docx_第1页
第1页 / 共15页
通信原理软件实验.docx_第2页
第2页 / 共15页
通信原理软件实验.docx_第3页
第3页 / 共15页
通信原理软件实验.docx_第4页
第4页 / 共15页
通信原理软件实验.docx_第5页
第5页 / 共15页
通信原理软件实验.docx_第6页
第6页 / 共15页
通信原理软件实验.docx_第7页
第7页 / 共15页
通信原理软件实验.docx_第8页
第8页 / 共15页
通信原理软件实验.docx_第9页
第9页 / 共15页
通信原理软件实验.docx_第10页
第10页 / 共15页
通信原理软件实验.docx_第11页
第11页 / 共15页
通信原理软件实验.docx_第12页
第12页 / 共15页
通信原理软件实验.docx_第13页
第13页 / 共15页
通信原理软件实验.docx_第14页
第14页 / 共15页
通信原理软件实验.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

通信原理软件实验.docx

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

通信原理软件实验.docx

通信原理软件实验

通信原理软件实验

1、设计题目

1、基带码型仿真

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

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

2、数字带通调制仿真

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

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

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

2、实验基本原理

1、基带码型仿真

单极性归零码

发送“l”时,在整个码元期间高电平只持续一段时间,在码元的

其余时间内则返回到零电平;发送“0”时低电平。

常记作RZ。

双极性归零码

10100110

AMI码

将消息代码“0”(空号)和“1”(传号)按如下规则进行编码:

代码的0

仍变换为传输码的0,而把代码中的1交替地变换为传输码的+1、-1、

+1、-1、…。

消息代码:

10011000111...

AMI码:

+100-1+1000-1+1-1...

由于AMI码的传号交替反转,故由它决定的基带信号将出现正负脉冲交

替,而0电位保持不变的规律。

由此看出,这种基带信号无直流成分,

且只有很小的低频成分,因而它特别适宜在不允许这些成分通过的信道

中传输。

但是,AMI码有一个重要缺点,即当它用来获取定时信息时,

由于它可能出现长的连0串,会造成提取定时信号的困难。

HDB3码

1)先把消息代码变换成AMI码,当没有4个以上连0串时,结束编码;

2)当出现4个以上连0串时,则将每4个连0小段的第4个0变换成与其前一非0符号同极性的符号,称为破坏符号V(即+1记为+V,-1记为-V)。

3)当相邻V符号之间有奇数个非0符号时,结束编码;当有偶数个非0符号时,将该小段的第1个0变换成+B或-B,B符号的极性与前一非0符号的相反,并让后面的非0符号从V符号开始再交替变化。

代码:

100001000011000011

AMI码:

-10000+l0000-1+10000-1+1

-1000-V+l000+V-1+1000+V-1+1

HDB3码:

-1000-V+l000+V-1+1-B00-V+1-1

2、数字带通调制仿真

2PSK基本原理

二进制移相键控是用二进制数字信号0,1去控制载波的两个相位0,π

的方法,其时域表达式为

式中

,为双极性数字信号,若g(t)是脉宽为Ts的单个矩形脉冲,则有

以载波的不同相位直接去表示相应数字信息的相位键控称为绝对

移相,即2PSK。

2PSK信号的产生

(a)模拟相乘法(b)键控法

2PSK的解调(相干解调)

2PSK信号的频谱

2PSK和2ASK的形式完全相同,只是的取值不同,求2PSK信号

的功率谱密度,可采用与求2ASK信号功率谱密度相同的方法。

2PSK信号功率谱密度

由于g(t)是双极性矩形脉冲信号上式变为

当概率相等时,P=1/2,上式变为

最后得到

2PSK信号频谱同样由连续谱和离散谱构成,当双极性信号等概出现时,将不存在离散谱部分。

连续谱结构与ASK信号连续谱结构基本相同,仅相差一个常数因子;2PSK信号带宽与2ASK信号带宽相同。

3、仿真方案(程序流程图),参数设置

4、实验结果(仿真图)及分析

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

图占空比为50%、75%、100%的单极性归零码波形

图占空比为50%、75%、100%的双极性归零码波形

图占空比为50%、75%、100%的单极性归零码功率谱

图占空比为50%、75%、100%的双极性归零码功率谱

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

图AMI码及HDB3码的波形

图AMI码及HDB3码的功率谱

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

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

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

图2PSK信号的波形及功率谱密度

图2PSK信号的误码率曲线

5、程序源代码

1、基带码型仿真

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

%%生成单个码元

Ts=1;%码元周期

N_sample=128;%单个码元抽样点数

dt=Ts/N_sample;%抽样时间间隔

N=50;%码元数

t=0:

dt:

(N*N_sample-1)*dt;%序列传输时间

duty1=ones(1,N_sample);%100%单极性归0码

duty2=[ones(1,N_sample/2),zeros(1,N_sample/2)];%50%单极性归0码

duty3=[ones(1,N_sample/4),ones(1,N_sample/4),ones(1,N_sample/4),zeros(1,N_sample/4)];

%75%单极性归0码

%%生成随机序列

RAN=randi([0,1],1,N);%随机01序列

code1=[];

code2=[];

code3=[];

fori=1:

N%生成序列

ifRAN(i)==1

code1=[code1duty1];

code2=[code2duty2];

code3=[code3duty3];

else

code1=[code1zeros(1,N_sample)];

code2=[code2zeros(1,N_sample)];

code3=[code3zeros(1,N_sample)];

end

end

code4=[];

code5=[];

code6=[];

fori=1:

N%生成序列

ifRAN(i)==1

code4=[code4duty1];

code5=[code5duty2];

code6=[code6duty3];

else

code4=[code4-duty1];

code5=[code5-duty2];

code6=[code6-duty3];

end

end

%%绘制出结果

figure

(1)

subplot(3,1,1);plot(t,code1);gridon;title('单极性:

D=100%');xlabel('t/s');ylabel('幅度');

subplot(3,1,2);plot(t,code2);gridon;title('单极性:

D=50%');xlabel('t/s');ylabel('幅度');

subplot(3,1,3);plot(t,code3);gridon;title('单极性:

D=75%');xlabel('t/s');ylabel('幅度');

figure

(2)

subplot(3,1,1);plot(t,code4);gridon;title('双极性:

D=100%');xlabel('t/s');ylabel('幅度');

subplot(3,1,2);plot(t,code5);gridon;title('双极性:

D=50%');xlabel('t/s');ylabel('幅度');

subplot(3,1,3);plot(t,code6);gridon;title('双极性:

D=75%');xlabel('t/s');ylabel('幅度');

%%%%%%%%%%%%%%功率谱绘制与计算%%%%%%%%%%%%%%%%%

fft_code1=fftshift(fft(code1));%求序列的频谱

fft_code2=fftshift(fft(code2));

fft_code3=fftshift(fft(code3));

fft_code4=fftshift(fft(code4));

fft_code5=fftshift(fft(code5));

fft_code6=fftshift(fft(code6));

PE1=10*log10(abs(fft_code1).^2/(N*Ts));%公式法求功率谱密度

PE2=10*log10(abs(fft_code2).^2/(N*Ts));

PE3=10*log10(abs(fft_code3).^2/(N*Ts));

PE4=10*log10(abs(fft_code4).^2/(N*Ts));

PE5=10*log10(abs(fft_code5).^2/(N*Ts));

PE6=10*log10(abs(fft_code6).^2/(N*Ts));

PEL1=(-length(fft_code1)/2:

length(fft_code1)/2-1)/N;%转换成对应频率(-L/2:

L/2-1)*fs/L

PEL2=(-length(fft_code2)/2:

length(fft_code2)/2-1)/N;

PEL3=(-length(fft_code3)/2:

length(fft_code3)/2-1)/N;

PEL4=(-length(fft_code4)/2:

length(fft_code4)/2-1)/N;

PEL5=(-length(fft_code5)/2:

length(fft_code5)/2-1)/N;

PEL6=(-length(fft_code6)/2:

length(fft_code6)/2-1)/N;

figure(3)

subplot(3,1,1);plot(PEL1,PE1);gridon;title('单极性归零码功率谱:

D=100%');xlabel('频率/HZ');axis([-2020-5050]);ylabel('P/dB');

subplot(3,1,2);plot(PEL2,PE2);gridon;title('单极性归零码功率谱:

D=50%');xlabel('频率/HZ');axis([-2020-5050]);ylabel('P/dB');

subplot(3,1,3);plot(PEL3,PE3);gridon;title('单极性归零码功率谱:

D=75%');xlabel('频率/HZ');axis([-2020-5050]);ylabel('P/dB');

figure(4)

subplot(3,1,1);plot(PEL4,PE4);gridon;title('双极性归零码功率谱:

D=100%');axis([-2020-5050]);xlabel('频率/HZ');ylabel('P/dB');

subplot(3,1,2);plot(PEL5,PE5);gridon;title('双极性归零码功率谱:

D=50%');axis([-2020-5050]);xlabel('频率/HZ');ylabel('P/dB');

subplot(3,1,3);plot(PEL6,PE6);gridon;title('双极性归零码功率谱:

D=75%');axis([-2020-5050]);xlabel('频率/HZ');ylabel('P/dB');

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

Ts=1;

N_sample=128;

dt=Ts/N_sample;

N=50;

t=0:

dt:

(N*N_sample-1)*dt;

RAN=randi([0,1],1,N);%随机01序列

gt1=ones(1,N_sample);

gt2=zeros(1,N_sample);

%%%%%%%%%%%%%%%%%%%%AMI%%%%%%%%%%%%%%%%%

AMI=[];

RAN0=RAN;

single0=1;

fori=1:

N

if(RAN0(i)==1)

RAN0(i)=RAN0(i)*single0;

single0=single0*-1;

end

end

AMI=[];

fori=1:

N

AMI=[AMIRAN0(i)*gt1];

end

%%

%%%%%%%%%%%%%%%%%%%%HDB3%%%%%%%%%%%%%%%%%

RAN1=RAN;

single=1;

fori=1:

N

if(RAN1(i)==1)

RAN1(i)=RAN1(i)*single;

single=single*-1;

end

end

RAN2=RAN1;

count=1;

Vcode=0;

fori=1:

N-3

if((RAN2(i)||RAN2(i+1)||RAN2(i+2)||RAN2(i+3))==0)

if(i==1)

RAN2(i+3)=1;

Vcode=[VcodeRAN2(i+3)];

count=count+1;

else

RAN2(i+3)=RAN2(i-1);%破坏码

Vcode=[VcodeRAN2(i+3)];

count=count+1;

if(Vcode(count)==Vcode(count-1))%破坏码是否正负相间

RAN2(i)=-RAN2(i-1);%加信码

Vcode(count)=-Vcode(count);

forj=i+1:

N

RAN2(j)=-RAN2(j);%信码之后极性取反

end

end

end

end

end

HDB3=[];

fori=1:

N

HDB3=[HDB3RAN2(i)*gt1];

end

%%%%%%%%%%%%%%%%%%%%求频谱%%%%%%%%%%%%%%%%%%

fft_AMI=fftshift(fft(AMI));%求序列的频谱

fft_HDB3=fftshift(fft(HDB3));%求序列的频谱

PE1=10*log10(abs(fft_AMI).^2/(N*Ts));%公式法求功率谱密度

PE2=10*log10(abs(fft_HDB3).^2/(N*Ts));

PEL1=(-length(fft_AMI)/2:

length(fft_AMI)/2-1)/N;%转换成对应频率(-L/2:

L/2-1)*fs/L

PEL2=(-length(fft_HDB3)/2:

length(fft_HDB3)/2-1)/N;

%%%%%%%%%%%%%%%%%%%%绘制码元仿真图%%%%%%%%%%%%%%%%%

figure

(1)

subplot(2,1,1);plot(t,AMI);gridon;title('AMI码元');xlabel('t/s');ylabel('幅度');

subplot(2,1,2);plot(t,HDB3);gridon;title('HDB3码元');xlabel('t/s');ylabel('幅度');

%%

%%%%%%%%%%%%%%%%%%%%绘制功率谱%%%%%%%%%%%%%%%%

figure

(2)

subplot(2,1,1);plot(PEL1,PE1);gridon;title('AMI功率谱');axis([-1010-1050]);xlabel('频率/HZ');ylabel('P/dB');

subplot(2,1,2);plot(PEL2,PE2);gridon;title('HDB3功率谱');axis([-1010-5050]);xlabel('频率/HZ');ylabel('P/dB');

2数字带通调制仿真

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

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

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

clearall;

closeall;

clc

Ts=1;

N_sample=100;

dt=Ts/N_sample;

N=1000000;

t=0:

dt:

(N*N_sample-1)*dt;

RAN=randi([0,1],1,N);%随机01序列

gt1=ones(1,N_sample);

code=[];

RAN0=RAN;

Progressbar=waitbar(0,'Pleasewait(1/2)...');%创建进度条

fori=1:

N

waitbar(i/N);

if(RAN0(i)==0)

RAN0(i)=-1;

end

code=[codeRAN0(i)*gt1];

end

close(Progressbar);

fc=5;

CarrierWave=sin(2*pi*fc*t);%载波信号

BPSK_Wave=code.*CarrierWave;%调制

fft_code1=fftshift(fft(BPSK_Wave));%求序列的频谱

PE1=10*log10(abs(fft_code1).^2/(N*Ts));%公式法求功率谱密度

PEL1=(-length(fft_code1)/2:

length(fft_code1)/2-1)/N;%转换成对应频率(-L/2:

L/2-1)*fs/L

%%%%%%%%%%%%%%绘制信号%%%%%%%%%%%%%%%%%%

figure

(1)

subplot(3,1,1);plot(t,code);axis([0,10,,]);title('码元序列');xlabel('t/s');ylabel('幅度');%码元序列

subplot(3,1,2);plot(t,BPSK_Wave);axis([0,10,,]);title('BPSK波形');xlabel('t/s');ylabel('幅度');%BPSK波形

subplot(3,1,3);plot(PEL1,PE1);axis([fc-5,fc+5,-100,100]);xlabel('频率/HZ');ylabel('P/dB');title('功率谱密度');%功率谱密度

%%%%%%%%%%%%%%%%%计算误码率%%%%%%%%%%%%%%%%%%%

Pe=[];

h=waitbar(0,'Pleasewait(2/2)...');%创建进度条

%%%%%%%%%%%%%加入高斯噪声%%%%%%%%%%%%%%%

SNR=-30:

0;

fori=1:

length(SNR);

BPSK_Noise=awgn(BPSK_Wave,SNR(i));

waitbar(i/length(SNR));

%%%%%%%%%%%%BPSK信号的解调(相干)%%%%%%%%%%%%%

BPSK_Demo=BPSK_Noise.*CarrierWave;%相干解调

fp=1;%截至频率

fcm=fp/N_sample;%归一化频率

LPF=fir1(30,2*pi*fcm);%反复实验得出阶数

BPSK_LPF=filter2(LPF,BPSK_Demo);%此处不用conv卷积,因为长度增加

%%%%%%%%%%%%%%%%抽样判决%%%%%%%%%%%%%%%%%%%

code_back=[];

count=0;

forq=1:

N*N_sample

if(BPSK_LPF(q)>0)

code_back=1;

else

code_back=-1;

end

if(code_back~=code(q))

count=count+1;

end

end

error=count/(N*N_sample);

Pe=[Peerror];

end

%%%%%%%%%%%%%误码率计算%%%%%%%%%%%%%%%%%%%%%%%%

close(h);

figure

(2)

snr=10.^.*SNR);

Pe_theor=(erfc(sqrt(snr))).**erfc(sqrt(snr)));

semilogy(SNR,Pe,'b');xlabel('SNR/db');ylabel('误码率');holdon;title('BPSK误码率曲线');

semilogy(SNR,Pe_theor,'r');gridon;legend('实际值','理论值')%xlabel('SNR/db');ylabel('误码率/10^x');title('BPSK误码率曲线');

6、总结及存在的问题

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2