18 lines
827 B
Mathematica
18 lines
827 B
Mathematica
![]() |
function [chanOut,ChanPara] = PassChan(dataIn,WaveformPara,SysParameters,ChanPara,seed)
|
||
|
|
||
|
Chan = comm.RayleighChannel(...
|
||
|
'SampleRate',ChanPara.SampleFs, ...
|
||
|
'PathDelays', ChanPara.delay, ...
|
||
|
'AveragePathGains', ChanPara.PDP, ...
|
||
|
'NormalizePathGains',true, ...
|
||
|
'MaximumDopplerShift',floor(ChanPara.MaximumDopplerShift), ...
|
||
|
'DopplerSpectrum',doppler(ChanPara.doppler), ...
|
||
|
'PathGainsOutputPort',SysParameters.ShowPathGain);
|
||
|
[rAddMultipath,~] = Chan(dataIn);
|
||
|
% rAddCFO = rAddMultipath.*exp(sqrt(-1)*2*pi*(1:length(rAddMultipath))'*ChanPara.epsilon/N_FFT);
|
||
|
SNR = ChanPara.SNR;
|
||
|
ChanPara.N0 = WaveformPara.Power_sig/10^(SNR/10);
|
||
|
rAddAWGN = awgn(rAddMultipath,SNR,'measured');
|
||
|
chanOut = [sqrt(ChanPara.N0)*(randn(400,1)+1i*randn(400,1));rAddAWGN];
|
||
|
|
||
|
end
|