How can I use a Rician simulation on Passband?
Hi,
I am developing a Rician simulation for an OTFS modem and implementing it on a signal that has been modulated to passband. I am using the ‘comm.RicianChannel’ function for this purpose.
However, I encountered an issue: the output of this function is complex, as if it were in baseband, while I need the output to be in passband and real-valued.
I attempted to create an analytic signal and then use only the real part after applying the channel, but I am uncertain if this approach is correct.
Could you please advise on how to adjust the function or filter to work with passband signals and obtain a real-valued output? Any suggestions or guidance would be greatly appreciated.
Thank you.
Code example of the Rician channel:
%% Configure a Rician channel object
ricChan = comm.RicianChannel( …
‘SampleRate’,fs, …
‘PathDelays’,delayVector, …
‘AveragePathGains’,gainVector, …
‘KFactor’,KFactor, …
‘DirectPathDopplerShift’,specDopplerShift, …
‘MaximumDopplerShift’,maxDopplerShift, …
‘RandomStream’,’mt19937ar with seed’, …
‘Seed’,randi([1 1000],1) , …
‘PathGainsOutputPort’,true);
%% Apply Rician channel object on the modulated data
for k = 1:numberOfReceivers
temp=[zeros(round(DelayTime(k) * fs),1); sigIn ; zeros(round(max(DelayTime * fs)) – round(DelayTime(k) * fs),1)];
noise = Pn * randn(1, size(sigIn, 2));
sigOut(:,k)=ricChan(temp);
sigOut(:,k)=sigOut(:,k)+noise;
endHi,
I am developing a Rician simulation for an OTFS modem and implementing it on a signal that has been modulated to passband. I am using the ‘comm.RicianChannel’ function for this purpose.
However, I encountered an issue: the output of this function is complex, as if it were in baseband, while I need the output to be in passband and real-valued.
I attempted to create an analytic signal and then use only the real part after applying the channel, but I am uncertain if this approach is correct.
Could you please advise on how to adjust the function or filter to work with passband signals and obtain a real-valued output? Any suggestions or guidance would be greatly appreciated.
Thank you.
Code example of the Rician channel:
%% Configure a Rician channel object
ricChan = comm.RicianChannel( …
‘SampleRate’,fs, …
‘PathDelays’,delayVector, …
‘AveragePathGains’,gainVector, …
‘KFactor’,KFactor, …
‘DirectPathDopplerShift’,specDopplerShift, …
‘MaximumDopplerShift’,maxDopplerShift, …
‘RandomStream’,’mt19937ar with seed’, …
‘Seed’,randi([1 1000],1) , …
‘PathGainsOutputPort’,true);
%% Apply Rician channel object on the modulated data
for k = 1:numberOfReceivers
temp=[zeros(round(DelayTime(k) * fs),1); sigIn ; zeros(round(max(DelayTime * fs)) – round(DelayTime(k) * fs),1)];
noise = Pn * randn(1, size(sigIn, 2));
sigOut(:,k)=ricChan(temp);
sigOut(:,k)=sigOut(:,k)+noise;
end Hi,
I am developing a Rician simulation for an OTFS modem and implementing it on a signal that has been modulated to passband. I am using the ‘comm.RicianChannel’ function for this purpose.
However, I encountered an issue: the output of this function is complex, as if it were in baseband, while I need the output to be in passband and real-valued.
I attempted to create an analytic signal and then use only the real part after applying the channel, but I am uncertain if this approach is correct.
Could you please advise on how to adjust the function or filter to work with passband signals and obtain a real-valued output? Any suggestions or guidance would be greatly appreciated.
Thank you.
Code example of the Rician channel:
%% Configure a Rician channel object
ricChan = comm.RicianChannel( …
‘SampleRate’,fs, …
‘PathDelays’,delayVector, …
‘AveragePathGains’,gainVector, …
‘KFactor’,KFactor, …
‘DirectPathDopplerShift’,specDopplerShift, …
‘MaximumDopplerShift’,maxDopplerShift, …
‘RandomStream’,’mt19937ar with seed’, …
‘Seed’,randi([1 1000],1) , …
‘PathGainsOutputPort’,true);
%% Apply Rician channel object on the modulated data
for k = 1:numberOfReceivers
temp=[zeros(round(DelayTime(k) * fs),1); sigIn ; zeros(round(max(DelayTime * fs)) – round(DelayTime(k) * fs),1)];
noise = Pn * randn(1, size(sigIn, 2));
sigOut(:,k)=ricChan(temp);
sigOut(:,k)=sigOut(:,k)+noise;
end ricianchannel, otfs channel, passband MATLAB Answers — New Questions