目录
1. 16PSK 调制原理
在数字调制中,我们将二进制数字序列映射到信号的幅度、相位或频率等参数上。对于16PSK调制,我们主要是将二进制数据映射到信号的相位上。
16PSK将每4位二进制数据映射为8PSK星座图中的一个相位点,16PSK 星座图通常将圆周等分为16个相位区间,每个区间对应一个唯一的4位二进制码。假设输入的比特序列为b0b1b2b3,则对应的16PSK符号的相位取值如下:
0,pi/8,2*pi/8,3*pi/8,4*pi/8,5*pi/8,6*pi/8,7*pi/8,8*pi/8,9*pi/8,10*pi/8,11*pi/8,12*pi/8,13*pi/8,14*pi/8,15*pi/8.
16PSK 信号的星座点分布在圆周上,具有一定的相位冗余。与 ASK(幅移键控)等调制方式相比,它对幅度干扰不太敏感。因为 16PSK 主要是通过相位来携带信息,只要干扰没有导致相位发生错误判决,信号就能正确解调。
在多径衰落信道中,通过适当的均衡技术和信道编码,16PSK 信号可以利用其相位信息来抵抗衰落带来的影响。例如,在存在频率选择性衰落的信道中,16PSK 信号可以通过分集接收技术(如空间分集、频率分集等)来提高接收的可靠性,减少衰落对信号的破坏。
2. 16PSK解调原理
相干解调
非相干解调
频谱效率方面,16PSK 每个符号可以携带 4 位信息,而 2PSK 每个符号只能携带 1 位信息。所以在相同的带宽和符号速率下,16PSK 的频谱效率是 2PSK 的 4 倍,能够更有效地利用频谱资源。
在抗干扰性能上,16PSK 由于星座点较多,相位间隔相对较小,在一定程度上对幅度干扰有更好的抵抗能力,但对相位噪声等干扰更敏感。相比之下,2PSK 只有两个相位状态,抗相位噪声能力相对较强,但频谱效率较低。
3.MATLAB程序
39**********************************************************
%判决
yod = [];
for i=1:Num
i
tmps1 = yfilter1(400*(i-1)+100:400*i-100);
tmps2 = yfilter2(400*(i-1)+100:400*i-100);
X1 = mean(tmps1);
Y1 = mean(tmps2);
dist0 = sqrt((X1-real(sa0))^2 + (Y1-imag(sa0))^2);
dist1 = sqrt((X1-real(sa1))^2 + (Y1-imag(sa1))^2);
dist2 = sqrt((X1-real(sa2))^2 + (Y1-imag(sa2))^2);
dist3 = sqrt((X1-real(sa3))^2 + (Y1-imag(sa3))^2);
dist4 = sqrt((X1-real(sa4))^2 + (Y1-imag(sa4))^2);
dist5 = sqrt((X1-real(sa5))^2 + (Y1-imag(sa5))^2);
dist6 = sqrt((X1-real(sa6))^2 + (Y1-imag(sa6))^2);
dist7 = sqrt((X1-real(sa7))^2 + (Y1-imag(sa7))^2);
dist8 = sqrt((X1-real(sa8))^2 + (Y1-imag(sa8))^2);
dist9 = sqrt((X1-real(sa9))^2 + (Y1-imag(sa9))^2);
dist10= sqrt((X1-real(sa10))^2 + (Y1-imag(sa10))^2);
dist11= sqrt((X1-real(sa11))^2 + (Y1-imag(sa11))^2);
dist12= sqrt((X1-real(sa12))^2 + (Y1-imag(sa12))^2);
dist13= sqrt((X1-real(sa13))^2 + (Y1-imag(sa13))^2);
dist14= sqrt((X1-real(sa14))^2 + (Y1-imag(sa14))^2);
dist15= sqrt((X1-real(sa15))^2 + (Y1-imag(sa15))^2);
[VV,II]=min([dist0,dist1,dist2,dist3,dist4,dist5,dist6,dist7,dist8,dist9,dist10,dist11,dist12,dist13,dist14,dist15]);
yod = [yod,II-1];
end
figure % 创建图形窗口
subplot(3,2,1) % 创建3行1列的子图,并定位到第一个
plot(Ydemod1,'b','linewidth',1) % 绘制ASK调制信号
title('16PSK解调'); % 设置标题
grid on % 打开网格
subplot(3,2,2) % 定位到第二个子图
plot(Ydemod2,'b','linewidth',1) % 绘制载波信号
title('16PSK解调'); % 设置标题
grid on % 打开网格
subplot(3,2,3) % 创建3行1列的子图,并定位到第一个
plot(yfilter1,'b','linewidth',1) % 绘制ASK调制信号
title('16PSK解调滤波'); % 设置标题
grid on % 打开网格
subplot(3,2,4) % 定位到第二个子图
plot(yfilter2,'b','linewidth',1) % 绘制载波信号
title('16PSK解调滤波'); % 设置标题
grid on % 打开网格
subplot(3,2,[5,6]) % 定位到第二个子图
stairs(yod,'b-o','linewidth',1) % 绘制载波信号
title('16PSK解调'); % 设置标题
grid on % 打开网格
xlim([1,Num+1])
4.仿真结果
5.完整程序下载
完整可运行代码,博主已上传至CSDN,使用版本为matlab2022a:
(本程序包含程序操作步骤视频)