MPSK的仿真分析一、MPSK简介在数字相位调制中,M进制信号波形可表示为:𝑠𝑚(𝑡)=𝑅𝑒[𝑔(𝑡)𝑒𝑗2𝜋(𝑚−1)𝑀𝑒𝑗2𝜋𝑓𝑐𝑡],𝑚=1,2``````𝑀=𝑔(𝑡)cos[2𝜋𝑓𝑐𝑡+2𝜋𝑀(𝑚−1)]=𝑔(𝑡)cos(2𝜋𝑀(𝑚−1))𝑐𝑜𝑠2𝜋𝑓𝑐𝑡−𝑔(𝑡)sin(2𝜋𝑀(𝑚−1))𝑠𝑖𝑛2𝜋𝑓𝑐𝑡(1)式中,𝑔(𝑡)是信号脉冲形状,θ=2π(m−1)/M是载波的M个可能的相位,用于传送发送信息。信息与承载信号之间存在的对应关系称为“映射”,不同的调制技术就在于它们所采用的映射方式不同。在MPSK中,M个信号对应的M中映射点均匀分布在0~2π的相位上。MPSK信号可以用两个正交的载波信号实现相干解调。正交路和同相路分别设置两个相关器,得到I(t)和Q(t),经电平判决和并串转换即可恢复原始信息。MPSK信号可等效为两个正交载波进行多电平双边带调幅所得已调波之和,因此其带宽与MASK信号带宽相同,理论上没有码间串扰的最大频谱效率为log2𝑀(bit/s/Hz)。二、仿真流程信号源串并转换相位映射成型滤波载波信号成型滤波I路Q路s(t)匹配滤波同步载波90°移相匹配滤波I路Q路高斯信道判决并串转换三、仿真过程1.生成信号源首先生成一串二进制随机序列,通过串并转换,分成k*N/k的序列,并转换成M进制序列。2.建立符号与载波相位之间的映射关系θ=2π(m−1)/M是载波的M个可能的相位,用于映射M个符号,以8PSK为例,(0,π/4,π/2,3π/4,π,5π/4,3π/2,7π/4)共8个相位分别映射了0~7八个符号,其8个星座点分布在复平面的单位圆上。下图是𝑝𝑡=𝑒𝑗2𝜋(𝑚−1)𝑀得到的8个相位点。3.分成两路正交信号将映射后的信号分别投影到两坐标轴上,形成两路相互正交的信号,记为I路和Q路。4.成型滤波若是在此处直接加载波,会造成信号的突变,带宽无穷大。信号在经过带限信号后,码间干扰会非常严重。为了解决这一问题,可以使用一种平滑的成型滤波器,使其不仅可以较为平滑,而且其拖尾在其他码元的位置拖尾为0,这样就可以有效解决码间干扰。此处使用的一种滤波器就是升余弦滤波器。过采样的数字信号处理起来对低通滤波器的要求相对较低,如果不过采样,滤波的时候滤波器需要很陡峭,指标会很严格。5.加载波将I/Q两路信号合并,并调到载频上。可以进一步得到MPSK频谱(8PSK)。6.通过高斯信道7.做相干将接收信号分别与两路同步相干载波相乘,然后通过一个积分器,便可以得到解调后的I/Q路信号。8.匹配滤波在AWGN信道中,最佳匹配滤波器的系统函数是成型滤波器的共轭匹配。时域呈现出倒置关系。9.抽样判决匹配滤波之后,经过抽样即可得到原始信号。I/Q两路信号经过相位信息判决,通过符号映射关系得到传输符号,然后通过并串转换得到原始bit信号。四、仿真代码clearall;closeall;M=8;k=log2(M);%t=0:2*pi/99:2*pi;N=300;%要传输的bit数Ts=0.01;fs=1/Ts;Tsym=2;%每个码元持续时间t=0:Ts:Tsym;L=length(t);T=L*N/k;fc=0.5;%载波频率f1=exp(j*fc*t*2*pi);%载波c1=cos(fc*t*2*pi);%I路载波c2=sin(fc*t*2*pi);%Q路载波SNR=8;%信噪比x_bit=randint(N,1);%生成二进制随机信号%转换x_symbol=bi2de(reshape(x_bit,k,length(x_bit)/k).','left-msb');%binarytodecimal,串并转换figure(1);stem(x_symbol);title('串并转换后得到的M进制符号');%生成M组映射关系,分成2π/M个相位fori=1:Mpt(i)=exp(j*2*pi*(i-1)/M);endmapping=0:M-1;y=[];xm=[];fori=1:length(x_symbol)form=1:Mif(x_symbol(i)==mapping(m))x_mapping(i)=pt(m);ts(i)=m-1;elseendendtx=x_mapping(i).*f1;y=[ytx];xm=[xmx_mapping(i)];%每个符号对应的相位endI=real(xm);%I路符号Q=imag(xm);%Q路符号figure(2);subplot(211);stem(I);title('I路信号');subplot(212)stem(Q);title('Q路信号');xm2=[];%过采样的数字信号处理起来对低通滤波器的要求相对较低,如果不过采样,滤波的时候滤波器需要很陡峭,指标会很严格%滤波器参数oversampling_rate=4;%过采样率filtorder=24;delay=filtorder/(oversampling_rate*2);rolloff=0.5;filter=rcosine(1,oversampling_rate,'fir/sqrt',rolloff,delay);%升余弦滚降滤波器figure(3);stem(filter);title('升余弦滚降滤波器');%经过一个滚降升余弦滤波器,成型滤波I2=rcosflt(I,1,oversampling_rate,'filter',filter);Q2=rcosflt(Q,1,oversampling_rate,'filter',filter);%加载波figure(4);subplot(211);plot(I2);title('I路信号成型滤波后');subplot(212)plot(Q2);title('Q路信号成型滤波后');%加载波fori=1:length(I2)yy=(I2(i)+j*Q2(i))*f1;xm2=[xm2yy];ends=real(xm2);figure(5);plot(s);title('已调信号波形');%MPSK的频谱figure(6);N1=length(s);ff=[0:N1-1]*fs/N1;ff=ff(1:N1/2);y_s=fft(real(s));y_s=abs(y_s(1:(N1/2)));plot(ff,y_s);title('MPSK频谱');%加噪ynoise=awgn(s,SNR,'measured');figure(7);plot(ynoise);title('通过高斯信道后信号波形');L1=N/k*oversampling_rate+2*delay*oversampling_rate;%过采样后的点数fori=1:L1%乘以I/Q相干载波,提取I/Q两路信号I_dem(i)=2*mean(ynoise(((i-1)*L+1):i*L).*c1);Q_dem(i)=2*mean(ynoise(((i-1)*L+1):i*L).*c2);endfigure(8);subplot(211);plot(I_dem);title('I路解调信号');subplot(212)plot(Q_dem);title('Q路解调信号');%信号经过低通滤波器(匹配滤波器)I_mat=rcosflt(I_dem,1,oversampling_rate,'Fs/filter',filter);I_sel=downsample(I_mat,oversampling_rate);%通过下采样抽样提取出来原数据I_sel=I_sel(2*delay+1:end-2*delay);Q_mat=rcosflt(Q_dem,1,oversampling_rate,'Fs/filter',filter);Q_sel=downsample(Q_mat,oversampling_rate);%通过下采样抽样提取出来原数据Q_sel=Q_sel(2*delay+1:end-2*delay);figure(9);subplot(211);stem(I_sel);title('Isel');subplot(212)stem(Q_sel);title('Qsel');%判决z_symbol1=[];fori=1:N/k%由I/Q信号得到相位c(i)=acos(I_sel(i));if(Q_sel(i)0)c(i)=-c(i);elseendif(c(i)-pi/M)c(i)=c(i)+2*pi;elseend%进行判决,得出对应符号form=1:Mif((c(i)=(2*pi*(m-1)/M-pi/M))&&(c(i)(2*pi*(m-1)/M+pi/M)))z_symbol=mapping(m);z_symbol1=[z_symbol1z_symbol];elseendendendz_bit=de2bi(z_symbol1,'left-msb');z_bit=reshape(z_bit.',numel(z_bit),1);%恢复成bit信息figure(10);subplot(2,1,1);stem(x_bit,'filled');title('随机二进制信号源');subplot(2,1,2);stem(z_bit,'filled');title('解调信号');[number_of_errors,bit_error_rate]=biterr(x_bit,z_bit)%错误bit数,及误bit率