RIS-aided Positioning Experiments based on mmWave Indoor Channel Measurements

Moustafa Rahal13, Benoît Denis1, Taghrid Mazloum1, Frederic Munoz1, and Raffaele D'Errico1
1CEA-Leti, Université Grenoble Alpes, F-38000 Grenoble, France

3Université Rennes 1, IETR - UMR 6164, F-35000 Rennes, France

RIS are announced as a truly transformative technology, capable of smartly shaping wireless environments to optimize next generation communication networks.
Among their numerous foreseen applications, RRIS have been shown theoretically beneficial not only to enable wireless localization through controlled multipath in situations where conventional systems would fail (e.g., with too few available BS and/or under radio blockages) but also to locally boost accuracy on demand (typically, in regions close to the surface). In this paper, leveraging a dedicated frequency-domain mmWave indoor channel sounding campaign, we present the first experimental evidences of such benefits, by emulating offline simple RIS-aided single-BS positioning scenarios including LoS and NLoS, single-RIS and multi-RIS, and multiple UE locations, also by considering various combinations of estimated multipath parameters (e.g., delays, AoD or gains) as inputs to basic LS solvers. Despite their simplicity, these preliminary proof-of-concept validations show concretely how and when RIS-reflected paths could contribute to enhance localization performance.

Indoor Channel Sounding, Multipath Parameters, NLoS, Proof-of-Concept Validations, RIS, VNA, Wireless Localization.

§ INTRODUCTION

RIS, which consist of controllable nearly-passive devices behaving as electromagnetic mirrors or lenses, are foreseen as an enabling breakthrough technology for beyond fifth generation (B5G) wireless systems [1, 2]. These surfaces can purposely modify the wireless propagation environments to optimize communication networks in the sense of improved QoS, extended coverage, low power consumption, limited field exposure [3], and more. Regarding wireless localization, RIS have been shown not only to locally boost accuracy on demand, but also and foremost to enable localization feasibility in harsh operating contexts or under limited deployment settings for which conventional systems based on active BS would fail [4, 5]. For instance, RRIS have already been considered for parametric multipath-aided positioning in both LoS (e.g., [6, 7, 8, 9, 10]) or NLoS (e.g., [11, 12, 13]) conditions, encompassing far and near field propagation regimes. However, most of these state-of-the-art contributions are still based on simplistic models and synthetic simulations for performance evaluation.

In contrast, this paper accounts for preliminary proof-of-concept validations of RIS-aided positioning in a single-BS indoor scenario, relying on frequency-domain mmWave channel measurement data. The main paper contributions can be summarized as follows: (i) we describe a dedicated VNA-based channel measurement campaign, which was carried out with real RRIS [14] and TRIS [15] prototypes, both with beamforming capabilities, as well as a monopole antenna mounted on a positioner enabling high-resolution multipath estimation; (ii) we conduct an analysis of the RIS-reflected multipath components in terms of delay, AoA and AoD (i.e., beyond overall channel gains) in light of localization needs; (iii) we benchmark positioning results for several UE and RRIS locations, while considering various combinations of estimated multipath parameters or overall channel parameters; (iv) we illustrate concrete limitations related to the presence of grating lobes at the RRIS and/or too large distances between the RRIS and the UE. To the best of our knowledge, these experiments represent a world premiere demonstrating the validity of the RIS-aided localization concept at mmWave frequencies based on a real-life surface prototype.

Picture of the indoor environment and equipment considered for the mmWave measurement campaign.

Simplified block diagram of the RIS-enabled mmWave VNA-based channel sounder, with 1-bit RRIS phase control.

Layout and deployment considered in the mmWave channel measurement campaign, including 1 BS location, 2 RRIS locations (RRIS1 and 2) and 5 UE locations (UE1 to UE5), represented for both the BS and RRIS1 beams sweeping phases (resp. a and b).

§ MMWAVE CHANNEL MEASUREMENTS

§.§ Experimental Setup and Measurement Procedure

The experimental setup committed in our measurement campaign relies on a VNA-based mmWave channel sounder, which is similar to that used in [16]. It includes a TRIS [15] on the TX side and a RRIS [14] between the TX and the RX, both with 1-bit element-wise phase control. In the following descriptions, unless specified, we reserve the term "RIS" to the reflective RIS, while systematically depicting the TRIS as "BS" for the sake of simplicity. Fig. <ref> shows a simplified block diagram of the overall measurement acquisition chain. Both the floor plan of the reference indoor environment and the tested deployment configurations are represented in Fig. <ref>.
Lying in a unique reference location for all the tested configurations, the BS first performed a beam scanning
in azimuth from $-60\degree$ to $+60\degree$, by a step of $5\degree$, while the RRIS was still off. Then, using a static beam, the BS just illuminated the activated RRIS, which was tested sequentially within two distinct location/orientation configurations. For each location/orientation setting, the RRIS was controlled through a codebook to perform also beam sweeping in azimuth from $-60\degree$ to $+60\degree$, still by the same step of $5\degree$. For the scanning process of both BS and RRIS, a unique anticlockwise convention was used to define the AoD, using a reference angle (i.e., $0\degree$) normal to the surface/array. The measurement procedure above was repeated over 5 main UE positions. In each of those positions, the RX monopole antenna was moved over a $3\times3$ small-scale grid (i.e., considering a virtual square array in the horizontal $x$-$y$ plane) thanks to a high-precision positioner, and a frequency-domain complex channel response between the TX and the RX was recorded from $25$ to $35$ GHz
by the step of $10$ MHz on each occupied small-scale position, although a bandwidth of $2$ GHz (among the measured $10$ GHz bandwidth) was further used in practice in our localization tests (See Sec. <ref>) to emulate the behaviour of a realistic receiver. Note that the three involved entities (i.e., BS, RRIS and UE) were all set at the same height of $1.6$m and hence, lying on the same 2D plane during all experiments.

§.§ Measurement Data Calibration and Pre-processing

The effect of all cables and RF components in the acquisition chain was pre-characterized and calibrated out of all the recorded complex frequency-domain channel responses. Then, thanks to the virtual $3\times3$ array used at the RX UE, for each tested location and pointing beam direction (at the BS or the RRIS), the classical high-resolution Space-Alternating Generalized Expectation-maximization (SAGE) algorithm [17] was applied to extract the parameters of the most significant MPC, including the travelled OTA distance (or equivalently, the delay[As we operate with a VNA, TX-RX synchronization is inherently solved and any estimated delay directly coincides with the absolute time of flight, after calibration. In a real asynchronous system relying on relative delay estimation at the RX though, either multi-way protocol exchanges, or joint localization and synchronization algorithms [10], would be necessary.]), and the AoA and the gain. For this extraction, as a stopping rule, we have considered retrieving up to 99% of the total channel energy, with a limitation to the 20 strongest MPC. SAGE was applied to a $2$GHz sub-band centered around the RRIS operating frequency, that is, between $27$ and $29$ GHz. In the following analysis, among all the MPC extracted by SAGE, both the BS-UE direct path (whenever available) and the BS-RRIS-UE reflected path were isolated[Focusing mostly on effects such as signal-to-noise ratio or geometry in our analysis, the detection of a so-called isolated MPC is herein idealized for simplicity. It is genie-aided in the sense that we are interested only in the MPC extracted in a distance-AoA region where the geometric path (i.e., the DP or a RIS RP) is expected to lie within an arbitrary tolerance margin of $\pm 1m$ in terms of travelled OTA distance and $\pm 15\degree$ in terms of AoA (See the black circles in Fig. <ref>). In turn, more advanced processing would be necessary to isolate those contributions (typically, after subtracting all the static contributions from non-RIS MPC out of channel responses), while in a real dynamic system, further processing such as filtering could be applied to leverage prior information about the UE location.] using the expected geometric information in terms of travelled distance and AoA (i.e., performing genie-aided space-time filtering), while the overall channel gain was computed out of the gains of all the resolved MPC.

