How does the ReceiverVirtualVelocity command for comm.RayTracingChannel work?

조회 수: 2 (최근 30일)
Rayan
Rayan 2024년 2월 18일
답변: Rishi 2024년 2월 27일
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)

답변 (1개)

Rishi
Rishi 2024년 2월 27일
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!

카테고리

Help CenterFile Exchange에서 Propagation and Channel Models에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by