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,基带

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值