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

📄 modulator.m

📁 is95系统的基带仿真程序。自己可以去调试
💻 M
字号:
function [TxOut, PN, MF] = Modulator(chips, MFType, Walsh);
%
% MODULATOR			This function modulate the forward Channel chips.
% 						Block Diagram
%						InChips -> [Walsh] -> [Spreading] -> [Output Tx Shaping Filter]
%
% 						Inputs: chips - chips sequence to transmit
%                                    MFType - Shaping Filter type (default - Rise Cosine)
%                                    Walsh - Used row of Walsh matrix
%
% 						Outputs: TxOut - Transmitted signal (analog signal)
%                                       PN - PN sequence for I/Q Channels
%									    MF - mathed filter taps (Shaping Filter)

global Zi Zq show R Gi Gq

N = length(chips)*length(Walsh);  	% Number of output chips

%-------- Walsh covering ---------
% Input Rate = 19.2 KBps, Output Rate = 1.2288 Mcps
tmp = sign(Walsh-1/2)*sign(chips'-1/2);
chips = reshape(tmp, prod(size(tmp)), 1);

%-------- PN Spreading sequences generation---------
% Rate = 1.2288 Mcps
[PNi Zi] = PNGen(Gi, Zi, N);  % I-channel PN generation
[PNq Zq] = PNGen(Gq, Zq, N);  % Q-channel PN generation

PN = sign(PNi-1/2) + j*sign(PNq-1/2);

%--------------- Signal Spreading --------------------
% Rate = 1.2288 Mcps
chips_out = chips.*PN;     % (I-Q signal)

chips = [chips_out, zeros(N, R-1)];	% Pulse generation
chips = reshape(chips.' , N*R, 1);


%--------------- Shaping Filter --------------------
switch (MFType)
case 1
   %----------------- Raised Cosine filter ------------   
   L = 25;
   L_2 = floor(L/2);
   n = [-L_2:L_2];
   B = 0.7;
   MF = sinc(n/R).*(cos(pi*B*n/R)./(1-(2*B*n/R).^2));
   MF = MF/sqrt(sum(MF.^2));
   
case 2
   %----------------- Rectangular Filter ------------   
   L = R;
   L_2 = floor(L/2);
   MF = ones(L, 1);
   MF = MF/sqrt(sum(MF.^2));
   
case 3
   %----------------- Triangular Filter ------------   
   L = R;
   L_2 = floor(L/2);
   MF = hamming(L);
   MF = MF/sqrt(sum(MF.^2));
   
end

MF = MF(:);

%---------------- Transmit -----------------
TxOut = sqrt(R)*conv(MF, chips)/sqrt(2);
TxOut = TxOut(L_2+1: end - L_2);


if (show)
   figure;
   subplot(211); plot(MF, '-o'); title('Matched Filter'); grid on;
   subplot(212); psd(TxOut, 1024, 1e3, 113); title('Spectrum');
end


⌨️ 快捷键说明

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