scale only axis,
point meta min=-91.8536667162154,
point meta max=-68.7129190744529,
colormap=mymap[1pt] rgb(0pt)=(0.2422,0.1504,0.6603); rgb(1pt)=(0.2444,0.1534,0.6728); rgb(2pt)=(0.2464,0.1569,0.6847); rgb(3pt)=(0.2484,0.1607,0.6961); rgb(4pt)=(0.2503,0.1648,0.7071); rgb(5pt)=(0.2522,0.1689,0.7179); rgb(6pt)=(0.254,0.1732,0.7286); rgb(7pt)=(0.2558,0.1773,0.7393); rgb(8pt)=(0.2576,0.1814,0.7501); rgb(9pt)=(0.2594,0.1854,0.761); rgb(11pt)=(0.2628,0.1932,0.7828); rgb(12pt)=(0.2645,0.1972,0.7937); rgb(13pt)=(0.2661,0.2011,0.8043); rgb(14pt)=(0.2676,0.2052,0.8148); rgb(15pt)=(0.2691,0.2094,0.8249); rgb(16pt)=(0.2704,0.2138,0.8346); rgb(17pt)=(0.2717,0.2184,0.8439); rgb(18pt)=(0.2729,0.2231,0.8528); rgb(19pt)=(0.274,0.228,0.8612); rgb(20pt)=(0.2749,0.233,0.8692); rgb(21pt)=(0.2758,0.2382,0.8767); rgb(22pt)=(0.2766,0.2435,0.884); rgb(23pt)=(0.2774,0.2489,0.8908); rgb(24pt)=(0.2781,0.2543,0.8973); rgb(25pt)=(0.2788,0.2598,0.9035); rgb(26pt)=(0.2794,0.2653,0.9094); rgb(27pt)=(0.2798,0.2708,0.915); rgb(28pt)=(0.2802,0.2764,0.9204); rgb(29pt)=(0.2806,0.2819,0.9255); rgb(30pt)=(0.2809,0.2875,0.9305); rgb(31pt)=(0.2811,0.293,0.9352); rgb(32pt)=(0.2813,0.2985,0.9397); rgb(33pt)=(0.2814,0.304,0.9441); rgb(34pt)=(0.2814,0.3095,0.9483); rgb(35pt)=(0.2813,0.315,0.9524); rgb(36pt)=(0.2811,0.3204,0.9563); rgb(37pt)=(0.2809,0.3259,0.96); rgb(38pt)=(0.2807,0.3313,0.9636); rgb(39pt)=(0.2803,0.3367,0.967); rgb(40pt)=(0.2798,0.3421,0.9702); rgb(41pt)=(0.2791,0.3475,0.9733); rgb(42pt)=(0.2784,0.3529,0.9763); rgb(43pt)=(0.2776,0.3583,0.9791); rgb(44pt)=(0.2766,0.3638,0.9817); rgb(45pt)=(0.2754,0.3693,0.984); rgb(46pt)=(0.2741,0.3748,0.9862); rgb(47pt)=(0.2726,0.3804,0.9881); rgb(48pt)=(0.271,0.386,0.9898); rgb(49pt)=(0.2691,0.3916,0.9912); rgb(50pt)=(0.267,0.3973,0.9924); rgb(51pt)=(0.2647,0.403,0.9935); rgb(52pt)=(0.2621,0.4088,0.9946); rgb(53pt)=(0.2591,0.4145,0.9955); rgb(54pt)=(0.2556,0.4203,0.9965); rgb(55pt)=(0.2517,0.4261,0.9974); rgb(56pt)=(0.2473,0.4319,0.9983); rgb(57pt)=(0.2424,0.4378,0.9991); rgb(58pt)=(0.2369,0.4437,0.9996); rgb(59pt)=(0.2311,0.4497,0.9995); rgb(60pt)=(0.225,0.4559,0.9985); rgb(61pt)=(0.2189,0.462,0.9968); rgb(62pt)=(0.2128,0.4682,0.9948); rgb(63pt)=(0.2066,0.4743,0.9926); rgb(64pt)=(0.2006,0.4803,0.9906); rgb(65pt)=(0.195,0.4861,0.9887); rgb(66pt)=(0.1903,0.4919,0.9867); rgb(67pt)=(0.1869,0.4975,0.9844); rgb(68pt)=(0.1847,0.503,0.9819); rgb(69pt)=(0.1831,0.5084,0.9793); rgb(70pt)=(0.1818,0.5138,0.9766); rgb(71pt)=(0.1806,0.5191,0.9738); rgb(72pt)=(0.1795,0.5244,0.9709); rgb(73pt)=(0.1785,0.5296,0.9677); rgb(74pt)=(0.1778,0.5349,0.9641); rgb(75pt)=(0.1773,0.5401,0.9602); rgb(76pt)=(0.1768,0.5452,0.956); rgb(77pt)=(0.1764,0.5504,0.9516); rgb(78pt)=(0.1755,0.5554,0.9473); rgb(79pt)=(0.174,0.5605,0.9432); rgb(80pt)=(0.1716,0.5655,0.9393); rgb(81pt)=(0.1686,0.5705,0.9357); rgb(82pt)=(0.1649,0.5755,0.9323); rgb(83pt)=(0.161,0.5805,0.9289); rgb(84pt)=(0.1573,0.5854,0.9254); rgb(85pt)=(0.154,0.5902,0.9218); rgb(86pt)=(0.1513,0.595,0.9182); rgb(87pt)=(0.1492,0.5997,0.9147); rgb(88pt)=(0.1475,0.6043,0.9113); rgb(89pt)=(0.1461,0.6089,0.908); rgb(90pt)=(0.1446,0.6135,0.905); rgb(91pt)=(0.1429,0.618,0.9022); rgb(92pt)=(0.1408,0.6226,0.8998); rgb(93pt)=(0.1383,0.6272,0.8975); rgb(94pt)=(0.1354,0.6317,0.8953); rgb(95pt)=(0.1321,0.6363,0.8932); rgb(96pt)=(0.1288,0.6408,0.891); rgb(97pt)=(0.1253,0.6453,0.8887); rgb(98pt)=(0.1219,0.6497,0.8862); rgb(99pt)=(0.1185,0.6541,0.8834); rgb(100pt)=(0.1152,0.6584,0.8804); rgb(101pt)=(0.1119,0.6627,0.877); rgb(102pt)=(0.1085,0.6669,0.8734); rgb(103pt)=(0.1048,0.671,0.8695); rgb(104pt)=(0.1009,0.675,0.8653); rgb(105pt)=(0.0964,0.6789,0.8609); rgb(106pt)=(0.0914,0.6828,0.8562); rgb(107pt)=(0.0855,0.6865,0.8513); rgb(108pt)=(0.0789,0.6902,0.8462); rgb(109pt)=(0.0713,0.6938,0.8409); rgb(110pt)=(0.0628,0.6972,0.8355); rgb(111pt)=(0.0535,0.7006,0.8299); rgb(112pt)=(0.0433,0.7039,0.8242); rgb(113pt)=(0.0328,0.7071,0.8183); rgb(114pt)=(0.0234,0.7103,0.8124); rgb(115pt)=(0.0155,0.7133,0.8064); rgb(116pt)=(0.0091,0.7163,0.8003); rgb(117pt)=(0.0046,0.7192,0.7941); rgb(118pt)=(0.0019,0.722,0.7878); rgb(119pt)=(0.0009,0.7248,0.7815); rgb(120pt)=(0.0018,0.7275,0.7752); rgb(121pt)=(0.0046,0.7301,0.7688); rgb(122pt)=(0.0094,0.7327,0.7623); rgb(123pt)=(0.0162,0.7352,0.7558); rgb(124pt)=(0.0253,0.7376,0.7492); rgb(125pt)=(0.0369,0.74,0.7426); rgb(126pt)=(0.0504,0.7423,0.7359); rgb(127pt)=(0.0638,0.7446,0.7292); rgb(128pt)=(0.077,0.7468,0.7224); rgb(129pt)=(0.0899,0.7489,0.7156); rgb(130pt)=(0.1023,0.751,0.7088); rgb(131pt)=(0.1141,0.7531,0.7019); rgb(132pt)=(0.1252,0.7552,0.695); rgb(133pt)=(0.1354,0.7572,0.6881); rgb(134pt)=(0.1448,0.7593,0.6812); rgb(135pt)=(0.1532,0.7614,0.6741); rgb(136pt)=(0.1609,0.7635,0.6671); rgb(137pt)=(0.1678,0.7656,0.6599); rgb(138pt)=(0.1741,0.7678,0.6527); rgb(139pt)=(0.1799,0.7699,0.6454); rgb(140pt)=(0.1853,0.7721,0.6379); rgb(141pt)=(0.1905,0.7743,0.6303); rgb(142pt)=(0.1954,0.7765,0.6225); rgb(143pt)=(0.2003,0.7787,0.6146); rgb(144pt)=(0.2061,0.7808,0.6065); rgb(145pt)=(0.2118,0.7828,0.5983); rgb(146pt)=(0.2178,0.7849,0.5899); rgb(147pt)=(0.2244,0.7869,0.5813); rgb(148pt)=(0.2318,0.7887,0.5725); rgb(149pt)=(0.2401,0.7905,0.5636); rgb(150pt)=(0.2491,0.7922,0.5546); rgb(151pt)=(0.2589,0.7937,0.5454); rgb(152pt)=(0.2695,0.7951,0.536); rgb(153pt)=(0.2809,0.7964,0.5266); rgb(154pt)=(0.2929,0.7975,0.517); rgb(155pt)=(0.3052,0.7985,0.5074); rgb(156pt)=(0.3176,0.7994,0.4975); rgb(157pt)=(0.3301,0.8002,0.4876); rgb(158pt)=(0.3424,0.8009,0.4774); rgb(159pt)=(0.3548,0.8016,0.4669); rgb(160pt)=(0.3671,0.8021,0.4563); rgb(161pt)=(0.3795,0.8026,0.4454); rgb(162pt)=(0.3921,0.8029,0.4344); rgb(163pt)=(0.405,0.8031,0.4233); rgb(164pt)=(0.4184,0.803,0.4122); rgb(165pt)=(0.4322,0.8028,0.4013); rgb(166pt)=(0.4463,0.8024,0.3904); rgb(167pt)=(0.4608,0.8018,0.3797); rgb(168pt)=(0.4753,0.8011,0.3691); rgb(169pt)=(0.4899,0.8002,0.3586); rgb(170pt)=(0.5044,0.7993,0.348); rgb(171pt)=(0.5187,0.7982,0.3374); rgb(172pt)=(0.5329,0.797,0.3267); rgb(173pt)=(0.547,0.7957,0.3159); rgb(175pt)=(0.5748,0.7929,0.2941); rgb(176pt)=(0.5886,0.7913,0.2833); rgb(177pt)=(0.6024,0.7896,0.2726); rgb(178pt)=(0.6161,0.7878,0.2622); rgb(179pt)=(0.6297,0.7859,0.2521); rgb(180pt)=(0.6433,0.7839,0.2423); rgb(181pt)=(0.6567,0.7818,0.2329); rgb(182pt)=(0.6701,0.7796,0.2239); rgb(183pt)=(0.6833,0.7773,0.2155); rgb(184pt)=(0.6963,0.775,0.2075); rgb(185pt)=(0.7091,0.7727,0.1998); rgb(186pt)=(0.7218,0.7703,0.1924); rgb(187pt)=(0.7344,0.7679,0.1852); rgb(188pt)=(0.7468,0.7654,0.1782); rgb(189pt)=(0.759,0.7629,0.1717); rgb(190pt)=(0.771,0.7604,0.1658); rgb(191pt)=(0.7829,0.7579,0.1608); rgb(192pt)=(0.7945,0.7554,0.157); rgb(193pt)=(0.806,0.7529,0.1546); rgb(194pt)=(0.8172,0.7505,0.1535); rgb(195pt)=(0.8281,0.7481,0.1536); rgb(196pt)=(0.8389,0.7457,0.1546); rgb(197pt)=(0.8495,0.7435,0.1564); rgb(198pt)=(0.86,0.7413,0.1587); rgb(199pt)=(0.8703,0.7392,0.1615); rgb(200pt)=(0.8804,0.7372,0.165); rgb(201pt)=(0.8903,0.7353,0.1695); rgb(202pt)=(0.9,0.7336,0.1749); rgb(203pt)=(0.9093,0.7321,0.1815); rgb(204pt)=(0.9184,0.7308,0.189); rgb(205pt)=(0.9272,0.7298,0.1973); rgb(206pt)=(0.9357,0.729,0.2061); rgb(207pt)=(0.944,0.7285,0.2151); rgb(208pt)=(0.9523,0.7284,0.2237); rgb(209pt)=(0.9606,0.7285,0.2312); rgb(210pt)=(0.9689,0.7292,0.2373); rgb(211pt)=(0.977,0.7304,0.2418); rgb(212pt)=(0.9842,0.733,0.2446); rgb(213pt)=(0.99,0.7365,0.2429); rgb(214pt)=(0.9946,0.7407,0.2394); rgb(215pt)=(0.9966,0.7458,0.2351); rgb(216pt)=(0.9971,0.7513,0.2309); rgb(217pt)=(0.9972,0.7569,0.2267); rgb(218pt)=(0.9971,0.7626,0.2224); rgb(219pt)=(0.9969,0.7683,0.2181); rgb(220pt)=(0.9966,0.774,0.2138); rgb(221pt)=(0.9962,0.7798,0.2095); rgb(222pt)=(0.9957,0.7856,0.2053); rgb(223pt)=(0.9949,0.7915,0.2012); rgb(224pt)=(0.9938,0.7974,0.1974); rgb(225pt)=(0.9923,0.8034,0.1939); rgb(226pt)=(0.9906,0.8095,0.1906); rgb(227pt)=(0.9885,0.8156,0.1875); rgb(228pt)=(0.9861,0.8218,0.1846); rgb(229pt)=(0.9835,0.828,0.1817); rgb(230pt)=(0.9807,0.8342,0.1787); rgb(231pt)=(0.9778,0.8404,0.1757); rgb(232pt)=(0.9748,0.8467,0.1726); rgb(233pt)=(0.972,0.8529,0.1695); rgb(234pt)=(0.9694,0.8591,0.1665); rgb(235pt)=(0.9671,0.8654,0.1636); rgb(236pt)=(0.9651,0.8716,0.1608); rgb(237pt)=(0.9634,0.8778,0.1582); rgb(238pt)=(0.9619,0.884,0.1557); rgb(239pt)=(0.9608,0.8902,0.1532); rgb(240pt)=(0.9601,0.8963,0.1507); rgb(241pt)=(0.9596,0.9023,0.148); rgb(242pt)=(0.9595,0.9084,0.145); rgb(243pt)=(0.9597,0.9143,0.1418); rgb(244pt)=(0.9601,0.9203,0.1382); rgb(245pt)=(0.9608,0.9262,0.1344); rgb(246pt)=(0.9618,0.932,0.1304); rgb(247pt)=(0.9629,0.9379,0.1261); rgb(248pt)=(0.9642,0.9437,0.1216); rgb(249pt)=(0.9657,0.9494,0.1168); rgb(250pt)=(0.9674,0.9552,0.1116); rgb(251pt)=(0.9692,0.9609,0.1061); rgb(252pt)=(0.9711,0.9667,0.1001); rgb(253pt)=(0.973,0.9724,0.0938); rgb(254pt)=(0.9749,0.9782,0.0872); rgb(255pt)=(0.9769,0.9839,0.0805),
xlabel style=font=,
xlabel=OTA Traveled Distance [m],
ylabel style=font=,
ylabel=$\text{Azimuth AoA @UE [}^\circ\text{]}$,
axis background/.style=fill=white,
title style=font=,
title=$\text{MPC Gain / }\phi{}_{\text{BS}}\text{=-35}^\circ\text{ / }\phi{}_{\text{RIS1}}\text{=25}^\circ$,
axis x line*=bottom,
axis y line*=left,
[scatter, only marks, mark=*, mark size=1.5000pt, scatter src=explicit, scatter/use mapped color=mark options=, draw=mapped color, fill=mapped color, forget plot] table[row sep=crcr, meta=color]
x	y	color

