码迷,mamicode.com
首页 > 其他好文 > 详细

【数字信号调制】基于matlab多进制数字相位调制(4PSK)【含Matlab源码 1001期】

时间:2021-06-19 18:46:01      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:https   方法   完整   直接   sum   抽样   bit   tps   alt   

一、简介

相移键控法, 根据数字基带信号的两个电平使载波相位在两个不同的数值之间切换的一种相位调制方法。
产生PSK信号的两种方法:
1)、调相法:将基带数字信号(双极性)与载波信号直接相乘的方法:
2)、选择法:用数字基带信号去对相位相差180度的两个载波进行选择。
两个载波相位通常相差180度,此时称为反向键控(PSK)。
解调方法:只能采用相干解调。
类型:二进制相移键控(2PSK),多进制相移键控(MPSK)。

二、源代码

%4PSK解调与解调
%假设在T=1,加入高斯噪声
clear all
close all
% 调制
bit_in = randint(1e3, 1, [0 1]);
bit_I  = bit_in(1:2:1e3);
bit_Q  = bit_in(2:2:1e3);
data_I = -2*bit_I+1;
data_Q = -2*bit_Q+1;
data_I1=repmat(data_I‘,20,1);
data_Q1=repmat(data_Q‘,20,1);
for i=1:1e4
    data_I2(i)=data_I1(i);
    data_Q2(i)=data_Q1(i);
end;
f=0:0.1:1;
xrc=0.5+0.5*cos(pi*f);
data_I2_rc=conv(data_I2,xrc)/5.5;
data_Q2_rc=conv(data_Q2,xrc)/5.5;
f1=1;
t1=0:0.1:1e3+0.9;
n0=rand(size(t1));
I_rc=data_I2_rc.*cos(2*pi*f1*t1);
Q_rc=data_Q2_rc.*sin(2*pi*f1*t1);
QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);
QPSK_rc_n0=QPSK_rc+n0;
% 解调
I_demo=QPSK_rc_n0.*cos(2*pi*f1*t1);
Q_demo=QPSK_rc_n0.*sin(2*pi*f1*t1);
% 低通滤波
I_recover=conv(I_demo,xrc);    
Q_recover=conv(Q_demo,xrc);
I=I_recover(11:10010);
Q=Q_recover(11:10010);
t2=0:0.05:1e3-0.05;
t3=0:0.1:1e3-0.1;
% 抽样判决
data_recover=[];
for i=1:20:10000
    data_recover=[data_recover I(i:1:i+19) Q(i:1:i+19)];
end;
bit_recover=[];
for i=1:20:20000
    if sum(data_recover(i:i+19))>0
        data_recover_a(i:i+19)=1;
        bit_recover=[bit_recover 1];
    else
        data_recover_a(i:i+19)=-1;
        bit_recover=[bit_recover -1];
    end
end

三、运行结果

技术图片

四、备注

版本:2014a
完整代码或代写加1564658423

【数字信号调制】基于matlab多进制数字相位调制(4PSK)【含Matlab源码 1001期】

标签:https   方法   完整   直接   sum   抽样   bit   tps   alt   

原文地址:https://www.cnblogs.com/homeofmatlab/p/14901188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!