通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2020-5-1
跳转到指定楼层
1#
发表于 2020-5-2 17:21:00 |只看该作者 |倒序浏览
%MSK调制函数
function [I_out,Q_out] = mod_msk(data,data_len,sample_number,Rb)   
Tb = 1/Rb;                         %码元周期
fs = Rb*sample_number;      %采样速率
[data_diff] = difference(data);  %差分编码
I(1) = 1;                                %串并转换
for i = 1:2:data_len  
    Q(i) = data_diff(i);  
    Q(i+1) = data_diff(i);  
end  
for i = 2:2:data_len  
    I(i+1) = data_diff(i);  
    I(i) = data_diff(i);  
end  
  
for i = 1:sample_number           %采样
    I1(i:sample_number:data_len*sample_number) = I(1:data_len);  
    Q1(i:sample_number:data_len*sample_number) = Q(1:data_len);  
end  
t=1/fs:1/fs:data_len*Tb;  
I_out = I1 .* cos(pi*t/2/Tb);    %乘上加权函数
Q_out = Q1 .* sin(pi*t/2/Tb);  %乘上加权函数


%主函数
data_len = 10000;                 %码元个数
sample_number = 8;             %每个码元的采样点数
Rb = 24000;                         %码率
fc = 96000;                         %载波频率
data=rand_binary(data_len); %随机数发生器
[I_out,Q_out] = mod_msk(data,data_len,sample_number,Rb);   %MSk调制
multi = fc/Rb;  
I_temp=interp(I_out,multi);  
Q_temp=interp(Q_out,multi);   
Fs=fc*sample_number;  
t=1/Fs:1/Fs:length(I_temp)*1/Fs;  
signal_i=I_temp.*cos(2*pi*fc*t);          %乘上载波
signal_q=Q_temp.*sin(2*pi*fc*t);       %乘上载波
signal_mod=I_temp.*cos(2*pi*fc*t)-Q_temp.*sin(2*pi*fc*t);    %调制信号生成
plot(t,signal_mod)

这是网上找的一段代码,但是运行出来的图和正常的MSK调制图不一样,是不是哪里需要修改?应该怎么改?
这是运行图 捕获1.PNG

举报本楼

本帖有 1 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-5-22 00:50 , Processed in 0.126773 second(s), 18 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部