2.25	29	-68.7129190744529

3.3	30	-71.6025239898547

7.35	113	-72.7228382858527

4.65	13	-74.9695856351138

2.7	28	-75.5007084546974

1.95	30	-82.8529158346328

3.6	159	-83.440897362468

7.8	116	-84.0079428815687

5.1	16	-85.30369934377

4.05	163	-86.2081075695838

5.55	-54	-86.8620489922428

25.65	148	-89.5600197191882

27.6	5	-90.4926756662218

14.25	117	-90.7771705786862

5.85	23	-91.3767098199361

1.5	28	-91.7176656186916

6.9	109	-91.8536667162154

[color=black, only marks, mark=asterisk, mark options=solid, black, forget plot]
table[row sep=crcr]
7	115

[right, align=left]
at (axis cs:6.5,145) Reflected Path;
[color=black, forget plot]
table[row sep=crcr]
8	115

7.99500416527803	116.497501249702

7.98006657784123	117.980039961926

7.95533648912561	119.43280309992

7.92106099400289	120.84127513463

7.87758256189036	122.191383079063

7.82533561490968	123.469637100926

7.7648421872845	124.663265308565

7.69670670934715	125.760341363493

7.62160996827066	126.749903644412

7.54030230586815	127.622064772118

7.45359612142559	128.368110400922

7.36235775447668	128.980586289508

7.26749882862458	129.453372781258

7.16996714290025	129.781745949827

7.0707372016677	129.962424799061

6.9708004776987	129.993604045623

6.87115550570448	129.874972156787

6.7727979053069	129.607714463173

6.67671043313649	129.194501315311

6.58385316345286	128.639461402385

6.49515389540014	127.948140499733

6.41149888274467	127.127446057294

6.33372397872017	126.185578182651

6.26260628445874	125.131947708267

6.19885638445308	123.977082161559

6.14311124663107	122.732520577322

6.09592785798293	121.410698203507

6.05777765933135	120.024822252339

6.0290418348504	118.58873993821

6.01000750339955	117.116800120898

6.00086484972672	115.623709936499

6.00170522420524	114.124387848586

6.01252023009113	112.633814587851

6.03320180742054	111.166883469598

6.06354331270921	109.738251584656

6.10324158366586	108.362193350577

6.1518999682896	107.052457886373

6.20903228808558	105.822131635859

6.27406769579986	104.68350761224

6.34635637913638	103.647962570381

6.42517605346674	102.725843334034

6.50973917865929	101.926363413796

6.59920082792001	101.257510948758

6.69266713002159	100.725968891657

6.78920420056923	100.337048235024

6.88784747306494	100.094634945498

