收藏 分销(赏)

基于matlab的MPSK的仿真流程.docx

上传人:天**** 文档编号:3682035 上传时间:2024-07-13 格式:DOCX 页数:11 大小:288.98KB 下载积分:8 金币
下载 相关 举报
基于matlab的MPSK的仿真流程.docx_第1页
第1页 / 共11页
基于matlab的MPSK的仿真流程.docx_第2页
第2页 / 共11页


点击查看更多>>
资源描述
MPSK的仿真分析 一、MPSK简介 在数字相位调制中,M进制信号波形可表示为: smt=Regtej2πm-1Mej2πfct, m=1,2``````M =gtcos2πfct+2πMm-1 =gtcos2πMm-1cos2πfct-gtsin2πMm-1sin2πfct (1) 式中,gt是信号脉冲形状,θ=2π(m-1)/M是载波的M个可能的相位,用于传送发送信息。 信息与承载信号之间存在的对应关系称为“映射”,不同的调制技术就在于它们所采用的映射方式不同。在MPSK中,M个信号对应的M中映射点均匀分布在0~2π的相位上。 MPSK信号可以用两个正交的载波信号实现相干解调。正交路和同相路分别设置两个相关器,得到I(t)和Q(t),经电平判决和并串转换即可恢复原始信息。 MPSK信号可等效为两个正交载波进行多电平双边带调幅所得已调波之和,因此其带宽与MASK信号带宽相同,理论上没有码间串扰的最大频谱效率为log2M (bit/s/Hz)。 二、仿真流程 I路 匹配滤波 匹配滤波 90°移相 同步载波 载波信号 I路 成型滤波 成型滤波 串并转换 相位映射 信号源 高斯信道 s(t) Q路 并串转换 判决 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个星座点分布在复平面的单位圆上。下图是pt=ej2πm-1M得到的8个相位点。 3.分成两路正交信号 将映射后的信号分别投影到两坐标轴上,形成两路相互正交的信号,记为I路和Q路。 4.成型滤波 若是在此处直接加载波,会造成信号的突变,带宽无穷大。信号在经过带限信号后,码间干扰会非常严重。为了解决这一问题,可以使用一种平滑的成型滤波器,使其不仅可以较为平滑,而且其拖尾在其他码元的位置拖尾为0,这样就可以有效解决码间干扰。此处使用的一种滤波器就是升余弦滤波器。 过采样的数字信号处理起来对低通滤波器的要求相对较低,如果不过采样,滤波的时候滤波器需要很陡峭,指标会很严格。 5.加载波 将I/Q两路信号合并,并调到载频上。 可以进一步得到MPSK频谱(8PSK)。 6.通过高斯信道 7.做相干 将接收信号分别与两路同步相干载波相乘,然后通过一个积分器,便可以得到解调后的I/Q路信号。 8.匹配滤波 在AWGN信道中,最佳匹配滤波器的系统函数是成型滤波器的共轭匹配。时域呈现出倒置关系。 9.抽样判决 匹配滤波之后,经过抽样即可得到原始信号。 I/Q两路信号经过相位信息判决,通过符号映射关系得到传输符号,然后通过并串转换得到原始bit信号。 四、仿真代码 clear all; close all; 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'); %binary to decimal,串并转换 figure(1); stem(x_symbol); title('串并转换后得到的M进制符号'); %生成M组映射关系,分成2π/M个相位 for i=1:M pt(i) = exp(j*2*pi*(i-1)/M); end mapping=0:M-1; y=[]; xm=[]; for i=1:length(x_symbol) for m=1:M if(x_symbol(i) == mapping(m)) x_mapping(i) = pt(m); ts(i)=m-1; else end end tx = x_mapping(i).* f1; y=[y tx]; xm=[xm x_mapping(i)]; %每个符号对应的相位 end I=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路信号成型滤波后'); %加载波 for i =1:length(I2) yy = (I2(i)+j*Q2(i))*f1; xm2=[xm2 yy]; end s = 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;%过采样后的点数 for i=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); end figure(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=[]; for i=1:N/k %由I/Q信号得到相位 c(i) = acos(I_sel(i)); if(Q_sel(i)>0) c(i)=-c(i); else end if(c(i)<-pi/M) c(i)=c(i)+2*pi; else end %进行判决,得出对应符号 for m=1:M if((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_symbol1 z_symbol]; else end end end z_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率
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服