sq4qam_gray_demap.m
来自「一些关于调指和解调的小程序」· M 代码 · 共 50 行
M
50 行
function out=sq4QAM_Gray_demap(input)
K=length(input);
d=1/sqrt(2); %%% The minimum distance between constellations is 2*d
x=[d,-d]; %%% coordinate matrix
y=[d,-d];
for i=1:K
temp(i,:)=[real(input(i)),imag(input(i))]; %%% 复数矩阵变成实数矩阵,便于处理
end
%%%------Minimun Euclidean distance demodulate-----------------
%%% 解调采用比较横纵坐标,找最接近的横纵坐标的方法,相当于量化的思想
%%% X-coordinate demapping -----------------------------------------------
for i=1:K
for k=1:2 %%% 先比较横坐标
dis(k)=temp(i,1)-x(k);
end
[di,num]=min(abs(dis));
temp(i,1)=x(num); %%% 横坐标解调出来,并保存到原来矩阵中
if x(num)==x(1)
t_out(i,2)=0;
else t_out(i,2)=1;
end
end
%%% Y-coordinate demapping -----------------------------------------------
for i=1:K
for k=1:2 %%% 先比较纵坐标
dis(k)=temp(i,2)-y(k);
end
[di,num]=min(abs(dis));
temp(i,2)=y(num); %%% 纵坐标解调出来,并保存到原来矩阵中
if x(num)==y(1)
t_out(i,1)=0;
else t_out(i,1)=1;
end
end
for i=1:K
for m=1:2
out(2*(i-1)+m)=t_out(i,m); %%% P/S transform, the out is a serial binary sequence
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?