6.9876113365371	100.001151136538

7.08749898343945	100.057530867462

7.18651236942259	100.263210810635

7.28366218546321	100.616135880053

7.37797774271297	101.112779765084

7.46851667130036	101.748180164198

7.55437433617917	102.515988366641

7.63469287594265	103.40853268666

7.70866977429125	104.416895116444

7.77556587851026	105.531000431915

7.83471278483916	106.739716861035

7.88551951694132	108.030967308794

7.92747843074403	109.391850027546

7.96017028665037	110.808767527016

7.98326843844259	112.267562435919

7.99654209702322	113.753658957738

[color=black, only marks, mark=asterisk, mark options=solid, black, forget plot]
table[row sep=crcr]
1.89	32.01

[right, align=left]
at (axis cs:1.5,65) Direct Path;
[color=black, forget plot]
table[row sep=crcr]
2.89	32.01

2.88500416527803	33.5075012497024

2.87006657784124	34.9900399619259

2.84533648912561	36.4428030999201

2.81106099400289	37.8512751346298

2.76758256189037	39.201383079063

2.71533561490968	40.4796371009255

2.65484218728449	41.6732653085654

2.58670670934717	42.7703413634928

2.51160996827066	43.7599036444122

2.43030230586814	44.6320647721184

2.34359612142558	45.3781104009215

2.25235775447668	45.9905862895084

2.15749882862459	46.4633727812579

2.05996714290024	46.7917459498269

1.9607372016677	46.9724247990608

1.86080047769871	47.0036040456226

1.76115550570447	46.884972156787

1.66279790530691	46.6177144631729

1.5667104331365	46.2045013153112

1.47385316345286	45.6494614023852

1.38515389540014	44.9581404997331

1.30149888274465	44.1374460572939

1.22372397872017	43.1955781826508

1.15260628445876	42.1419477082673

1.08885638445307	40.9870821615593

1.03311124663105	39.742520577322

0.985927857982936	38.4206982035074

0.947777659331344	37.0348222523386

0.919041834850411	35.5987399382097

0.900007503399557	34.126800120898

0.890864849726718	32.6337099364994

0.891705224205246	31.1343878485863

0.902520230091135	29.6438145878513

0.92320180742054	28.1768834695975

0.953543312709201	26.7482515846557

0.993241583665856	25.3721933505772

1.04189996828959	24.0624578863726

1.09903228808558	22.8321316358592

1.16406769579986	21.6935076122404

1.23635637913639	20.6579625703811

1.31517605346673	19.7358433340338

1.3997391786593	18.9363634137962

1.48920082792002	18.2675109487582

1.58266713002158	17.7359688916573

1.67920420056922	17.3470482350235

1.77784747306494	17.104634945498

1.87761133653711	17.0111511365385

1.97749898343945	17.0675308674624

2.07651236942257	17.273210810635

2.17366218546323	17.6261358800529

2.26797774271298	18.122779765084

2.35851667130038	18.7581801641977

2.44437433617916	19.5259883666415

2.52469287594263	20.4185326866602

2.59866977429126	21.4268951164441

2.66556587851025	22.5410004319152

2.72471278483916	23.7497168610354

2.77551951694132	25.0409673087936

2.81747843074404	26.4018500275465

2.85017028665037	27.8187675270161

2.87326843844259	29.2775624359186

2.88654209702322	30.7636589577376

scale only axis,
point meta min=0,
point meta max=1,
xlabel style=font=,
xlabel=OTA Traveled Distance [m],
ylabel style=font=,
ylabel=$\text{Azimuth AoA @UE [}^\circ\text{]}$,
axis background/.style=fill=white,
title style=font=,
title=$\text{MPC Clusters / }\phi{}_{\text{RIS1}}\text{=25}^\circ$,
legend style=at=(1.03,0.5), anchor=west, legend cell align=left, align=left, draw=white!15!black,
yshift = -0.5cm,
[color=red, only marks, mark size=2.5pt, mark=*, mark options=solid, red]
table[row sep=crcr]
4.65	13

5.1	16

[color=mycolor1, only marks, mark size=2.5pt, mark=*, mark options=solid, mycolor1]
table[row sep=crcr]
25.65	148

[color=mycolor2, only marks, mark size=2.5pt, mark=*, mark options=solid, mycolor2]
table[row sep=crcr]
27.6	5

[color=mycolor3, only marks, mark size=2.5pt, mark=*, mark options=solid, mycolor3]
table[row sep=crcr]
0	0

0	0

[color=mycolor4, only marks, mark size=2.5pt, mark=*, mark options=solid, mycolor4]
table[row sep=crcr]
7.34999999999999	113

7.8	116

14.25	117

6.90000000000001	109

[color=blue!75!mycolor4, only marks, mark size=2.5pt, mark=*, mark options=solid, blue!75!mycolor4]
table[row sep=crcr]
5.55	-54

[color=mycolor5, only marks, mark size=2.5pt, mark=*, mark options=solid, mycolor5]
table[row sep=crcr]
2.25	29

3.3	30

2.7	28

1.95	30

5.85	23

1.5	28

[color=mycolor6, only marks, mark size=2.5pt, mark=*, mark options=solid, mycolor6]
table[row sep=crcr]
3.59999999999999	159

4.05000000000001	163

scale only axis,
point meta min=0,
point meta max=1,
axis line style=draw=none,
axis x line*=bottom,
axis y line*=left

Example of scatter plot of extracted MPC gains (in dB) as a function of both their AoA (in $\degree$) and traveled OTA distances (in m) (top), along with the corresponding MPC clusters (bottom), for the BS beam pointing to the first RRIS location (i.e., $\phi_{BS}=-35 \degree $) and the same RRIS pointing to the first UE location (i.e., $\phi_{RIS1}=25 \degree $).

§ RADIO FEATURES AND POSITIONING

§.§ Location-dependent Radio Features

Picking up the maximum values taken by the overall channel gain over all possible beam pointing directions (i.e., in azimuth, discretized by steps of $5\degree$), we first come up with coarse AoD estimates, $\widetilde{\phi}_{BS}$ and $\widetilde{\phi}_{RIS}$, respectively after BS and RRIS beam sweepings. Likewise, based on MPC extraction, we also consider fine AoD estimates, based on the three maximum values taken by the gains of isolated MPC (i.e., the DP or a RIS RP) over all possible pointing directions, after performing BS and RRIS beam sweeping. Fig. <ref> and <ref> show examples of such AoD estimation with respect to the first UE location (i.e., UE1), respectively for DP after BS beam scanning and for RP after beam RRIS scanning (for two distinct RRIS locations). In this illustration, $\widetilde{\phi}_{BS} = 30.0\degree$ for a ground-truth angle of $32.0\degree$ (See Fig. <ref>), while $\widetilde{\phi}_{RIS1} = 25\degree/0\degree/30\degree$ for a ground-truth angle of $24.6\degree$ (See Fig. <ref> - left) and $\widetilde{\phi}_{RIS2} = 0\degree/35\degree/10\degree$ for a ground-truth angle of $31.9\degree$ (See Fig. <ref> - right).

Besides, calibrated delays (or equivalently, OTA traveled distances) associated with the same isolated MPC have also been considered to complete angular estimates in some positioning scenarios (See Sec. <ref>).

