基于MATLAB仿真的BPSK的调制与解调报告.docx
- 文档编号:26341908
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:129.02KB
基于MATLAB仿真的BPSK的调制与解调报告.docx
《基于MATLAB仿真的BPSK的调制与解调报告.docx》由会员分享,可在线阅读,更多相关《基于MATLAB仿真的BPSK的调制与解调报告.docx(15页珍藏版)》请在冰豆网上搜索。
基于MATLAB仿真的BPSK的调制与解调报告
基于MATLAB仿真的BPSK的调制与解调
一、实验要求
根据题目要求,查阅相关资料,掌握数字带通的BPSK调制解调的相关知识。
学习MATLAB软件,掌握MATLAB各种函数的使用。
在此基础上,完成以下实验要求:
1)设计系统整体框图及数学模型。
2)运用MATLAB进行编程,实现BPSK的调制解调过程的仿真。
其中包括信源、BPSK信号的产生,信道噪声的加入,BPSK信号的载波提取和相干解调。
3)系统性能的分析包括信号带宽,波形对比以及误码率的计算。
二、实验原理
数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。
为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。
这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。
数字调制技术的两种方法:
1)模拟相乘法。
利用模拟调制的方法去实现数字式调制,即把把数字基带信号当做模拟信号的特殊情况处理。
2)键控法。
利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。
这种方法通常称为键控法,比如本实验对载波的相位进行键控,便可获得相移键控(PSK)基本的调制方式。
1.BPSK的调制原理:
二进制移相键控是用二进制数字信号0和1去控制载波的两个相位0和π的方法。
在2PSK中,通常用初始相位0和π分别表示二进制1和0。
因此,2PSK信号的时域表达式为:
(1)
式中,n表示第n个符号的绝对相位:
(2)
因此,上式可以改写为
(3)
由于两种码元的波形相同,极性相反,故BPSK信号可以表述为一个双极性全占空矩形脉冲序列与一个正弦载波的相乘:
(4)
式中
(5)
这里s(t)为双极性全占空(非归零)矩形脉冲序列,g(t)是脉宽为Ts的单个矩形脉冲,而an的统计特性:
(6)
图1BPSK信号的波形示例
2.BPSK的解调原理:
2PSK信号的解调方法是相干解调法。
由于PSK信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息采用相干解调法来解调信号。
给出了一种2PSK信号相干接收设备的原理框图。
图中经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,再进行抽样判决,判决器是按极性进行判决,得到最终的二进制信息。
具体波形如下图:
图3BPSK各点时间波形
三、BPSK调制解调的MATLAB仿真
2.BPSK调制的数学模型及框图:
由于BPSK的两种码元的波形相同,极性相反,故BPSK信号可以表述为一个双极性全占空矩形脉冲序列与一个正弦载波的相乘:
其中
,即s(t)为双极性全占空(非归零)矩形脉冲序列。
3.BPSK解调的原理及框图:
由于PSK信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息采用相干解调法来解调信号。
4.实验程序:
主程序:
clearall
closeall
clc
num=10;%码元个数
tnum=200;%码元长度
N=num*tnum;%10个码元整体长度
a=randint(1,num,2);%产生1行num列的矩阵,矩阵内0和1随机出现
fc=0.5;%载波频率为0.5
t=0:
0.05:
9.99;%t从0到9.99,间隔为0.05
s=[];c=[];
fori=1:
num%i从1到10循环
if(a(i)==0)
A=zeros(1,tnum);%i=0时,产生一个码元长度为tnum(200)的0码元
else
A=ones(1,tnum);%i=1时,产生一个码元长度为tnum(200)的1码元
end
s=[sA];%s为随机基带信号
cs=sin(2*pi*fc*t);
c=[ccs];%c为载波信号
end
%采用模拟调制方法得到调制信号
s_NRZ=[];
fori=1:
num%i从1到num(10)循环
if(a(i)==0)
A=ones(1,tnum);%i=0时,产生一个码元长度为tnum(200)的1码元
else
A=-1*ones(1,tnum);%i非0时,产生一个码元长度为tnum(200)的-1码元
end
s_NRZ=[s_NRZ,A];%s_NRZ为双极性非归零码
end
e=s_NRZ.*c;%e为BPSK调制信号
figure
(1);%图1
subplot(3,2,1);%图1分为3×2部分的第一部分
plot(s);%作s(基带信号)的波形图
gridon;
axis([0N-22]);%横轴长度为0到N,纵轴范围为-2到+2
xlabel('基带信号s(t)');%x轴的注释
ylabel('基带信号幅值');%y轴的注释
subplot(323);plot(c);gridon;
axis([0N-22]);
xlabel('BPSK载波信号');
ylabel('BPSK载波信号幅值');%作c(BPSK载波信号)的波形图
subplot(325);plot(e);gridon;
axis([0N-22]);
xlabel('BPSK调制信号');
ylabel('BPSK调制信号幅值');%作e(BPSK调制信号)的波形图
%信号的频谱
Fs=200;%采样频率
n=length(s);%基带信号长度
f=[0:
Fs/n:
Fs-Fs/n]-Fs/2;%修正频率f的范围
S=fft(s);%基带信号s的快速傅里叶变换
E=fft(e);%基带信号e的快速傅里叶变换
C=fft(c);%基带信号c的快速傅里叶变换
subplot(322);
plot(f,abs(fftshift(S)));%基带信号的频谱
title('基带信号频谱');
xlabel('f/hz');ylabel('S(w)');gridon;
subplot(324);
plot(f,abs(fftshift(C)));%载波信号的频谱
title('载波信号频谱');
xlabel('f/hz');ylabel('C(w)');gridon;
subplot(326);
plot(f,abs(fftshift(E)));%调制信号的频谱
title('调制信号频谱');
xlabel('f/hz');ylabel('E(w)');gridon;
%加高斯噪声
am=0.7;%输入信号经信道后振幅由1衰减为0.7
SNR=5;%输入信噪比
snr=10^(SNR/10);
N0=(am*am)/2/snr;%计算噪声功率
N0_db=10*log10(N0);%将噪声功率转换为dBW
ni=wgn(1,N,N0_db);%产生1行N列的高斯噪声
yi=e+ni;%BSK已调信号中加入白噪声,输入信噪比为SNR
figure
(2);subplot(2,1,1);plot(yi);gridon;
xlabel('加入高斯白噪声的已调信号yi(t)');
%带通滤波器
[b1,a1]=BUTTER(3,[2*pi*0.0001,2*pi*0.01]);%计算带通滤波器的H(z)系数
y=filter(b1,a1,yi);%对信号yi进行滤波,得到信号y
figure
(2);subplot(2,1,2);plot(y);gridon;
xlabel('经带通滤波器后信号');
%与恢复载波相乘
x1=2*c.*y;
figure(3);subplot(2,1,1);plot(x1);gridon
xlabel('与恢复载波相乘后的信号x1(t)');
%低通滤波器
[b2,a2]=butter(2,0.005);%计算H(z)系数,频率为(1/200)
x=filter(b2,a2,x1);%对信号x1滤波,得到信号x
figure(3);subplot(2,1,2);plot(x);gridon
axis([0N-22]);xlabel('经低通滤波器后信号波形')
%抽样判决
x=fun_panjue(x);%调用函数,进行抽样判决
figure(4);subplot(2,1,1);plot(x);gridon;
xlabel('加噪后解调信号x(t)');
axis([0N-22]);
%消除延迟
x=fun_yanc(x);%调用函数,进行消除延迟
figure(4);subplot(2,1,2);plot(x);gridon;
xlabel('加噪后去掉延迟的解调信号x(t)');
axis([0N-22]);
%误码率计算
Err1=length(find(x~=s))%计算解调信号中错误码元个数
Pe_test1=Err1/N%计算实际误码率
Pe1=(1/2)*erfc(sqrt(snr))%计算系统理论误码率
%理论误码率曲线
Pe=[];
forSNR=1:
10
am=0.7;%输入信号经信道后振幅由1衰减为0.7
E=am*am/2;
snr=10^(SNR/10);
N0=(am*am)/(2*snr);
no=N0/(2*200);%计算噪声功率
N0_db=10*log10(N0);%将噪声功率转换为dBW
ni=wgn(1,N,N0_db);%产生1行N列的高斯噪声
yi=e+ni;%BSK已调信号中加入白噪声,输入信噪比为SNR
y=filter(b1,a1,yi);%对yi进行滤波(带通滤波器),得到信号y
x1=2*c.*y;%与恢复载波相乘
xx=filter(b2,a2,x1);%经低通滤波器滤波
xx=fun_panjue(xx);%抽样判决
xx=fun_yanc(xx);%消除延迟
snr=10^(SNR/10);
Pe=[Pe,(1/2)*erfc(sqrt(snr))];%计算理论误码率
end
Pe;
figure;
SNR=1:
10;
semilogy(SNR,Pe,'b--');holdon%以log10(Pe)为纵坐标画图
gridon
子程序一:
抽样判决
(由于存在“倒pi”现象,故以0为基准进行判决,大于0,判为0;小于0,判为1)
functionw=fun_panjue(w)
N=length(w);
ifw(100)>0
w(1:
100)=0;
else
w(1:
100)=1;
end
fori=101:
N
ifw(i)>0;
w(i)=0;
else
w(i)=1;
end
end
子函数二:
消除延迟
(由于抽样判决后会产生延迟,故认为对解调信号进行时移,以减小甚至消除延迟,便于与基带信号进行比较,计算实际误码率)
functionm=fun_yanc(m)
N=length(m);
leng=0;
ifm
(1)==0
fori=1:
N
ifm(i)==1
leng=i;
break;
end
end
else
fori=1:
N
ifm(i)==0
leng=i;
break;
end
end
end
leng1=leng-(floor(leng/200))*200;
fori=1:
(N-leng1)
m(i)=m(i+leng1);
end
fori=(N-leng1):
N
m(i)=m(N-200+10);
end
5.仿真波形图:
图7基带信号、载波信号和调制信号时域及频域波形图
图8加入白噪声及带通滤波后的波形
图9
图10
图11误码率曲线
Err1=
1910
Pe_test1=
0.9550
Pe1=
0.0060
BPSK信号的载波提取和相干解调;
系统性能的分析(信号带宽,波形对比,误码率)。
参考文献:
[1]樊昌信,曹丽娜.通信原理.国防工业出版社
[2]郭黎利,张晓林.通信原理.哈尔滨工程大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 仿真 BPSK 调制 解调 报告