Hello!
How can I get rxwaveform from txwaveform using pathGains, sampleTimes, etc.? I believe this is crucial for constructing the effective channel matrix in the case of time-varying channels. Specifically as follows:
This is a simple example of a SISO case where the input waveform is transmitted through the TDL channel.
tdl.DelayProfile = 'TDL-A';
tdl.DelaySpread = 100e-9;
tdl.MaximumDopplerShift = 0;
tdl.NumReceiveAntennas = 1;
tdl.NormalizeChannelOutputs = false;
tdl.NormalizePathGains = false;
carrier = nrCarrierConfig('SubcarrierSpacing',SCS,'NSizeGrid',NRB);
trans_info = randi([0,1], NRB*12*14*2, 1);
data = qammod(reshape(trans_info, 2, NRB*12*14), 4,'gray','InputType','bit').';
data = reshape(data, NRB*12, 14);
[txwaveform,info] = nrOFDMModulate(carrier,data);
[rxwaveform, pathGains, sampleTimes] = tdl(txwaveform);
y1 = nrOFDMDemodulate(carrier, rxwaveform);
pathFilters = getPathFilters(tdl);
hest = nrPerfectChannelEstimate(pathGains,pathFilters,NRB,SCS,nSlot,offset,sampleTimes);
If tdl.MaximumDopplerShift = 0, then y2 = y1.
As `tdl.MaximumDopplerShift` increases, due to the loss of orthogonality among OFDM subcarriers, y2 will show significant deviation.
Now, I wish to construct a matrix G such that rxwaveform = G * txwaveform. Then, through the Fourier transform, we can obtain matrix H so that y = H * data. And H is commonly referred to as the effective channel matrix
I hope I have made my question clear, thank you!