专业课程设计OQPSK通信系统的matlab仿真分析.docx
- 文档编号:26208707
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:26
- 大小:368.18KB
专业课程设计OQPSK通信系统的matlab仿真分析.docx
《专业课程设计OQPSK通信系统的matlab仿真分析.docx》由会员分享,可在线阅读,更多相关《专业课程设计OQPSK通信系统的matlab仿真分析.docx(26页珍藏版)》请在冰豆网上搜索。
专业课程设计OQPSK通信系统的matlab仿真分析
说明
1.课程设计任务书由指导老师填写,并经专业学科组审定,下达成学生。
2.学生依据指导老师下达任务书独立完成课程设计。
3.本任务书在课程设计完成后,和论文一起交指导老师,作为论文评阅和课程设计答辩关键档案资料。
一、课程设计关键内容和基础要求
1产生等概率且相互独立二进制序列,画出时域和频域波形;
2产生均值为0,方差为1加性高斯随机噪声;
3进行OQPSK调制,画出波形;
4进行误码率分析,并和理论值比较;
5解调OQPSK,画出眼图。
6画出星座图
二、课程设计图纸内容及张数
本试验没有要求图纸内容,在试验结果中附有此次试验结果图
三、课程设计应完成软硬件名称、内容及关键技术指标
MATLAB7.0
四、关键参考资料
通信原理基础(北京邮电大学出版社)
通信原理(国防工业出版社)樊昌信曹丽娜编著
信号和系统——MATLAB综合试验(高等教育出版社)
MATLAB7辅助信号处理技术和应用(电子工业出版社)飞思科技产品研发中心编著
窗体顶端
窗体底端
OQPSK通信系统matlab仿真分析
1设计目标和意义
1.对oqpsk进行调制和解调,经过MATLAB编程,掌握MATLAB使用,熟练掌握OQPSK调制原理,解调原理。
2.对OQPSK通信系统进行matlab仿真分析,分析起信噪比和差错率。
为现实中通信系统调制,解调,及信道传输进行理论指导。
2设计原理
1.OPSK调制
它和QPSK有着一样相位关系,也是把输入码流分成两路,然后进行正交调制。
伴随数字通信技术发展和广泛应用,大家对系统带宽、频谱利用率和抗干扰性能要求越来高。
而和一般QPSK比较,交错正交相移键控同相和正交两支路数据流在时问上相互错开了半个码元周期,而不像QPSK那样I、Q两个数据流在时间上是一致(即码元沿是对齐)。
因为OQPSK信号中I(同相)和Q(正交)两个数据流,每次只有其中一个可能发生极性转换,所以,每当一个新输入比特进入调制器I或Q信道时,其输出OQPSK信号中只有0°、+90°三个相位跳变值,而根本不可能出现180°相位跳变。
所以频带受限OQPSK信号包络起伏比频带受限QPSK信号要小,而经限幅放大后频带展宽也少。
2.OQPSK基础原理
OQPSK信号数学公式能够表示为:
⑴OQPSK调制方法和QPSK类似,仅在一条正交支路上引入了一个比特延时,以使得两支路数据不会同时发生改变,降低最大相位跳变。
其中电平映射关系为:
1→1,0→-1.
图3:
OQPSK调制原理框图
经OQPSK调制后,调制点星相图和状态转移图图4所表示。
⑵OQPSK解调
OQPSK信号可采取正交相干解调方法解调,其解调原理图a所表示。
由图a能够看出,OQPSK和QPSK信号解调原理基础相同,其差异仅在于对Q支路信号抽样判决后要延迟Tb/2,这是因为在调制时,Q支路信号在时间上偏移了Tb/2,所以抽样判决时刻也对应偏移了Tb/2,以确保对两支路交错抽样。
⑶眼图是信号由垂直扫描进入和同周期水平扫描锯齿波叠加到示波器上时到得图案。
眼图能够反应信号在传输过程中受到信道噪声影响强度,眼图越模糊,眼睛越闭合,则说明噪声越强,反之,则说明噪声强度弱,也能说明信道性能更优良。
3设计结果及分析
⑴输入二进制序列和串并转换成上下两路信号,下支路信号已延时,由产生随机序列能够知道前十个码元为,映射电平为1-1-11-1-111-11,下面抽样脉冲和ts=1矩形脉冲相卷即为输入信号
⑵上下支路分别经过调制后信号
⑶调制后信号和加了高斯白噪声信号
⑷调制后信号乘以相干载波后信号,经过低通滤波器和经过抽样判决后信号
(前面上下支路信号和判决后信号对比,能够看出全部有延时)
⑸恢复成最终信号和原始信号对比
⑹oqpsk星座图
⑺oqpsk眼图
⑻oqpsk系统理论误码率
⑼此次试验中实际误码率
加入不一样噪声进行循环rt=1.8%
(四)matlab程序及其功效
⑴主程序和注释
clc;
A=1;%载波幅度
fc=2;%载波频率
Ts=1;%码元宽度
fs=1/Ts
B1=fs;%低通滤波器宽度
N_sample=32;%基带码元抽样点数
N=500;%码元数
dt=Ts/fc/N_sample;%抽样时间间隔
T=N*Ts;%信号连续时间长度
t=0:
dt:
T-dt;%时间向量
Lt=length(t);%时间向量长度
tx1=0;%时域波形图横坐标起点
tx2=10;%时域波形图横坐标终点
ty1=-2;%时域波形图纵坐标起点
ty2=2;%时域波形图纵坐标终点
fx1=-10;%功率谱图横坐标起点
fx2=10;%功率谱图横坐标终点
fy1=-40;%功率谱图纵坐标起点
fy2=25;%功率谱图纵坐标终点
EsN0dB=3:
0.5:
10;%设定EbNo范围
EsN0=10.^(EsN0dB/10);
rt=zeros(1,length(EsN0dB));%初始化误码率向量
M=4;
%产生二进制信源
m=randn(1,N);%产生1到n随机数
d=sign(m);%将大于0变为1小于0变为-1
dd=sigexpand(d,fc*N_sample);%将序列d周期变为Ts
gt=ones(1,fc*N_sample);%产生宽度为Ts矩形窗
d_NRZ=conv(dd,gt);%卷积产生基带信号
figure(5);
subplot(2,2,1);
plot(t,dd(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
figure
(1);
subplot(2,4,1);
plot(t,d_NRZ(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('基带信号时域波形图');
grid;
[f,d_NRZf]=T2F(t,d_NRZ(1:
Lt));%进行傅里叶变换
figure
(1);
subplot(2,4,5);
plot(f,10*log10(abs(d_NRZf).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('基带信号功率谱图');
grid;
figure(4);
subplot(2,2,1);
plot(t,d_NRZ(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('基带信号时域波形图');
grid;
figure(4);
subplot(2,2,2);
plot(f,10*log10(abs(d_NRZf).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('基带信号功率谱图');
grid;
%串并转换
d1=[];
d2=[];
fori=1:
N
ifrem(i,2)==1
d1((i+1)/2)=d(i);
else
d2(i/2)=d(i);
end
end
dd1=sigexpand(d1,2*fc*N_sample);%功效同上
gt1=ones(1,2*fc*N_sample);
d_NRZ1=conv(dd1,gt1);
figure
(1);
subplot(2,4,2);
plot(t,d_NRZ1(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('上支路基带信号时域波形图');
grid;
[f1,d_NRZ1f]=T2F(t,d_NRZ1(1:
Lt));
figure
(1);
subplot(2,4,6);
plot(f1,10*log10(abs(d_NRZ1f).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('上支路基带信号功率谱图');
grid;
figure(3);
subplot(2,4,1);
plot(t,d_NRZ1(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('上支路基带信号时域波形图');
grid;
dd2=sigexpand(d2,2*fc*N_sample);
gt1=ones(1,2*fc*N_sample);
d_NRZ2=conv(dd2,gt1);
d_NRZ2DLY=[-ones(1,N_sample*fc),d_NRZ2(1:
end-N_sample*fc)];
%进行延时,在前面添-1
figure
(1);
subplot(2,4,3);
plot(t,d_NRZ2DLY(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('下支路基带信号时域波形图');
grid;
[f2,d_NRZ2f]=T2F(t,d_NRZ2DLY(1:
Lt));
figure
(1);
subplot(2,4,7);
plot(f2,10*log10(abs(d_NRZ2f).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('下支路基带信号功率谱图');
grid;
figure(3);
subplot(2,4,5);
plot(t,d_NRZ2DLY(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('下支路基带信号时域波形图');
grid;
%载波
h1t=A*cos(2*pi*fc*t);
h2t=A*sin(2*pi*fc*t);
figure
(1);
subplot(2,4,4);
plot(t,h1t);
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('载波信号时域波形图');
grid;
[f3,h1tf]=T2F(t,h1t);
figure
(1);
subplot(2,4,8);
plot(f3,10*log10(abs(h1tf).^2/T));
%p=2/T*10*log10(abs(h1tf)为求功率谱公式
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('载波信号功率谱图');
grid;
%生成OQPSK信号
s_qpsk1=d_NRZ1(1:
Lt).*h1t;%上下支路分别调制
s_qpsk2=d_NRZ2DLY(1:
Lt).*h2t;
figure
(2);
subplot(2,2,1);
plot(t,s_qpsk1);
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('上支路频带信号时域波形图');
grid;
[f4,s_qpsk1f]=T2F(t,s_qpsk1);
figure
(2);
subplot(2,2,3);
plot(f4,10*log10(abs(s_qpsk1f).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('上支路频带信号功率谱图');
grid;
figure
(2);
subplot(2,2,2);
plot(t,s_qpsk2);
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('下支路频带信号时域波形图');
grid;
[f5,s_qpsk2f]=T2F(t,s_qpsk2);
figure
(2);
subplot(2,2,4);
plot(f5,10*log10(abs(s_qpsk2f).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('下支路频带信号功率谱图');
grid;
s_oqpsk=s_qpsk1+s_qpsk2;%两路信号相加得到调制后信号
figure(8);
subplot(2,2,1);
plot(t,s_oqpsk);
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('已调信号时域波形图');
grid;
[f6,s_oqpskf]=T2F(t,s_oqpsk);
figure(8);
subplot(2,2,3);
plot(f6,10*log10(abs(s_oqpskf).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('已调信号功率谱图');
grid;
%信道加入高斯白噪声进行接收解调
%产生高斯白噪声
m=1;
p1=-10;
noise=wgn(m,Lt,p1);
%接收信号
y_qpsk=s_oqpsk+noise;
figure(8);
subplot(2,2,2);
plot(t,y_qpsk);
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('接收信号时域波形图');
grid;
[f7,y_qpskf]=T2F(t,y_qpsk);
figure(8);
subplot(2,2,4);
plot(f7,10*log10(abs(y_qpskf).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('接收信号功率谱图Pn=-10dB');
grid;
%[t,ny_qpsk]=bpf(f7,y_qpskf,1,8);
%相干解调
%经过乘法器1
r_qpsk1=y_qpsk.*h1t;
figure(3);
subplot(2,4,2);
plot(t,r_qpsk1);
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('上支路经过乘法器信号时域波形图');
grid;
%经过低通滤波器
[f8,r_qpsk1f]=T2F(t,r_qpsk1);
B1=1;
[t1,r_qpsk11]=lpf(f8,r_qpsk1f,B1);
figure(3);
subplot(2,4,3);
plot(t1,r_qpsk11)
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('上支路经过低通滤波器信号时域波形图');
grid;
%抽样判决
dd11=r_qpsk11(fc*N_sample:
2*fc*N_sample:
end);
dd22=sign(dd11);%判决
dd222=sigexpand(dd22,2*fc*N_sample);
d_NRZ11=conv(dd222,gt1);%得到上支路信号
d_NRZ11DLY=[-ones(1,N_sample*fc),d_NRZ11(1:
end-N_sample*fc)];%上支路信号延时
figure(3);
subplot(2,4,4);
plot(t,d_NRZ11DLY(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('上支路抽样判决后信号时域波形图');
grid;
%经过乘法器2
r_qpsk2=y_qpsk.*h2t;
figure(3);
subplot(2,4,6);
plot(t,r_qpsk2);
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('下支路经过乘法器信号时域波形图');
grid;
%经过低通滤波器
[f9,r_qpsk2f]=T2F(t,r_qpsk2);
[t2,r_qpsk21]=lpf(f9,r_qpsk2f,B1);
figure(3);
subplot(2,4,7);
plot(t2,r_qpsk21)
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('下支路经过低通滤波器信号时域波形图');
grid;
%抽样判决
dd33=r_qpsk21(fc*N_sample:
2*fc*N_sample:
end);
dd44=sign(dd33);%判决
dd444=sigexpand(dd44,2*fc*N_sample);
d_NRZ21=conv(dd444,gt1)
figure(3);
subplot(2,4,8);
plot(t,d_NRZ21(1:
Lt))
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('下支路抽样判决后信号时域波形图');
grid;
dd22DLY=d_NRZ11DLY(fc*N_sample:
2*fc*N_sample:
end);
%并串转换
ddd=[];
fors=1:
N/2
ddd(2*s-1)=dd22DLY(s);
ddd(2*s)=dd44(s);
end
rddd=sigexpand(ddd,fc*N_sample);
%解调信号输出
r_qpsk=conv(rddd,gt);
qr_qpsk=[r_qpsk(2*N_sample*fc+1:
N*N_sample*fc),ones(1,2*N_sample*fc)]
%去除延时
figure(4);
subplot(2,2,3);
plot(t,qr_qpsk(1:
Lt));
axis([tx1,tx2,ty1,ty2]);
xlabel('时间(S)');
ylabel('幅度');
title('解调信号时域波形图Pn=-10dB');
grid;
[f10,qr_qpskf]=T2F(t,r_qpsk(1:
Lt));
figure(4);
subplot(2,2,4);
plot(f10,10*log10(abs(qr_qpskf).^2/T));
axis([fx1,fx2,fy1,fy2]);
xlabel('频率(Hz)');
ylabel('功率谱密度(dB/Hz)');
title('解调信号功率谱图Pn=-10dB');
grid;
%眼图
eyediagram(y_qpsk,32,2,8);
x=d_NRZ1(1:
fc*N*N_sample)+j*d_NRZ2DLY(1:
fc*N*N_sample);
%星座图
scatterplot(x);
axis([-4,4,-4,4]);
grid;
xlabel('实部');
ylabel('虚部');
title('星座图');
d_NRZJ=d_NRZ(1:
fc*N*N_sample);
p=find(d_NRZJ<0);
d_NRZJ(p)=0;
q=find(qr_qpsk<0);
qr_qpsk(q)=0;
r=find(d_NRZ>0);
d_NRZJ(r)=1;
s=find(qr_qpsk>0);
qr_qpsk(s)=1;
figure
[num,rt]=biterr(d_NRZJ,qr_qpsk);
Ps=erfc(sqrt(EsN0)*sin(pi/M));
%经过一系列计算能够得到
%
%因为
%能够深入得到,
semilogy(EsN0dB,Ps,'rd-');
xlabel('Es/N0(dB)');ylabel('误码率');
gridon;
title('QPSK系统误码率');
⑵用到子函数
function[out]=sigexpand(d,M)
%将输入序列扩展成间隔为N-1个0序列;
N=length(d);
out=zeros(M,N);
out(1,:
)=d;
out=reshape(out,1,M*N);
function[f,sf]=T2F(t,st);
%计算信号傅里叶变换
%Inputisthetimeandthesignalvectors,thelengthoftimemustgreater
%than2
%Outputisthefrequencyandthesignalspectrum
dt=t
(2)-t
(1);
T=t(end);
df=1/T;
N=length(st);
f=-N/2*df:
df:
N/2*df-df;
sf=fft(st);
sf=T/N*fftshift(sf);
function[t,st]=F2T(f,sf)
%计算信号反傅里叶变换
df=f
(2)-f
(1);
Fmx=(f(end)-f
(1)+df);
dt=1/Fmx;
N=length(sf);
T=dt*N;
%t=-T/2:
dt:
T/2-dt;
t=0:
dt:
T-dt;
sff=fftshift(sf);
st=Fmx*ifft(sff);
%低通滤波器
function[t,st]=lpf(f,sf,B)
%f:
frequencysamples
%sf:
inputdataspectrumsamples
%B:
lowpass'sbandwidthwitharectanglelowpass
%output:
%t:
sample
%st:
outpu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业课程 设计 OQPSK 通信 系统 matlab 仿真 分析