- Ensure your input ("sigIn") is in baseband.
- Apply the channel effects using "comm.RicianChannel" to the baseband signal.
- After channel application, modulate the signal back to passband frequency ("fc") using a carrier wave. This step converts the signal from baseband to passband.
- Use the real part of the modulated signal as your final, real-valued passband output.
How can I use a Rician simulation on Passband?
3 views (last 30 days)
Show older comments
Yedidia Ovadia
on 10 Jun 2024
Commented: Yedidia Ovadia
on 20 Jun 2024
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
0 Comments
Accepted Answer
Pratyush
on 18 Jun 2024
Hi Yedidia,
To adapt a simulation for a passband and real-valued output when using MATLAB's "comm.RicianChannel", which inherently outputs complex baseband signals, follow these steps:
The process involves applying the channel effects at baseband and then shifting the signal to passband, ensuring the output matches the physical representation of passband signals.
More Answers (0)
See Also
Categories
Find more on Modulation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!