HE/WaveAdp/PassChan.m

18 lines
827 B
Mathematica
Raw Permalink Normal View History

2024-03-30 16:35:40 +08:00
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