matlab实现2dpsk调制与解调,2DPSK调制与解调 matlab

%- 2DPSK 调制与解调

%---------------------------------------------------

%>>>>>>>>>>>>>>>>>>参数初始化>>>>>>>>>>>>>>>>>>>>>

%---------------------------------------------------

fs = 3600000;%采样频率为36000赫兹

Time_Hold_On = 1/1200;%一个时钟周期为1200分之1,对应比特率为1200bps

Num_Unit = fs * Time_Hold_On;%一个时钟周期内的采样点个数

High_Level = ones ( 1, Num_Unit );%高电平(全1序列)

Low_Level = zeros ( 1, Num_Unit );%低电平(全0序列)

w = 1800;%载波角频率1800Hz

A = 1;%载波幅值

%---------------------------------------------------

%>>>>>>>>>>>>>>>>>>信号初始化>>>>>>>>>>>>>>>

%---------------------------------------------------

Sign_Set = [0,1,1,0,1,0,0,1];%原始序列

Lenth_Of_Sign = length ( Sign_Set );%原始序列长度

Sign_Sett = ones(1,Lenth_Of_Sign+1);%差分变换后的序列,初始化为长度为原始序列长度+1的全1序列(第一个码元为1)

sign_orign = zeros ( 1, Num_Unit * (Lenth_Of_Sign+1) );%初始化基带信号为全0序列

sign_result = zeros ( 1, Num_Unit * (Lenth_Of_Sign+1) );%初始化接收到的基带信号为全0序列

st = zeros ( 1, Num_Unit *( Lenth_Of_Sign+1) );%初始化调制后的信号为全0序列 t = 0 : 1/fs : Time_Hold_On * (Lenth_Of_Sign +1)- 1/fs;%信号采样时间点

result=zeros(1,Lenth_Of_Sign+1);%初始化接收到的序列

resultt=zeros(1,Lenth_Of_Sign);%初始化差分解调后的序列

%---------------------------------------------------

%>>>>>>>>>>>求差分编码>>>>>>>>>>>>

%---------------------------------------------------

for I = 2 : Lenth_Of_Sign+1 %差分变换后的序列第一个值为1,从第2个开始计算 Sign_Sett(I)= xor(Sign_Sett(I-1),Sign_Set(I-1));%用异或运算求差分码

end

%---------------------------------------------------

%>>>>>>>>>>>产生基带信号>>>>>>>>>>>>

%---------------------------------------------------

for I = 1 : Lenth_Of_Sign+1 %考虑差分变换后序列中每一个值

if Sign_Sett(I) == 1

sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level; %序列值为1,基带信号为高电平

else

sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level; %序列值为0,基带

你可能感兴趣的:(matlab实现2dpsk调制与解调,2DPSK调制与解调 matlab)