Finally, estimated AoA are herein used for spatially filtering out the MPC of interest, although they could be used also for UE orientation estimation, which falls out of the scope of this paper.

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{BS}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel=Gain [dB],
axis background/.style=fill=white,
title style=font=,
title=RIS OFF / Overall Channel,
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,
[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-64.9117099285811

-55	-66.1561578074424

-50	-64.5052341203864

-45	-64.7063764576707

-40	-67.7830653285155

-35	-65.3848997396845

-30	-67.421548288116

-25	-65.6038997703818

-20	-67.1813423790886

-15	-67.8588519820689

-10	-67.1026013173452

-5	-65.0214110790303

0	-65.1499997704991

5	-61.5982104070789

10	-66.1686461635838

15	-67.6656281217742

20	-63.3947222134523

25	-55.2461914687788

30	-51.5703840285143

35	-57.260429539393

40	-65.9086654002125

45	-65.3882551468269

50	-65.4653659340538

55	-63.9388135078118

60	-64.4258489230172

scale only axis,
axis line style=draw=none,
axis x line*=bottom,
axis y line*=left

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{BS}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel=Gain [dB],
axis background/.style=fill=white,
title style=font=,
title=RIS OFF / Direct Path (SAGE),
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,
[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-66.6435773666539

-55	-72.8544632986689

-50	-66.8331572771577

-45	-66.9725815045831

-40	-75.4519420853523

-35	-68.5473492998604

-30	-73.564876913759

-25	-68.5249847245232

-20	-72.6447183183387

-15	-71.5839403827195

-10	-69.9340426406617

-5	-67.1982725697994

0	-70.3599428282743

5	-62.7866707824396

10	-68.8955053442353

15	-71.5809028167459

20	-64.3902559343072

25	-55.4640782109165

30	-51.7433704194662

35	-57.8135952974943

40	-67.5976502754891

45	-67.0789351546758

50	-67.6235061683714

55	-65.5207986124153

60	-66.2674792101105

scale only axis,
axis line style=draw=none,
axis x line*=bottom,
axis y line*=left

Overall channel (top) and DP (bottom) gains in the first tested location (UE1) after BS beam scanning, as a function of $\phi_{BS}$, with the RRIS off.

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{BS}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel=Gain [dB],
axis background/.style=fill=white,
title style=font=,
title=RIS OFF / Overall Channel,
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,
[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-64.9117099285811

-55	-66.1561578074424

-50	-64.5052341203864

-45	-64.7063764576707

-40	-67.7830653285155

-35	-65.3848997396845

-30	-67.421548288116

-25	-65.6038997703818

-20	-67.1813423790886

-15	-67.8588519820689

-10	-67.1026013173452

-5	-65.0214110790303

0	-65.1499997704991

5	-61.5982104070789

10	-66.1686461635838

15	-67.6656281217742

20	-63.3947222134523

25	-55.2461914687788

30	-51.5703840285143

35	-57.260429539393

40	-65.9086654002125

45	-65.3882551468269

50	-65.4653659340538

55	-63.9388135078118

60	-64.4258489230172

scale only axis,
axis line style=draw=none,
axis x line*=bottom,
axis y line*=left

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{BS}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel=Gain [dB],
axis background/.style=fill=white,
title style=font=,
title=RIS OFF / Direct Path (SAGE),
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,
[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-66.6435773666539

-55	-72.8544632986689

-50	-66.8331572771577

-45	-66.9725815045831

-40	-75.4519420853523

-35	-68.5473492998604

-30	-73.564876913759

-25	-68.5249847245232

-20	-72.6447183183387

-15	-71.5839403827195

-10	-69.9340426406617

-5	-67.1982725697994

0	-70.3599428282743

5	-62.7866707824396

10	-68.8955053442353

15	-71.5809028167459

20	-64.3902559343072

25	-55.4640782109165

30	-51.7433704194662

35	-57.8135952974943

40	-67.5976502754891

45	-67.0789351546758

50	-67.6235061683714

55	-65.5207986124153

60	-66.2674792101105

scale only axis,
axis line style=draw=none,
axis x line*=bottom,
axis y line*=left

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{RIS1}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel=Gain [dB],
axis background/.style=fill=white,
title style=font=, align=center,
title=RIS1 ON / Overall Channel
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,

[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-65.3370175804534

-55	-65.3377525049305

-50	-65.3397006627373

-45	-65.3525381477191

-40	-65.3175689754551

-35	-65.3172309507052

-30	-65.3328439727983

-25	-65.2859611184517

-20	-65.3610734393938

-15	-65.3563918675114

-10	-65.3218005403915

-5	-65.3374098539122

0	-64.9005885817389

5	-65.1164095418643

10	-65.2979397592376

15	-65.3658772266748

20	-65.2658838285465

25	-64.6462598798014

30	-64.942911656344

35	-65.4332553871642

40	-65.4460909492072

45	-65.431824247627

50	-65.4625726593309

55	-65.4583424933898

60	-65.3614024279995

[color=black, line width = 1.5, dashed, forget plot]
table[row sep=crcr]
25	-65.4625726593309

25	-64.6462598798014

[color=black, line width = 1.5,dashed, forget plot]
table[row sep=crcr]
0	-65.4625726593309

0	-64.6462598798014

[color=black,line width = 1.5, dashed, forget plot]
table[row sep=crcr]
30	-65.4625726593309

30	-64.6462598798014

[color=red, line width = 1.5,forget plot]
table[row sep=crcr]
24.58	-65.4625726593309

24.58	-64.6462598798014

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{RIS1}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel=Gain [dB],
axis background/.style=fill=white,
title style=font=, align=center,
title=RIS1 ON / Reflected Path (SAGE)
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,
[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-92.2332943960524

-55	-93.1912578419029

-50	-92.7834601240397

-45	-100

-40	-86.4490394028049

-35	-86.707462772233

-30	-87.4784111396436

-25	-86.1957096365413

-20	-90.2159276390359

-15	-88.4295715112804

-10	-83.1276059271697

-5	-84.5741473144506

0	-74.6045867268289

5	-76.9252864487692

10	-83.4652113094625

15	-86.3031944765613

20	-80.1812247417728

25	-72.7228382858527

30	-74.8772380624712

35	-90.9416856556111

40	-87.9907638871376

45	-86.1206559504228

50	-100

55	-90.381772706257

60	-83.0827719387846

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
25	-100

25	-72.7228382858527

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
0	-100

0	-72.7228382858527

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
30	-100

30	-72.7228382858527

[color=red,line width = 1.5, forget plot]
table[row sep=crcr]
24.58	-100

24.58	-72.7228382858527

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{RIS2}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel= ,
axis background/.style=fill=white,
title style=font=, align=center,
title=RIS2 ON / Overall Channel
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,
[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-64.8378904058264

-55	-64.8333469543456

-50	-64.8458383811277

-45	-64.8366315261294

-40	-64.8499586348485

-35	-64.849127467793

-30	-64.8577633623727

-25	-64.842294862555

-20	-64.846599986623

-15	-64.8622829504081

-10	-64.8682500075994

-5	-64.841334762232

0	-64.8189831234273

5	-64.7987151292785

10	-64.7686704577055

15	-64.8356781542648

20	-64.8055890933424

25	-64.8215238140438

30	-64.7753900295617

35	-64.6697171900174

40	-64.7725550289029

45	-64.773335532794

50	-64.78419458754

55	-64.7603480677766

60	-64.7778081547761

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
35	-64.8682500075994

35	-64.6697171900174

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
55	-64.8682500075994

55	-64.6697171900174

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
10	-64.8682500075994

10	-64.6697171900174

[color=red, line width = 1.5, forget plot]
table[row sep=crcr]
31.91	-64.8682500075994

31.91	-64.6697171900174

scale only axis,
xlabel style=font=,
xlabel=$\phi{}_{\text{RIS2}}\text{ [}^\circ\text{]}$,
ylabel style=font=,
ylabel= ,
axis background/.style=fill=white,
title style=font=, align=center,
title=RIS2 ON / Reflected Path (SAGE)
minor tick num=2,
grid = both,
major grid style=line width=.6pt,draw=black!50,
minor grid style=draw=black!50, dotted,
[color=blue, line width=1.5pt, forget plot]
table[row sep=crcr]
-60	-92.2332943960524

-55	-93.1912578419029

-50	-92.7834601240397

-45	-100

-40	-86.4490394028049

-35	-86.707462772233

-30	-87.4784111396436

-25	-87.6651264699597

-20	-90.2159276390359

-15	-87.4070143330948

-10	-83.1276059271697

-5	-91.3729907728074

0	-74.6045867268289

5	-82.9259818595377

10	-80.7974779689225

15	-90.6347088007448

20	-89.5586042141593

25	-89.5024374028905

30	-85.2992143051654

35	-79.825456320279

40	-85.1134921641002

45	-89.8265729906998

50	-100

55	-90.381772706257

60	-92.217389025415

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
0	-100

0	-74.6045867268289

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
35	-100

35	-74.6045867268289

[color=black, dashed, line width = 1.5, forget plot]
table[row sep=crcr]
10	-100

10	-74.6045867268289

[color=red, line width = 1.5, forget plot]
table[row sep=crcr]
31.91	-100

31.91	-74.6045867268289

scale only axis,
axis line style=draw=none,
axis x line*=bottom,
axis y line*=left

Overall channel (top) and RP (bottom) gains in first position (UE) after RRIS beam scanning, as a function of $\phi_{RIS1}$ with $\phi_{BS}=-35\degree$ (left) or $\phi_{RIS2}$ with $\phi_{BS}=0\degree$ (right), with its Ground-Truth angle (solid red) and the corresponding 3 strongest candidate estimates (dashed black)

§.§ Positioning Scenarios and Method

In all the tested positioning configurations, we assume that both the positions and the orientations of BS and/or RRIS are perfectly known. Table <ref> summarizes the corresponding scenarios, depending on the combination of location-dependent radio features extracted from channel responses, as well as the expected benefits from using RIS on top a conventional single-BS system (i.e., either enabling or boosting localization).

In a real system, from a protocol standpoint, the scenarios making use of several MPC (i.e., all except 0, 2d and 2e) would necessitate a sequential illumination sequence from the BS (e.g., BS beam scanning first whenever DP is used and/or RIS beam scanning under static BS beam), coming up with one set of estimated location-dependent radio parameters for each BS pointing direction, which need to be recombined offline for positioning. In all these multipath scenarios, for the purpose of fair comparisons and putting more emphasis on the impact of radio parameters estimation, positioning is systematically determined through standard non-linear LS optimization, initialized with the same random guess (drawn in the entire tested indoor area) and fed by the best candidate AoD angles. In a real system, the latter optimistic assumption could be relaxed by leveraging prior knowledge of the RIS beam patterns (as a function of the impinging angle) and/or the output of a tracking filter in case of dynamic scenario (i.e., both previous UE estimates and its related uncertainty).

Other positioning approaches could have been considered too, such as that relying on weighted combinations of the received powers (or power gains in our case) over a grid of possible UE candidate locations (e.g., [4]), hence guaranteeing more homogeneous 2D spatial resolution regardless to the RIS-UE distance. However, the latter method would have required the prior discretization of the 2D Cartesian space during measurements collection and the pre-calculation of BS and RRIS beams accordingly, rather than the simpler azimuth domain discretization imposed here.

Positioning scenarios as a a function of combined radio metrics.

Scenario     MPCs [Nb R-RISs]     LoS/NLoS Status     Radio Metrics [Method]     Expected RIS Benefits
0     DP only [0 R-RIS]     LoS     $\widetilde{\phi}_{BS}$, $\widetilde{d}_{DP}$ [SAGE MPCs]     N/A (Baseline)
1a     DP + RP1 [1 R-RIS]     LoS     $\widetilde{\phi}_{BS}$, $\widetilde{\phi}_{RIS1}$ [Overall Channel Gain]     Enabled localization*
1b     DP + RP2 [1 R-RIS]     LoS     $\widetilde{\phi}_{BS}$, $\widetilde{\phi}_{RIS2}$ [Overall Channel Gain]     Enabled localization*
1c     DP + RP1 + RP2 [2 R-RISs]     LoS     $\widetilde{\phi}_{BS}$, $\widetilde{\phi}_{RIS1}$, $\widetilde{\phi}_{RIS2}$ [Overall Channel Gain]     Enabled localization*
1d     RP1 + RP2 [2 R-RISs]     NLoS     $\widetilde{\phi}_{RIS1}$, $\widetilde{\phi}_{RIS2}$ [Overall Channel Gain]     Enabled localization*
2a     DP + RP1 [1 R-RIS]     LoS     $\widetilde{\phi}_{BS}$, $\widetilde{d}_{DP}$, $\widetilde{\phi}_{RIS1}$, $\widetilde{d}_{RP1}$ [SAGE MPCs]     Boosted localization**
2b     DP + RP2 [1 R-RIS]     LoS     $\widetilde{\phi}_{BS}$, $\widetilde{d}_{DP}$, $\widetilde{\phi}_{RIS2}$, $\widetilde{d}_{RP2}$ [SAGE MPCs]     Boosted localization**
2c     DP + RP1 + RP2 [2 R-RISs]     LoS     $\widetilde{\phi}_{BS}$, $\widetilde{d}_{DP}$, $\widetilde{\phi}_{RIS1}$, $\widetilde{d}_{RP1}$,$\widetilde{\phi}_{RIS2}$, $\widetilde{d}_{RP2}$ [SAGE MPCs]     Boosted localization**
2d     RP1 [1 R-RIS]     NLoS     $\widetilde{\phi}_{RIS1}$, $\widetilde{d}_{RP1}$ [SAGE MPCs]     Enabled localization***
2e     RP2 [1 R-RIS]     NLoS     $\widetilde{\phi}_{RIS2}$, $\widetilde{d}_{RP2}$ [SAGE MPCs]     Enabled localization***
2f     RP1 + RP2 [2 R-RISs]     NLoS     $\widetilde{\phi}_{RIS1}$, $\widetilde{d}_{RP1}$, $\widetilde{\phi}_{RIS2}$, $\widetilde{d}_{RP2}$ [SAGE MPCs]     Enabled localization***

* Vs. conventional single-BS positioning using also RSS measurements (i.e., missing additional links wrt. other BSs).

** Vs. conventional single-BS positioning with similar MPCs estimation capabilities, but relying on DP only (See Scenario 0).

*** Vs. conventional single-BS positioning with similar MPCs estimation capabilities, but relying on DP only (i.e., missing additional LoS links wrt. additional BSs), or with no extra SLAM capabilities (i.e., unable to position scatterers out of the extracted MPCs, jointly with UE).

§ RESULTS

§.§ Radio Parameters Estimation

Fig. <ref> and <ref>
estimation errors respectively for RIS AoD and the overall OTA distances travelled by RIS-reflected paths (i.e., from BS to UE, through the RRIS), both
as a function of the true RIS-UE distance (i.e., over the 5 UE locations and the 2 RIS locations).
For AoD first, we show the errors corresponding to the 3 maximum values taken by overall channel gains (top) or SAGE MPC gains (bottom) over all possible azimuth angles, along with the best choice (among these 3 candidates).

As expected, one can observe
that the AoD error globally increases
with the RIS-UE distance, staying typically below $5\degree$ (i.e., within the azimuth discretization step) at distances up to 5m but growing to several tens of degrees for distances beyond 5m, even in the best case. Whatever the RIS location, the same trends are globally observed with the two estimation methods, which anyway lead roughly to the same estimates in a majority of tested cases. Nevertheless, the use of MPC gains seems to outperform that of overall channel gains at larger RIS-UE distances (typically with errors up to $14.7\degree$ and $70.3\degree$, respectively, at $7.5$m from the first RIS). This is likely due to the fact that, at larger RIS-UE distances, the dynamics of the overall channel gain as a function of RIS AoD is relatively limited and hence, more challenging to interpret. Both approaches suffer similarly from the presence of strong grating lobes in the RIS beam patterns, which tends to generate local maxima (at wrong AoD angles, possibly very distant from the ground-truth) in both channel and reflected path gains, even at short distances (See Fig. <ref>).
It shall be also noted that the angular step of 5° applied for beam scanning is quite large compared to the RRIS -3dB beamwidth (i.e.,  below 3° for the considered prototype [14]). This effect contributes to the fact that some grating lobes could contribute even more than the apparent main lobe. Accordingly, the angle leading to the strongest power gains does not even always coincide with the best candidate.

Regarding the distance estimation of RIS-reflected paths, on Fig. <ref>, the
negative influence of the RIS-UE distance looks less obvious than for AoD estimation. The latter is thus expected to be the dominating factor with respect to positioning performance in our evaluations.

scale only axis,
xlabel style=font= ,
xlabel=RIS-UE Distance [m],
ylabel style=font= ,
ylabel=$\text{AoD Estimation Error [}^\circ\text{]}$,
axis background/.style=fill=white,
title style=font= , align=center,
title=RIS ON / AoD based on overall channel gain,
yshift = -1.65in,
legend style=font=, at=(0.05,0.55),  anchor=south west, legend cell align=left, align=left, draw=white!15!black,
grid = both,
minor grid style=line width=.005pt,draw=black!50, dashed,
[color=black, only marks, mark size=3.5pt, mark=triangle, mark options=solid, red]
table[row sep=crcr]
4.41474801092883	3.09

2.50798724079689	6.5

1.04120122935002	8.83

3.01398407427777	4.48

5.00840293906151	18.32

3.36505572019246	0.420000000000002

3.11826875044471	51.09

4.02190253487078	4.54000000000001

5.69347872570013	2.29000000000001

7.52699807360146	75.29

AoD of Strongest Gain

[color=black, only marks, mark size=3.5pt, mark=square, mark options=solid, blue]
table[row sep=crcr]
3.36505572019246	5.42

3.11826875044471	46.09

4.02190253487078	10.46

5.69347872570013	82.29

7.52699807360146	80.29

4.41474801092883	21.91

2.50798724079689	1.5

1.04120122935002	13.83

3.01398407427777	20.52

5.00840293906151	13.32

AoD of 2nd Strongest Gain

[color=black, only marks, mark size=3.5pt, mark=o, mark options=solid, green]
table[row sep=crcr]
3.36505572019246	24.58

3.11826875044471	1.09

4.02190253487078	0.460000000000008

5.69347872570013	12.29

7.52699807360146	70.29

4.41474801092883	23.09

2.50798724079689	3.5

1.04120122935002	3.83

3.01398407427777	15.52

5.00840293906151	8.32

AoD of 3rd Strongest Gain

[color=black, only marks, mark=asterisk, mark options=solid, black]
table[row sep=crcr]
4.41474801092882	3.09

2.50798724079689	1.5

1.04120122935002	3.83

3.01398407427777	4.48

5.00840293906151	8.32

3.36505572019246	0.420000000000002

3.11826875044471	1.09

4.02190253487078	0.460000000000008

5.69347872570013	2.29000000000001

7.52699807360146	70.29

Best of the 3

scale only axis,
xlabel style=font= ,
xlabel=RIS-UE Distance [m],
ylabel style=font= ,
ylabel=$\text{AoD Estimation Error [}^\circ\text{]}$,
axis background/.style=fill=white,
title style=font= , align=center,
title=RIS ON / AoD based on SAGE MPC gain
in expected RP zone,
legend style=font=, at=(0.331,0.45),  anchor=south west, legend cell align=left, align=left, draw=white!15!black,
grid = both,
minor grid style=line width=.005pt,draw=black!50, dashed,
[color=black, only marks, mark size=3.5pt, mark=triangle, mark options=solid, red]
table[row sep=crcr]
3.36505572019246	0.420000000000002

3.11826875044471	51.09

4.02190253487078	0.460000000000008

5.69347872570013	67.29

7.52699807360146	14.71

4.41474801092883	31.91

2.50798724079689	6.5

1.04120122935002	8.83

3.01398407427777	4.48

5.00840293906151	18.32

[color=black, only marks, mark size=3.5pt, mark=o, mark options=solid, green]
table[row sep=crcr]
3.36505572019246	24.58

3.11826875044471	1.09

4.02190253487078	4.54

5.69347872570013	2.29

7.52699807360145	39.71

4.41474801092882	3.09

2.50798724079689	3.5

1.04120122935002	3.83

3.01398407427777	15.52

5.00840293906151	8.32

[color=black, only marks, mark size=3.5pt, mark=square, mark options=solid, blue]
table[row sep=crcr]
3.36505572019246	5.42

3.11826875044471	11.09

4.02190253487078	10.46

5.69347872570013	12.29

7.52699807360146	75.29

4.41474801092883	21.91

2.50798724079689	1.5

1.04120122935002	13.83

3.01398407427777	20.52

5.00840293906151	13.32

[color=black, only marks, mark=asterisk, mark options=solid, black]
table[row sep=crcr]
3.36505572019246	0.420000000000002

3.11826875044471	1.09

4.02190253487078	0.460000000000001

5.69347872570013	2.29

7.52699807360145	14.71

4.41474801092882	3.09

2.50798724079689	1.5

1.04120122935002	3.83

3.01398407427777	4.48

5.00840293906151	8.32

RIS AoD estimation errors, as a function of the true RIS-UE distance, relying on 3 maximum values taken by overall channel gain (top) or SAGE MPC gain (bottom), over all RRIS and UE locations.

scale only axis,
xlabel style=font=,
xlabel=RIS-UE Traveled Distance [m],
ylabel style=font=,

ylabel=Distance Estimation Error [m],
axis background/.style=fill=white,
title style=font= ,
title=RIS ON / Distance based on SAGE MPC in Expected RP Zone,
legend style=legend cell align=left, align=left, draw=white!15!black,
grid = both,
minor grid style=line width=.005pt,draw=black!50, dashed,
[color=black, only marks, mark=triangle, mark size = 4.5pt, mark options=solid, black]
table[row sep=crcr]
3.36505572019246	0.0500000000000007

3.11826875044471	0.140000000000001

4.02190253487078	0.14

5.69347872570013	0.119999999999999

7.52699807360145	0.0800000000000001

[color=black, mark size = 4.5pt, only marks, mark=asterisk, mark options=solid, black]
table[row sep=crcr]
4.41474801092882	0.19

2.50798724079689	0.290000000000001

1.04120122935002	0.11

3.01398407427777	0.24

5.00840293906151	0.19

Multipath distance estimation errors, as a function of the true RIS-UE distance for reflected paths RP1 and RP2, over all RRIS and UE locations.

§.§ 2D Position Estimation

Fig. <ref> illustrates, qualitatively, the positioning results for 4 of the 5 tested UE locations and the 11 scenarios of Table <ref>, while Table <ref> reports, quantitatively, the corresponding errors per UE location, along with the sample median error and RMSE (both calculated over the 5 UE tested locations). In this table, the symbol ↓ indicates that the error is significantly higher than the best result, typically according to Wilcoxon's rank sum test used at the p-value threshold of 0.01 [18]. The latter entries correspond mostly to test configurations where the RP1 is used at large RIS-UE distances, typically with respect to UE5 locations and, to a minor extent, with respect to UE4. First, this is in line with the link-level radio parameters estimation results in Sec. <ref>, where AoD estimation errors can typically exceed $10\degree$ as RIS-UE distances reach $5$m-$6$m, whatever the estimation method. Beyond, regardless of the quality of radio parameters estimation, due to the $5\degree$ AoD discretization step used for beam sweeping in azimuth, positioning errors naturally tend to be larger at large distances, due to obvious geometric dilution considerations.

Nevertheless, it is also observed that despite the use of poorly informative radiolocation metrics such as that related to received power (herein, BS and RIS AoD based on overall channel gain), single-BS still seems feasible in Scenarios 1a to 1c within an accuracy level comparable to that of the reference scenario 0.
Mitigating a little bit the previous result, it should be recalled that channel sounding equipment usually benefits from better signal dynamics and sensibility than that of integrated receivers at real UE terminals. Accordingly, the latter may be subject to relatively large fluctuations of the received power (in comparison with the power gain brought by RIS reflections), hence making the detection of RIS AoD more challenging in practice.

Finally, as regards to the expected localization boost, none of the tested RIS-aided configurations (in terms of both radio metrics or UE locations) could really outperform this reference scenario, suggesting that passive RRIS are most likely beneficial to enable non-feasible localization configurations, rather than improving localization accuracy.

scale only axis,
xlabel style=font=,
xlabel=X (m),
ytick = 5,...,13,
ylabel style=font=,
ylabel=Y (m),
axis background/.style=fill=white,
legend columns=1,
legend style=font = , at=(0.86,0.61), anchor=west, legend cell align=left, align=left, draw=white!15!black,
major grid style=line width=.005pt,draw=black!50, dashed,

[color=blue, only marks, mark=+, mark size=3.5pt, mark options=solid, blue]
table[row sep=crcr]
7.035	9.91125046262034

7.03057141913445	7.97777815141599

7.0497946127015	5.98659580783041

9.21	6.14403995615804

[color=red, only marks, mark size=3.5pt, mark=triangle, mark options=solid, red]
table[row sep=crcr]
6.9876950306324	9.99318507301552

7.00586468006825	8.06998495665315

7.03855276473988	6.05035149579406

8.42002592978546	6.53890805998185

[color=red, only marks, mark size=3.5pt, mark=asterisk, mark options=solid, red]
table[row sep=crcr]
6.85693839291954	10.2196622134373

7.06398911624905	7.85306160791237

7.03758965944646	6.05581353736839

8.60218968315809	6.14825663121947

[color=red, only marks, mark size=3.5pt, mark=o, mark options=solid, red]
table[row sep=crcr]
6.94973861297612	10.0255277601301

8.73427123282468	6.20042173942

7.10241603102591	8.01469884471163

7.03526868417252	6.05490310650092

[color=green, only marks, mark size=3.5pt, mark=square, mark options=solid, green]
table[row sep=crcr]
6.80171238051149	9.90645993898018

7.15304091869556	8.04403381470423

7.03372130532332	6.05440557160854

9.07789867348452	6.23213696123717

[color=mycolor1, only marks, mark size=3.5pt, mark=triangle, mark options=solid, mycolor1]
table[row sep=crcr]
7.06312829768132	9.97636354317598

7.12092822030239	8.00577097970282

7.11858546144056	5.95603476105265

9.23819764211657	6.14413975212434

[color=mycolor1, only marks, mark size=3.5pt, mark=asterisk, mark options=solid, mycolor1]
table[row sep=crcr]
6.95991442211364	10.144543644714

7.13695127600421	8.10771997755953

7.09522056330512	6.03995948635316

9.23531259864484	6.20419826678718

[color=mycolor1, only marks, mark size=3.5pt, mark=o, mark options=solid, mycolor1]
table[row sep=crcr]
7.00369514647282	10.1101879710533

7.16172919115958	8.08306792103016

7.12593914559502	6.00179756220452

9.24567349384094	6.18421202722183

[color=mycolor2, only marks, mark size=3.5pt, mark=triangle, mark options=solid, mycolor2]
table[row sep=crcr]
7.09125659534519	10.0414766237316

7.21128502147032	8.03376380796982

7.18737631017774	5.92547371370666

9.26639528423314	6.14423954809071

[color=mycolor2, only marks, mark size=3.5pt, mark=asterisk, mark options=solid, mycolor2]
table[row sep=crcr]
6.88482884391792	10.377836826808

7.24333113287396	8.23766180370262

7.1406465139038	6.09332316482452

9.26062519728968	6.26435657741752

[color=mycolor2, only marks, mark size=3.5pt, mark=o, mark options=solid, mycolor2]
table[row sep=crcr]
6.98804271970953	10.2096567252618

7.22730807717214	8.13571280583627

7.16401141204086	6.00939843933282

9.26351024076141	6.20429806275352

[color=black, only marks, mark size=3.5pt, mark=triangle, mark options=solid, black]
table[row sep=crcr]
6.06	11.6

[color=black, line width=2.0pt,  forget plot]
table[row sep=crcr]
4	8.35

4	8.85

[color=black, line width=2.0pt]
table[row sep=crcr]
5.88322330470336	5.87677669529664

6.23677669529664	5.52322330470336

[color=black, only marks, mark size=2.2pt, mark=*, mark options=solid, black]
table[row sep=crcr]
7.06	10

7.06	8

7.06	5.99

9.06	5.99

[black] (axis cs:7,10) ellipse [x radius=50, y radius=50];
[black] (axis cs:7,8) ellipse [x radius=50, y radius=50];
[black] (axis cs:7,6) ellipse [x radius=40, y radius=40];
[black] (axis cs:9,6) ellipse [x radius=90, y radius=80];

[right, align=left]
at (axis cs:6.198,11.614) BS;
[right, align=left]
at (axis cs:7.15,10.52) $\text{UE}_\text{1}$;
[right, align=left]
at (axis cs:7.15,8.52) $\text{UE}_\text{2}$;
[right, align=left]
at (axis cs:7.15,6.4) $\text{UE}_\text{3}$;
[right, align=left]
at (axis cs:8.8,5.7) $\text{UE}_\text{4}$;
[right, align=left]
at (axis cs:3.1,8.643) $\text{RIS}_\text{1}$;
[right, align=left]
at (axis cs:5.2,5.498) $\text{RIS}_\text{2}$;

Ground-truth and estimated UE locations (over the 4 first tested locations) for the scenarios of Table <ref>.

scale only axis,
xlabel style=font=,
xlabel=RIS-UE Traveled Distance [m],
ylabel style=font=,

ylabel=Distance Estimation Error [m],
axis background/.style=fill=white,
title style=font= ,
title=RIS ON / Distance based on SAGE MPC in Expected RP Zone,
legend style=legend cell align=left, align=left, draw=white!15!black,
grid = both,
minor grid style=line width=.005pt,draw=black!50, dashed,
[color=black, only marks, mark=triangle, mark size = 4.5pt, mark options=solid, black]
table[row sep=crcr]
3.36505572019246	0.0500000000000007

3.11826875044471	0.140000000000001

4.02190253487078	0.14

5.69347872570013	0.119999999999999

7.52699807360145	0.0800000000000001

[color=black, mark size = 4.5pt, only marks, mark=asterisk, mark options=solid, black]
table[row sep=crcr]
4.41474801092882	0.19

2.50798724079689	0.290000000000001

1.04120122935002	0.11

3.01398407427777	0.24

5.00840293906151	0.19

LS positioning errors (in m) for the scenarios of Table <ref>.

Scenario     UE1     UE2     UE3     UE4     UE5     RMSE     Median

0     0.09     0.04     0.01     0.21     0.22     0.15     0.09
1a     0.07     0.09     0.06     0.84↓     7.16↓     3.22↓     0.08
1b     0.30     0.15     0.07     0.48     0.83↓     0.46     0.30
1c     0.11      0.05     0.07     0.39     2.99↓     1.35↓     0.11
1d     0.27     0.10     0.07     0.24     6.78↓     3.04↓     0.24
2a     0.02     0.06     0.07     0.24     1.40↓     0.64↓     0.07
2b     0.18     0.13     0.06     0.28     0.44     0.25     0.18
2c     0.12     0.13     0.07     0.27     0.97↓     0.46     0.13
2d     0.05     0.15     0.14     0.26     2.60↓     1.17↓     0.16
2e     0.42     0.30     0.13     0.34     0.76     0.44     0.34
2f      0.22     0.22     0.11     0.30     1.35↓     0.63↓     0.22

§ CONCLUSION AND FUTURE WORK

In this paper, we account for first
experimental validations of RIS-aided single-BS positioning based on real frequency domain mmWave channel sounding measurements. Basic LS positioning results show that the AoD of 2 RIS-reflected paths (or even the AoD and delay of 1 single RIS-reflected path) could viably (i) replace the missing direct path in case of NLoS situation between the BS and the UE or (ii) complete this direct path in LoS, both given that the RIS-UE distance remains on the order of a few meters at most. Beyond, it is noted that the estimation of RIS-reflected path parameters could be significantly degraded, thus making counterproductive RIS contribution to the final positioning result.

Leveraging the same measurement data, future works will investigate the impact of bandwidth occupancy on performance, as well as the suppression of the systematic static multipath components to ease the detection of RIS-reflected paths, hence getting rid of the genie-aided spatial pre-filtering step in the Delay-AoA domain. Other possible RIS-based applications in the same context concern the localization of passive objects for opportunistic mapping purposes.

§ ACKNOWLEDGMENT

This work has been supported, in part, by the EU H2020 RISE-6G project under grant 101017011.
The authors would also like to warmly thank J.-B. Gros from Greenerwave, for providing the RRIS prototype involved in the measurement campaign reported here, as well as for his technical assistance and meaningful advice.

[1]
C. Huang et al, “Reconfigurable Intelligent Surfaces for Energy Efficiency
in Wireless Communication,” IEEE Trans. Wireless Commun., vol. 18,
pp. 4157–4170, Aug. 2019.

[2]
Q. Wu and R. Zhang, “Intelligent reflecting surface enhanced wireless network
via joint active and passive beamforming,” IEEE Trans. Wireless
Commun., vol. 18, pp. 5394–5409, Nov. 2019.

[3]
E. Calvanese Strinati, G. C. Alexandropoulos, H. Wymeersch, B. Denis,
V. Sciancalepore, R. D'Errico, A. Clemente, D.-T. Phan-Huy, E. D. Carvalho,
and P. Popovski, “Reconfigurable, intelligent, and sustainable wireless
environments for 6G smart connectivity,” IEEE Commun. Mag., vol. 59,
pp. 99–105, Oct. 2021.

[4]
K. Keykhosravi et al., “Leveraging RIS-Enabled Smart Signal Propagation for
Solving Infeasible Localization Problems,” 2022.

[5]
H. Wymeersch et al., “Radio localization and mapping with reconfigurable
intelligent surfaces: Challenges, opportunities, and research directions,”
IEEE Vehicular Technology Magazine, vol. 15, no. 4, pp. 52–61, 2020.

[6]
H. Wymeersch and B. Denis, “Beyond 5G Wireless Localization with
Reconfigurable Intelligent Surfaces,” in ICC 2020 - 2020 IEEE
International Conference on Communications (ICC), (Dublin, Ireland),
pp. 1–6, IEEE, June 2020.

[7]
A. Elzanaty et al., “Reconfigurable intelligent surfaces for localization:
Position and orientation error bounds,” IEEE Transactions on Signal
Processing, vol. 69, pp. 5386–5402, 2021.

[8]
J. He, H. Wymeersch, L. Kong, O. Silvén, and M. Juntti, “Large intelligent
surface for positioning in millimeter wave mimo systems,” in 2020 IEEE
91st Vehicular Technology Conference (VTC2020-Spring), pp. 1–5, 2020.

[9]
H. Zhang, H. Zhang, B. Di, K. Bian, Z. Han, and L. Song, “Towards ubiquitous
positioning by leveraging reconfigurable intelligent surface,” IEEE
Communications Letters, vol. 25, no. 1, pp. 284–288, 2021.

[10]
K. Keykhosravi et al., “SISO RIS-enabled joint 3D downlink
localization and synchronization,” in Proc. IEEE ICC, (Montreal,
Canada), 2021.

[11]
M. Rahal et al., “RIS-enabled localization continuity under near-field
conditions,” in Proc. IEEE SPAWC, (Lucca, Italy), 2021.

[12]
M. Rahal, B. Denis, K. Keykhosravi, M. F. Keskin, B. Uguen, and H. Wymeersch,
“Constrained ris phase profile optimization and time sharing for near-field
localization,” in 2022 IEEE 95th Vehicular Technology Conference:
(VTC2022-Spring), pp. 1–6, 2022.

[13]
Y. Liu, E. Liu, and R. Wang, “Reconfigurable Intelligent Surface Aided
Wireless Localization,” arXiv:2009.07459 [cs, math], Sept. 2020.
arXiv: 2009.07459.

[14]
J.-B. Gros et al., “A reconfigurable intelligent surface at mmwave based on
a binary phase tunable metasurface,” IEEE Open Journal of the
Communications Society, vol. 2, pp. 1055–1064, 2021.

[15]
L. Di Palma et al., “1-Bit Reconfigurable Unit Cell for Ka-Band
Transmitarrays,” IEEE Antennas and Wireless Propagation Letters,
vol. 15, pp. 560–563, 2016.

[16]
T. Mazloum et al., “Impact of Multiple RIS on Channel Characteristics: An
Experimental Validation in Ka Band,” in Proc. 2023 Joint European
Conference on Networks and Communications & 6G summit (EuCNC/6G summit),
June 2023.

[17]
K. Haneda and J.-I. Takada, “An application of SAGE algorithm for UWB
propagation channel estimation,” in Proc. IEEE Conference on Ultra
Wideband Systems and Technologies 2003 (IEEE UWBST'03), pp. 483–487,
November 2003.

[18]
F. Wilcoxon, “Individual comparisons by ranking methods,” Biometrics,
vol. 1, no. 6, pp. 80–83, 1945.