- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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;
文档评论(0)