用matlab做一个8psk的映射,请大神支招啊

相位编码0 000 π/4 001π/2 0103π/4 011π 1005π/4 1013π/2 1107π/4 111有一个qpsk的怎么改下 N=100; 定义信号序列长度signal=rand(1,N);len=length(signal); qpsk=zeros(1,len/2); 定义经过调制后的序列for i=1:len/2; if signal(2*i-1)<0.5 if signal(2*i)<0.5 qpsk(i)=j; 若signal(2n-1)、signal(2n)=00,则映射后符号为j else qpsk(i)=1; 若signal(2n-1)、signal(2n)==01,则映射后符号为1 end else if signal(2*i)<0.5 qpsk(i)=-1; 若signal(2n-1)、signal(2n)=10,则映射后符号为-1 else qpsk(i)=-j; 若signal(2n-1)、signal(2n)=11则映射后符号为-j end endend
2026年09月26日 00:16
有1个网友回答
网友(1):

%m序列长度255,
%111 pi/8 110 3pi/8 010 5pi/8 011 7pi/8
%001 9pi/8 000 11pi/8 100 13pi/8 101 15pi/8
N = 4;%每一个码元采样点数,码元速率2400,采样率9600HZ
M = 85;%3位二进制序列的个数
fs = 3*N;%采样速率
t = (0:3*N-1)/fs;
g = (sign(rand(1,3*M)-0.5)+1)/2;%生成2进制序列
sit = []; sqt = [];%it同相分量幅度,qt正交分量幅度
co = []; si =[];
sb2 =[];
c = cos(2*pi*t); s = sin(2*pi*t);%8PSK调制过程
for n =1:3:length(g);%一次取3个二进制数
if g(n)==0 && g(n+1)==0 &&g(n+2)==0%b1b2b3=000时正交分量和同相分量的幅值
it = -0.383*ones(1,3*N);
qt = -0.924*ones(1,3*N);
b2 = [zeros(1,N) zeros(1,N) zeros(1,N)];
elseif g(n)==0 && g(n+1)==0 &&g(n+2)==1%b1b2b3=001时正交分量和同相分量的幅值
it = -0.924*ones(1,3*N);
qt = -0.383*ones(1,3*N);
b2 = [zeros(1,N) zeros(1,N) ones(1,N)];
elseif g(n)==1 && g(n+1)==0 &&g(n+2)==0%b1b2b3=100时正交分量和同相分量的幅值
it = 0.383*ones(1,3*N);
qt = -0.924*ones(1,3*N);
b2 = [ones(1,N) zeros(1,N) zeros(1,N)];
elseif g(n)==1 && g(n+1)==0 &&g(n+2)==1%b1b2b3=101时正交分量和同相分量的幅值
it = 0.924*ones(1,3*N);
qt = -0.383*ones(1,3*N);
b2 = [ones(1,N) zeros(1,N) ones(1,N)];
elseif g(n)==0 && g(n+1)==1 &&g(n+2)==0%b1b2b3=010时正交分量和同相分量的幅值
it = -0.383*ones(1,3*N);
qt = 0.924*ones(1,3*N);
b2 = [zeros(1,N) ones(1,N) zeros(1,N)];
elseif g(n)==0 && g(n+1)==1 &&g(n+2)==1%b1b2b3=011时正交分量和同相分量的幅值
it = -0.924*ones(1,3*N);
qt = 0.383*ones(1,3*N);
b2 = [zeros(1,N) ones(1,N) ones(1,N)];
elseif g(n)==1 && g(n+1)==1 &&g(n+2)==1%b1b2b3=111时正交分量和同相分量的幅值
it = 0.924*ones(1,3*N);
qt = 0.383*ones(1,3*N);
b2 = [ones(1,N) ones(1,N) ones(1,N)];
elseif g(n)==1 && g(n+1)==1 &&g(n+2)==0%b1b2b3=110时正交分量和同相分量的幅值
it = 0.383*ones(1,3*N);
qt = 0.924*ones(1,3*N);
b2 = [ones(1,N) ones(1,N) zeros(1,N)];
end
sit = [sit it]; sqt = [sqt qt];
sb2 =[sb2 b2];
co = [co c]; si = [si s];
end
psk = sit.*co+sqt.*si; %调制后的8PSK信号
plot(psk)
求采纳