⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msk_mod_baseband.m

📁 5扩32 扩频方法仿真 进行SNR估计 产生pn码 基带仿真
💻 M
字号:
function output = msk_mod_baseband(data_src,fb,fs)
%   fc : frequence of the carrier
%   fb : frequence of the data
%   fs : frequence of symple

% SW_TEST = 0;
% if (SW_TEST)      % test enable
%     
%     data_src = [1     0     1     1     0     1     1     1     0     0      0 1 1 0 1 1 0 0 0 0];       % the last bit (20th) is 0
%     fc = 10e+6;     fb = 5e+6;      fs = 45e+6;      
% end

len_data = length(data_src);
ts = 1/fs;       % ts = time sample interplot
% tb = 1/fb;  
N = len_data  * fs / fb;       % the totle number of output signal point

SW_DIFF = 0;        % whether to be differential coded
if SW_DIFF == 1;    % differential code
    c_diff = zeros(1,len_data+1);         c_diff(1) = 1;       %
    for iii = 1 : len_data;        c_diff(1,iii+1) = mod(c_diff(1,iii)+data_src(1,iii) , 2);    end;
else    c_diff = data_src;      % not to be differential
end;

% c = c_diff.* 2 - 1;      % 0-->(-1); 1-->(+1);
c=c_diff;
% serrial to parrellen
I_temp = zeros(1,len_data);      Q_temp = zeros(1,len_data);
if mod(len_data,2) == 0;        % the data length is even
    I_temp(1,1:2:len_data-1) = c(1,1:2:len_data-1);       I_temp(1,2:2:len_data-2) = I_temp(1,3:2:len_data-1);     I_temp(1,len_data) = c(1,len_data);
    Q_temp(1,1:2:len_data-1) = c(1,2:2:len_data);       Q_temp(1,2:2:len_data) = Q_temp(1,1:2:len_data-1);  
else               %the data length is odd
    I_temp(1,1:2:len_data) = c(1,1:2:len_data);       I_temp(1,2:2:len_data-1) = I_temp(1,3:2:len_data);
    Q_temp(1,1:2:len_data) = c(1,2:2:len_data+1);       Q_temp(1,2:2:len_data) = Q_temp(1,1:2:len_data-1);  
end;
% Q_temp = -Q_temp;   % adjust to be same as "simulink"    

% oversample baseband
sam_per_bit = fs/fb;    % some little bug to be fixed
% src_data = oversample_same(data_src,sam_per_bit);
I_in = oversample_same(I_temp,sam_per_bit);
Q_in =  oversample_same(Q_temp,sam_per_bit);

% modulation
nnn = 1:1:N;        ttt = (nnn-1).*ts;
% fb/4 carrier
osc1_i = cos(pi.*ttt.*fb./2);   osc1_q = sin(pi.*ttt.*fb./2);
I_fb = I_in .* osc1_i;      Q_fb = Q_in .* osc1_q; 
output = I_fb + 1j * Q_fb;









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -