How does the ReceiverVirtualVelocity command for comm.RayTracingChannel work?
2 views (last 30 days)
Show older comments
I am using comm.RayTracingChannel to simulate a channel and I am succesfully able to call rtChan() in my below code to get the output complex values representing the Channel Impulse Response (CIR). However, I want to get these CIR values for different scenarios of the receiver moving in a certain direction with a constant velocity. I have tried using ReceiverVirutalVelocity function but it does not impact the CIR values I read. Additionally, I never specify a start and end time for the receiver to be moving so maybe this could be the issue?
Any help would be greatly appreciated. Below is my current code:
%--------------------------------------------------------------------------
viewer = siteviewer("Buildings","canarywharf.osm","Basemap","topographic");
tx = txsite("Name","Small cell transmitter", ...
"Latitude",51.50375, ...
"Longitude",-0.01843, ...
"AntennaHeight",10, ...
"TransmitterPower",5, ...
"TransmitterFrequency",28e9);
show(tx)
rtpm = propagationModel("raytracing", ...
"Method","sbr", ...
"MaxNumReflections",2, ...
"BuildingsMaterial","perfect-reflector", ...
"TerrainMaterial","perfect-reflector");
rx = rxsite("Name","Small cell receiver", ...
"Latitude",51.50276, ...
"Longitude",-0.0178, ...
"AntennaHeight",1);
los(tx,rx)
raytrace(tx,rx,rtpm)
rays = raytrace(tx,rx,rtpm);
rays = rays{1,1};
rtChan = comm.RayTracingChannel(rays,tx,rx);
rtChan.ChannelFiltering = 0;
rtChan.ReceiverVirtualVelocity = [1; 1; 1];
rtChan.SampleRate = 300e6;
cir = rtChan() % This is what prints the CIR values (in this case there are 10 paths)
0 Comments
Answers (1)
Rishi
on 27 Feb 2024
Hi Rayan,
I understand that you're trying to figure out why the output of 'rtChan()' displays the same value, even for scenarios where the receiver is moving in a certain direction.
The usage of 'ReceiverVirtualVelocity' parameter is correct in your case. I ran the code that you have provided, and found out that the values of the variable 'cir' indeed change for different positions of the receiver. The issue you are facing is due to the fact that MATLAB Command Window, by default, only shows 4 digits after the decimal point. You can change this behaviour by using the following command:
format long
This will allow you to view the answer upto 15 digits after the decimal point. You can learn more about the command from the given documentation:
Hope this helps!
0 Comments
See Also
Categories
Find more on Propagation and Channel Models 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!