资源描述
课 程 设 计 说 明 书
学生姓名:
学 号:
学 院:
班 级:
题 目:
频带最佳接收系统的仿真实现并比较其性能
指导教师:
一 设计题目
频带最佳接收系统的仿真实现并比较其性能
二 设计任务及要求
利用所学《数字通信原理》的基础知识,通过matlab实现频带最佳接收系统的仿真,并通过对2ASK ,2PSK,2FSK不同接收方式进行仿真得出实际接收机与最佳接收机误码率性能的比较。
三 分析
信道的特性和传输过程中引入的噪声干扰是影响通信系统性能的两个主要因素。在发送端,考虑的是如何设计信号;在接收端,考虑的是如何从噪声干扰中正确地接收信号,即最佳接收。
在数字通信系统中,更关心的是错误概率,因为错误概率是衡量数字通信传输质量的主要指标。信号的检测概率与信噪比有直接的关系,信噪比越大,正确检测的概率也就越大,错误概率越小;反之,信噪比越小,正确检测的概率就越小,错误概率也就越大。
确知信号的最佳接收
所谓确知信号是指其取值在任何时间都是确定的,可以预知的。实际中在恒参信道(恒参信道是指其传输特性的变化量基本不变)中接收到的数字信号可以认为是确知信号。
S2(t)
U1
U2
S1(t)
y(t)
积分器
积分器
比较判决器
二进制确知信号最佳接收机原理图
二进制确知数字信号最佳接收机的总误码率为
Pe=P(s1)P(s2/s1)+P(s2)P(s1/s2)
经推导计算可得:
式中:ρ为互相关函数,n0为噪声功率谱密度;Eb为信号的能量;erfc(x)为误差函数。
(1)当互相关函数ρ=-1时,即相关系数最小,误码率Pe最小,此时发送的二进制信号s1(t)和s2(t)的波形为最佳波形,其误码率为
Pe=
(2)当互相关函数ρ=0时,即s1(t)和s2(t)正交,其误码率为
Pe=
(3)当发送信号s1(t)和s2(t)中有一个能量为0,此时的误码率为
Pe=
比较式(1)、(2)、(3),它们之间的性能相差3dB,即2ASK信号的性能比2FSK信号的性能差3dB,而2FSK信号的性能又比2PSK信号的性能差3dB。由于2PSK信号能使互相关函数ρ=-1,因此2PSK信号是最佳信号波形;2FSK和2ASK信号的互相关系数ρ=0,因此2PSK系统的性能优于2FSK和2ASK系统;2FSK信号是等能量信号,而2ASK
信号是不等能量信号,因此2FSK系统的性能优于2ASK。
二进制随相数字信号最佳接收机的误码率
Pe= exp(-)
由于随机信号的相位具有随机性,因此二进制随相数字信号最佳接收机是一种非相干接收机。
实际接收机与最佳接收机误码率性能功能的比较
接收方式
实际接收机误码率Pe
最佳接收机误码率Pe
相干2PSK
相干2FSK
非相干2FSK
exp(-)
exp(-)
相干2ASK
非相干ASK
exp(-)
exp(-)
各模块的仿真实现
一、2ASK
2ASK信号的解调分为相干解调和非相干解调两种,如图所示。相干解调需要将载频位置的已调信号频谱重新搬回原始基带位置,因此用相乘器与载波相乘来实现。
输入 输出
带通滤波器
半波或全波整流器
低通滤波器
抽样判决器
(a)非相干解调
输入 输出
带通滤波器
相乘器
低通滤波器
抽样判决器
Coswct
(b)相干解调
仿真程序
rs=1e3; %时间轴频率步进
fc=1e2; %载波频率100HZ
tzd=1e2;
t=0:1/rs:(tzd-1/rs); %码元周期0.1s,即码元速率10
for snrb=0:1:10 %不同信噪比
ratio=0; %初始误码数设为0,累计十次得到总误码数
for k=1:10 %十次循环产生10000码元
n=1e3; %1次产生码元数
g=randint(1,n); %产生1000个码元
tz=g(ceil(10*t+(1/rs))).*cos(2*pi*fc*t); %得到已调信号tz,100个点表示1个码元
signal=awgn(tz,snrb); %信号通过白噪声信道
Fs=1e3; %采样频率
[b,a]=butter(2,[80,120]*2/Fs); %设计巴特沃斯带通滤波器,2阶,系数为a,b
sg1=filter(b,a,signal); %信号通过该BPF
sg2=abs(sg1); %信号通过全波整流器
Fs=1e3; %采样频率
[b,a]=butter(2,10*2/Fs) %设计巴特沃斯低通滤波器
sg3=filter(b,a,sg2); %信号通过该LPF
b=0.4; %判决门限
LL=tzd/2;
for i=1:n
if sg3((i-1)*tzd+LL)>0.4; %取sg2的中间的点作为判决点
sg4(i)=1;
else
sg4(i)=0;
end
end %得到判决信号
[numbers,pe] =symerr(g,sg4); %利用函数得到误码率和误码数
ratio=ratio+numbers;
end
r1=ratio/(n*10); %误码数除以总点数为误码率
pel(1,snrb+1)=r1; %11个信噪比对应的11个误码率存入数组pel
end
figure; %画图
x=0:1:10;
x1=10.^((x+7)./10); %分贝值转化为真值
y=0.5*(erfc(sqrt(x1/4))); %2ASK信号非相关解调理论误码率计算
semilogy(x,pel,'-r',x,y,'-b');
legend('simulation','theoritical case');
xlabel('信噪比')
ylabel('误码率');grid on;
title('2ASK信号非相干解调时信噪比与误码率的关系');
rs=1e3;%时间轴频率步进
fc=1e2;%载波频率100HZ
tzd=1e2;%1个码元用100个点模拟
t=0:1/rs:(tzd-1/rs);
for snrb=0:1:10 %不同信噪比
ratio=0;%初始误码数设为0,累计十次得到总误码数
for k=1:10 %十次循环产生10000码元
n=1e3;%一次产生码元数
g=randint(1,n);%产生1000个码元
tz=g(ceil(10*t+(1/rs))).*cos(2*pi*fc*t);%得到调制信号tz,100个点表示1个码元
signal=awgn(tz,snrb);%信号通过白噪声信道
Fs=1e3;%采样频率
[b,a]=butter(2,[80,120]*2/Fs);%设计巴特沃斯带通滤波器,2阶,系数为a,b
sg1=filter(b,a,signal);%信号通过该BPF
sg2=2*sg1.*cos(2*pi*fc*t);%信号通过相乘器
Fs=1e3;%采样频率
[b,a]=butter(2,10*2/Fs)%设计巴特沃斯低通滤波器
sg3=filter(b,a,sg2);%信号通过该LPF
b=0.4;%判决门限
LL=tzd/2;
for i=1:n
if sg3((i-1)*tzd+LL)>b;%取sg2的中间的点作为判决点
sg4(i)=1;
else
sg4(i)=0;
end
end%得到判决后信号sg4
[numbers,pe] =symerr(g,sg4);%利用函数得到误码率和误码数
ratio=ratio+numbers;
end
r1=ratio/(n*10);%误码数除以总点数为误码率
pel(1,snrb+1)=r1;%11个信噪比对应的11个误码率存入数组pel
end
figure;%画图
x=0:1:10;
x1=10.^((x+7)./10);%分贝值转化为真值
y=0.5*(erfc(sqrt(x1/4)));%2ASK信号相干解调理论误码率计算
semilogy(x,pel,'-r',x,y,'-b');
legend('simulation','theoritical case');
xlabel('信噪比')
ylabel('误码率');grid on;
title('2ASK信号相干解调时信噪比与误码率的关系');
仿真结果:
2ASK非相干解调误码率统计
2ASK相干解调误码率统计
二、2PSK
2PSK信号的解调通常采用相干解调,如图所示
输出
输入
低通滤波器
带通滤波器
相乘器
抽样判决器
本地载波恢复
位定时恢复
2PSK信号的相干解调
仿真程序
clear;
close all;
Fd=10; %消息序列的采样频率
Fs=3*Fd; %已调信号的采样频率
M=2;
SNR_db=0:12; %仿真信噪比范围
SNR1_db=0:0.1:12; %理论信噪比范围
%误码情况仿真
for n=1:length(SNR_db)
Eb_N0=10^(SNR_db(n)/10);
sgma=sqrt(1/(2*Eb_N0)); %nc,ns的均方差
x=randint(10000,1,M); %产生随机消息序列
y=dmodce(x,Fd,Fs,'psk',M); %PSK调制
ynoise=y+sqrt(Fs/Fd)*sgma*(randn(length(y),1)+j*randn(length(y),1)); %加噪
z=ddemodce(ynoise,Fd,Fs,'psk',M); %解调
[numbers,pm(n)]=symerr(x,z); %计算误符号率
end;
for m=1:length(SNR1_db)
Eb_N0=10^(SNR1_db(m)/10);
pm_theory(m)=Qfunct(sqrt(2*Eb_N0)); %理论误符号率 0.5erfc(x/sqrt(2))
pe_theory(m)=pm_theory(m)/log2(M);
end
semilogy(SNR_db,pm,'*',SNR1_db,pm_theory); %作图
xlabel('信噪比(dB)');
ylabel('误符号率');
legend('仿真得到的误符号率','理论符号误码曲线');
仿真结果:
2PSK误码率统计
三、2FSK
2FSK调制方式有非相干解调和相干解调:
1 非相干解调
经过调制后的2FSK数字信号通过两个频率不同的带通滤波器f1、f2滤出不需要的信号,然后再将这两种经过滤波的信号分别通过包络检波器检波,最后将两种信号同时输入到抽样判决器同时外加抽样脉冲,最后解调出来的信号就是调制前的输入信号。其原理图如下图所示:
带通滤波器f2
抽样脉冲
带通滤波器
抽样判决器
带通滤波器f1
包络检波器
包络检波器
(a) 非相干解调
2 相干解调
根据已调信号由两个载波f1、f2调制而成,则先用两个分别对f1、f2带通的滤波器对已调信号进行滤波,然后再分别将滤波后的信号与相应的载波f1、f2相乘进行相干解调,再分别低通滤波、用抽样信号进行抽样判决器即可.
带通滤波器f1
低通滤波器
相乘器
Cosw1t
抽样判决器
抽样脉冲
带通滤波器f2
低通滤波器
相乘器
cosw2t
(b)相干解调
仿真程序
function FSK
Fc=10; %载频
Fs=40; %系统采样频率
Fd=1; %码速率
N=Fs/Fd;
df=10;
numSymb=25;%进行仿真的信息代码个数
M=2; %进制数
SNRpBit=60;%信噪比
SNR=SNRpBit/log2(M);
seed=[12345 54321];
numPlot=15;
%产生25个二进制随机码
x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码
%调制
y=dmod(x,Fc,Fd,Fs,'fsk',M,df);
numModPlot=numPlot*Fs;
t=[0:numModPlot-1]./Fs;
%在已调信号中加入高斯白噪声
randn('state',seed(2));
y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中加入高斯白噪声
%相干解调
z1=ddemod(y,Fc,Fd,Fs,'fsk/eye',M,df);
%非相干解调
z2=ddemod(y,Fc,Fd,Fs,'fsk/eye/noncoh',M,df);
%误码率统计
[errorSym ratioSym]=symerr(x,z1);
figure(1)
simbasebandex([0:1:5]);
title('相干解调后误码率统计')
[errorSym ratioSym]=symerr(x,z2);
figure(2)
simbasebandex([0:1:5]);
title('非相干解调后误码率统计')
仿真结果:
2FSK相干解调误码率统计
2FSK非相干解调误码率统计
2ASK相干与非相干、2FSK相干与非相干、2PSK误码率比较
仿真程序
clear;
a=0.001 %信号幅度
SNR_dB=-6:0.3:20; %信噪比范围(单位分贝)
SNR=10.^(SNR_dB./10); %信噪比(由分贝转化而来 10lg(SNR)=SNR_dB)
SNR2=a.^2./(2*SNR); %信号幅度为a时的噪声功率
for i=1:length(SNR_dB)
ask_pe0=0.5*erfc(sqrt(a.^2./(8*SNR2))); %ASK相关解调时的误码率(给定信号幅度a和噪声方差σ^2时的信噪比r=a^2/2*σ^2,而这里的噪声功率是SNR2)
ask_pe1=0.25*erfc(sqrt(a.^2./(8*SNR2)))+0.5*exp(-a.^2./(8*SNR2)); %ASK非相干解调时的误码率
fsk_pe0=0.5*erfc(sqrt(a.^2./(4*SNR2))); %FSK相关解调时的误码率
fsk_pe1=0.5*exp(-0.25*a.^2./SNR2); %FSK非相干解调时的误码率
psk_pe=0.5*erfc(sqrt(0.5*a.^2./SNR2)); %PSK解调时的误码率
end
semilogy(SNR_dB,ask_pe0,'.'); %这些都是绘制信噪比误码率曲线
hold on;
semilogy(SNR_dB,ask_pe1);
hold on;
semilogy(SNR_dB,fsk_pe0,'+');
hold on;
semilogy(SNR_dB,fsk_pe1,'*');
hold on;
semilogy(SNR_dB,psk_pe,'om');
legend(' 相干2ASK','非相干2ASK',' 相干2FSK','非相干2FSK','2PSK');
axis([-6,20,1/1e7,1]);
xlabel('SNR_dB');
ylabel('Pe');
a = 1.0000e-003
仿真结果:
2ASK相干与非相干、2FSK相干与非相干、2PSK误码率比较
根据以上仿真结果可以看出,若要获得相同的误码率Pe,所需信噪比:2ASK>2FSK>2PSK,在信噪比相同的情况下,误码率的关系为:2PSK<2FSK<2ASK.实际接收机的性能总是比最佳接收机的性能差。相干接收机的误码率性能优于非相干接收机。
心得体会
经过将近一周多的时间,我们终于完成了这次课程设计。从起初的查阅资料,重新学习使用matlab,到编辑各个模块的子程序并进行仿真调试。每一个细节的成功都会给我们带来一番欣喜。在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的能力。在设计过程中,与同学分工设计,和同学们相互探讨,给我的不仅仅是一种经历,也是一种快乐。课程设计是我们专业知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句话的真正含义.通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正有所收获,并且从中提高自己的动手能力和独立思考的能力。其实课程设计的目的不在于我们做出了什么,而在于我们获得了什么。有些看似很简单的东西或事情,你经历了就是你一生的收获。
参考文献:
[1] 樊昌信. 通信原理(第6版).国防工业出版社,2006,09
[2] 黎洪松. 数字通信原理.西安电子系科技大学出版社,2005,07
[3] 任嘉伟.数字频带通信系统计算机仿真.电脑知识与技术,2008.07
[4] 吕跃广 通信系统仿真.电子工业出版社,2010.03
展开阅读全文