%差分编码 Sign_Setdiff(1) = -1; for (i = 2:Lenth_Of_Sign_Set) Sign_Setdiff(i) =(Sign_Set(i) * Sign_Set(i-1)); end for I=1:2:Lenth_Of_Sign_Set %信号分离成两路奇数偶数信号 Sign_SetI(j)= Sign_Set(I+1);Sign_SetI(j+1)= Sign_Set(I+1); Sign_SetQ(j)=Sign_Set(I);Sign_SetQ(j+1)= Sign_Set(I); j=j+2; end for I = 1 : Lenth_Of_Sign_Set Sign_Set1( ((I-1)*Num_Unit + 1) : I*Num_Unit) = Sign_Set(I);%生成m1(t) Sign_Setdiff1( ((I-1)*Num_Unit + 1) : I*Num_Unit) = Sign_Setdiff(I);%生成mq(t) end for I = 2 : Lenth_Of_Sign_Set Sign_SetI1( ((I-1)*Num_Unit + 1) : I*Num_Unit) = Sign_SetI(I-1);%生成m1(t) Sign_SetQ1( ((I-1)*Num_Unit + 1) : I*Num_Unit) = Sign_SetQ(I);%生成mq(t) end t = 0 : 1/fs : Time_Hold_On * Lenth_Of_Sign_Set- 1/fs; %Rb * 16 = 0.01*16 = 0.16 Sign_SetI2 = Sign_SetI1 .* cos (pi * t / 2 / Time_Hold_On); Sign_SetI2 = Sign_SetI2 .* cos (2 * pi * fc * t ); Sign_SetQ2 = Sign_SetQ1 .* sin (pi * t / 2 / Time_Hold_On); Sign_SetQ2 = Sign_SetQ2 .* sin (2 * pi * fc * t ); SMSK = Sign_SetI2 - Sign_SetQ2;
时间: 2023-12-06 11:03:01 浏览: 76
VB-MODBUS实现源码.doc
这段代码是对之前定义的符号序列进行差分编码,并生成 MSK 调制信号。具体实现过程如下:
1. 对符号序列进行差分编码,生成差分后的序列 Sign_Setdiff。
2. 将原始符号序列分离成两路奇偶数信号,分别为 Sign_SetI 和 Sign_SetQ。
3. 生成两个新的信号序列 Sign_Set1 和 Sign_Setdiff1,其中 Sign_Set1 为原始符号序列重复采样得到,Sign_Setdiff1 为差分编码后的序列重复采样得到。
4. 对 Sign_SetI 和 Sign_SetQ 进行移位,生成新的符号序列 Sign_SetI1 和 Sign_SetQ1。
5. 根据 MSK 调制原理,将 Sign_SetI1 和 Sign_SetQ1 分别和正弦余弦波进行调制,生成带载波的两路信号 Sign_SetI2 和 Sign_SetQ2。
6. 将 Sign_SetI2 和 Sign_SetQ2 相减,得到最终的 MSK 调制信号 SMSK。
需要注意的是,在代码中的差分编码部分和符号分离部分都是为了生成两路信号,方便后续的调制处理。如果您对 MSK 调制的具体实现有疑问或需要进一步了解,欢迎继续提问,我会尽力回答。
阅读全文