%本程序采用Monte Carlo方法生成经过光强闪烁,以及调制后的序列
function [data,turb,seq]=lognormal_signal_interp(n,sigmax2)
% n=1e7;sigmaR2=0.5;%这一行是测试时用的
% Input:
% n表示信号长度,
% sigmaR2表示里托夫方差,一定是方差
% Output:
% data:经过lognormal序列调制过后的伪随机序列,也是本程序需要的输出
% turb:lognormal序列,经过滤波之后的未调制序列
% seq:未经过lognormal调制的伪随机序列
seq=randi([0 1],1,n); %生成n个0/1随机数列,也可用老版的命令randint
%这是上采样之前的调制序列
%==========================================================================
turb=gamma_gamma(sigmax2,n);
turb=turb/mean(turb);%将turb的均值回归到1
data=seq.*turb;