nlspec.m

来自「自适应滤波原理_西蒙.赫金_Matlab_源代码 希望能够对学习自适应滤波技术」· M 代码 · 共 50 行

M
50
字号
%-----------------------------------------------------------
% Compute spectrum through nonlinearity
%-----------------------------------------------------------

Nbits   = 10000;
Rs      = 16;     % upsampling rate
rolloff = 0.50;   % rolloff for raised cosine filtering
Ntaps   = 101;    % number of filter taps
Txfilt  = rrcfilt(1/Rs/2,rolloff,201);
BackOff = [1];    % input backoff of nonlinearity

%--- QPSK modulation ----------------
Data = sign(randn(Nbits,1)) + j*sign(randn(Nbits,1));
Data = [1; zeros(Rs-1,1)] * Data';
Data = Data(:);

%--- pi/4-QPSK ----------------------
% Data = sign(randn(1,Nbits)) + j*sign(randn(1,Nbits));
% Rot  = exp(j*pi/4) .^ [1:length(Data)];
% Data = Data .* Rot;
%     
% Data = [1; zeros(Rs-1,1)] * Data;
% Data = Data(:);

%--- OQPSK --------------------------
% Data = [1; zeros(Rs-1,1)] * sign(randn(1,Nbits)) + ... 
%        j * [zeros(Rs/2,1); 1; zeros(Rs/2-1,1)] * sign(randn(1,Nbits));
% Data = Data(:);


TxSig = filter(Txfilt,1,Data); 

Vrms  = std(TxSig);

freq  = Rs*[-512:511]'/1024;  % frequency in symbol rates
temp  = [];

for i=1:length(BackOff)
 	BoSig          = TxSig/Vrms * 10^(-BackOff(i)/20);
	ClipInd        = find(abs(BoSig)>1);
    BoSig(ClipInd) = BoSig(ClipInd) ./ abs(BoSig(ClipInd));
    Nlsig          = BoSig;
    temp           = [temp Nlsig]; 
end

spectra(temp,1024,Rs);



⌨️ 快捷键说明

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