数字信号调制基于多进制数字相位调制(4PSK)matlab源码
Posted MatlabQQ1575304183
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字信号调制基于多进制数字相位调制(4PSK)matlab源码相关的知识,希望对你有一定的参考价值。
一、简介
相移键控法, 根据数字基带信号的两个电平使载波相位在两个不同的数值之间切换的一种相位调制方法。
产生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
三、运行结果
代码下载https://www.cnblogs.com/matlabxiao/p/14883637.html
以上是关于数字信号调制基于多进制数字相位调制(4PSK)matlab源码的主要内容,如果未能解决你的问题,请参考以下文章
数字信号调制基于matlab GUI数字信号调制系统(2ASK+2FSK+2PSK+4ASK+4FSK+4PSK带面板)含Matlab源码 1658期
数字信号调制基于二进制数字相位调制(2PSK)matlab源码
数字信号调制基于matlab GUI FSK调制+解调含Matlab源码 645期
数字信号调制基于matlab GUI数字信号调制系统含Matlab源码 1030期