msk 的 调 制 解 调 MATLAB 源 代码 function out = delay(data,n,sample_number) %data:延迟的数据 %n:延迟码元个数 %sample_number:码元采样个数 out = zeros(1,length(data)); out(n*sample_number+1:length(data)) = data(1:length(data)-n*sample_number); function [data_diff] = difference(data) %差分编码 %************************************************************************** %data 输入信号 %data_diff 差分编码后信号 %************************************************************************** %-------------------------------------------------------------------------- data_diff = zeros(1,length(data)); data_diff(1) = 1 * data(1); %1 为差分编码的初始参考值 for i = 2:length(data) data_diff(i) = data_diff(i-1) * data(i); end %************************************************************************** function [signal_out,I_out,Q_out] = mod_msk(data,data_len,sample_number,Rb) %MSK 基带调制 %************************************************************************** % data 调制信号 % data_len 码元个数 % sample_number 每个码元采样点数 % Rb 码元速率 % signal_ou t 基带调制输出 % I_ou t I 路输出 % Q_ou t Q 路输出 %************************************************************************** % data_len = 10; %码元个数 % sample_nu mber = 8; %采样点数 % Rb = 16000; %码元速率 % data1 = randint(1,data_len); % data = 2*data1-1; %传输的序列 Tb = 1/Rb; %码元时间 fs = Rb*sample_nu mber; %采样速率 %-------------------------------------------------------------------------- %差分编码 [data_diff] = difference(data); %************************************************************************** %-------------------------------------------------------------------------- %并串转换,延时 I(1) = 1; %fai0 = 0,cos(fai0) = 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);...