通信人家园
标题:
大神们,这段MSK调制代码是不是哪里有问题?
[查看完整版帖子]
[打印本页]
时间:
2020-5-2 17:21
作者:
用户名已输入
标题:
大神们,这段MSK调制代码是不是哪里有问题?
%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调制图不一样,是不是哪里需要修改?应该怎么改?
这是运行图
2020-5-2 17:20 上传
下载附件
(12.23 KB)
附件:
捕获1.PNG
(2020-5-2 17:20, 12.23 KB) / 下载次数 0
https://www.txrjy.com/forum.php?mod=attachment&aid=NDM4ODAyfDBmY2YxNTA2fDE3MzI0NjMxNzh8MHww
时间:
2020-5-2 17:51
作者:
用户名已输入
有能帮忙解释一下吗?
通信人家园 (https://www.txrjy.com/)
Powered by C114