📄 depsk.m
字号:
%自己定义的4PSK解调的函数
function y = DEPSK(x);
L = length(x); %要解调的序列的长度
y = zeros(1,2*L); %定义输出的序列长度为输入序列的两倍
%--------------------------------------------------------------------------
%这里考虑到经过IFFT,低通滤波,加噪声信号后得到的输入序列的实部和虚部不是严格的
%为1和0,所以在解调的时候对实部和虚部采用的是四相位的方法,由于angle的范围从-pi到pi
%所以这里的范围从-pi/4到 pi/4,pi/4到3*pi/4,3*pi/4到pi和-pi到-3*pi/4,-3*pi/4到 -pi/4
for i=1:L
if (angle(x(i)) <= pi/4 && angle(x(i)) >= 0) || (angle(x(i)) < 0 && angle(x(i))>-pi/4) %解调前符号1 0 --〉 调制后符号00
y(2*i-1) = 0;
y(2*i) = 0;
elseif (angle(x(i)) <= 3*pi/4 && angle(x(i)) > pi/4) %解调前符号0 1 --〉 调制后符号01
y(2*i-1) = 0;
y(2*i) = 1;
elseif (angle(x(i)) <= pi && angle(x(i)) > 3*pi/4) || (angle(x(i)) <= -3*pi/4 && angle(x(i))>-pi) %解调前符号-1 0 --〉 调制后符号10
y(2*i-1) = 1;
y(2*i) = 0;
elseif (angle(x(i)) <= -pi/4 && angle(x(i)) > -3*pi/4) %解调前符号0 -1 --〉 调制后符号11
y(2*i-1) = 1;
y(2*i) = 1;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -