目录
1.算法描述
2.仿真效果预览
3.MATLAB部分代码预览
4.完整MATLAB程序
1.算法描述
软件无线电在无线通信领域被称为是自模拟通信过渡到数字通信之后的又一次革命,在军用和民用方面都有着广阔的应用。它是一种新的无线通信技术,基于通用的可编程的硬件平台,把尽可能多的通信功能用软件实现,从而使系统的改进和升级都非常方便,容易实现不同通信系统之间的兼容。调制与解调是整个数字通信系统基带处理的基本组成部分,也基本上构建了数字通信系统的总体性能框架。其中,QPSK调制与解调是一种性能较好,易于实现且已广泛应用于实践的调制解调方式。
正交相移键控(Quadrature Phase Shift Keying,QPSK)是一种数字调制方式。它分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。目前已经广泛应用于无线通信中,成为现代通信中一种十分重要的调制解调方式。
正交相移键控(Quadrature Phase Shift Keying,QPSK)是一种数字调制方式。它分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。QPSK是一种四进制相位调制,具有良好的抗噪特性和频带利用率,广泛应用 于卫星链路、数字集群等通信业务。本课题通过使用QPSK建立如下的图像传输流程:
采用QPSK 调制方式,同时保证了信号传输的效率和误码性能。
一般的QPSK的实施,也表明高阶PSK的实施。在星座图中的正弦和余弦波用来传输方面的书面符号:
这就产生了四个阶段π/ 4,3π/ 4,5π/ 4和7π/ 4需要。
这个结果与单位的基础上功能在一个两维的信号空间被用作信号的同相分量和正交分量信号的第二首的基础功能。
而扩频通信,其特点是传输信息所用的带宽远大于信息本身带宽。在这种信息传输方式中,发送端以扩频编码(一般是伪随机码)进行扩频调制。在接收端则用同样的码进行相关同步接收、解扩及恢复所传信息数据。
2.仿真效果预览
matlab2022a仿真结果如下:
3.MATLAB部分代码预览
%产生扩频gold码
%用户一产生gold码
d = phase_shift+1;
shift = [d,d+1,d+2];
[MSeq1] = fMSeqGen([1 0 0 1 0 1]);
[MSeq2] = fMSeqGen([1 0 1 1 1 1]);
%由两个M序列产生GOLD序列
GoldSeq1 = fGoldSeq(MSeq1,MSeq2,shift(1));
GoldSeq1(find(GoldSeq1==0)) = -1;
GoldSeq2 = fGoldSeq(MSeq1,MSeq2,shift(2));
GoldSeq2(find(GoldSeq2==0)) = -1;
GoldSeq3 = fGoldSeq(MSeq1,MSeq2,shift(3));
GoldSeq3(find(GoldSeq3==0)) = -1;
Goldseqs = [GoldSeq1 GoldSeq2 GoldSeq3];
Gold_Num = length(GoldSeq1);
J = [zeros(1,(2*Gold_Num-1)) 0;eye(2*Gold_Num-1) zeros((2*Gold_Num-1),1)];
%调制初始参数
phi = phi_mod;
%定义信噪比
SNR = 10;
%定义三个用户的信道信息,修改信道参数,即可完成task1,2,3的功能实现
%array
Array_Position = [-4 0 0;
-3 0 0;
1 0 0;
3 0 0;
4 0 0];
%信道估计
Rec = func_Rec_get(Xmatrix,GoldSeq1);
[DOAest,Delayest] = fChannelEstimation(Rec,GoldSeq1,Array_Position,3)
R = func_Reciver(Rec,DOAest,Delayest,Beta_1,Array_Position,GoldSeq1,3);
DeQPSK = fDSQPSKDemodulator(R,GoldSeq1,phi);
%还原文本
Key = DeQPSK(1:end-2);
C1 = reshape(Key,8,60);
for i = 1:60
WordAsic(i) = C1(1,i)*2^0 + C1(2,i)*2^1 + C1(3,i)*2^2 + C1(4,i)*2^3 +...
C1(5,i)*2^4 + C1(6,i)*2^5 + C1(7,i)*2^6 + C1(8,i)*2^7;
KK{i} = char(WordAsic(i));
end
01_063_m
4.完整MATLAB程序
matlab源码说明_我爱C编程的博客-CSDN博客
V