<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Inquiry on the Meaning and Calculation of Local and Remote I/Q Values in the SDK</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/121855/inquiry-on-the-meaning-and-calculation-of-local-and-remote-i-q-values-in-the-sdk</link><description>Certainly! Here’s a clear, natural English version of your email: 
 
 Dear Specialist, 
 I would like to better understand the two variables used in the SDK for calculating the phase of each channel: the local and remote (or, in version 2.9.0, the peer</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 02 Jun 2025 11:03:16 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/121855/inquiry-on-the-meaning-and-calculation-of-local-and-remote-i-q-values-in-the-sdk" /><item><title>RE: Inquiry on the Meaning and Calculation of Local and Remote I/Q Values in the SDK</title><link>https://devzone.nordicsemi.com/thread/537633?ContentTypeID=1</link><pubDate>Mon, 02 Jun 2025 11:03:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e267b3dc-5797-4603-afad-39a7f6c0744f</guid><dc:creator>cheng</dc:creator><description>&lt;p&gt;Thank you very much，Edvin，&lt;/p&gt;
&lt;p&gt;What I can confirm is that each channel indeed reports only one sample, as I noticed that in &lt;code&gt;cs_de_report_t&lt;/code&gt;, the &lt;code&gt;iq_tones&lt;/code&gt; field in &lt;code&gt;cs_de_iq_tones_t&lt;/code&gt; is related to the number of antennas. That is, each antenna has up to 80 IQ data points. I believe most of the work has already been implemented in the SDK, and we only need to use a single IQ value to represent the received phase of a given signal.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt; Cheng&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Inquiry on the Meaning and Calculation of Local and Remote I/Q Values in the SDK</title><link>https://devzone.nordicsemi.com/thread/537552?ContentTypeID=1</link><pubDate>Fri, 30 May 2025 20:06:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2b06f2d5-4c89-4758-bf42-cc2f8f1c0f3f</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;I don&amp;#39;t know the inner details on how this is implemented. But the idea is that they have some sense of a synchronized time. They don&amp;#39;t know eachother&amp;#39;s time, but there is a set time delay between receiving one packet before the reflector replies, so the time this takes is known.&lt;/p&gt;
&lt;p&gt;The distance is estimated using the phases. If you only did one channel (one frequency), you could see the phase of this signal. In an ideal world, where this is very accurate, you can use this to calculate that you are (N + phase) wawelengths away from the other device. But N is still unknown. So therefore, you do this sweep accross all channels, with different frequencies, and different wavelengths. I am not sure whether they only do one sample per channel, or multiple. When this sweep is done, the estimated distance is calculated based on the phase on all the channels, using different frequencies, and the added phase for each channel, which gives out a resulting distance.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Of course, in a world that is not ideal, you will have some noise in your measurements, so the result is not 100% accurate. But the sample will also contain a rating saying whether this sample is good or not. You can see this is being checked in&amp;nbsp;ranging_data_get_complete_cb() in the sample.&lt;/p&gt;
&lt;p&gt;If the&amp;nbsp;&lt;/p&gt;
&lt;p&gt;cs_de_quality_t quality = cs_de_calc(&amp;amp;cs_de_report);&lt;/p&gt;
&lt;p&gt;is&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CS_DE_QUALITY_OK&lt;/p&gt;
&lt;p&gt;it gives a quality stamp for that sample, but if it is not, then you can discard the sample.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Inquiry on the Meaning and Calculation of Local and Remote I/Q Values in the SDK</title><link>https://devzone.nordicsemi.com/thread/537499?ContentTypeID=1</link><pubDate>Fri, 30 May 2025 09:32:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a839e7d-f934-4c0d-9e75-a16518636db1</guid><dc:creator>tc_2020</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
&lt;p&gt;I want to know&amp;nbsp;how CS is implemented in the SDK.&lt;br /&gt;The following is my understanding about how CS works, could you take a look and point out what I said is wrong and help me to clarify my question below?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To channel sounding, specifically Phase based ranging (PBR), it measures the distance based on the phase difference slope over channels.&amp;nbsp; Assuming&lt;/p&gt;
&lt;p&gt;- pkt 1 is the packet sent by initiator and received by reflector,&lt;/p&gt;
&lt;p&gt;- pkt2 is the packet sent back by reflector, received by initiator, so I have a questions:&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Q: To the phase difference,&amp;nbsp; when the two different phases are measured? &lt;br /&gt;&lt;br /&gt;- are they the difference between (A) the phase when pkt1 is received at the reflector side, and the phase (B) when pkt2 is received at initiator side?&lt;br /&gt;- or&amp;nbsp;multiple phases are recorded over time when pkt is received, so there are array of these phase samples at two sides, you calculate the difference of each sample in order one by one and do an average among them?&lt;/p&gt;
&lt;p&gt;- or something else?&lt;br /&gt;&lt;br /&gt;Right now, I am suspecting the local and remote array in the screenshot Cheng provided are the phase samples measured at two side. But not 100% sure.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Tengfei&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Inquiry on the Meaning and Calculation of Local and Remote I/Q Values in the SDK</title><link>https://devzone.nordicsemi.com/thread/537452?ContentTypeID=1</link><pubDate>Thu, 29 May 2025 08:03:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4cbe606e-e0e1-4a9b-9c77-3a1d5b2558d7</guid><dc:creator>cheng</dc:creator><description>&lt;p&gt;Thank you very much for your response&amp;mdash;now I understand the meaning of &amp;ldquo;local&amp;rdquo; and &amp;ldquo;remote.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I apologize for mixing up AoA and Channel Sounding (CS) in my previous question. What I actually want to understand is why, in CS, each subevent only reports a single IQ value per channel.&lt;/p&gt;
&lt;p&gt;From what I know about AoA, it requires a series of phase samples over the CTE part of the packet to estimate the frequency of the whole signal, and then continues sampling on different antennas.&lt;/p&gt;
&lt;p&gt;However, in CS, I noticed that for each enabled channel, only one local IQ and one remote IQ are reported. It seems to me that if there is only a single measurement, the sampling time for local and remote would need to be strictly synchronized (starting from the very beginning of the signal). I&amp;rsquo;m not sure if my understanding is correct.&lt;/p&gt;
&lt;p&gt;For example, in the &lt;code&gt;cs_de_iq_tones_t&lt;/code&gt; structure, the lengths of &lt;code&gt;i_local&lt;/code&gt;, &lt;code&gt;q_local&lt;/code&gt;, &lt;code&gt;i_remote&lt;/code&gt;, and &lt;code&gt;q_remote&lt;/code&gt; are all 80, which I assume corresponds to the number of channels&amp;mdash;meaning there is only one measurement result per channel. I would like to know why there is only one local IQ and one remote IQ per channel. My intuition is that in order to obtain the phase of the received signal, it would require continuous sampling at multiple points.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Could you please clarify this for me?&lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/pastedimage1748505796252v2.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Inquiry on the Meaning and Calculation of Local and Remote I/Q Values in the SDK</title><link>https://devzone.nordicsemi.com/thread/537430?ContentTypeID=1</link><pubDate>Wed, 28 May 2025 22:03:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6f59a207-0a3d-470c-959e-2ad17331ab29</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We prefer that you just use e.g. google translate, and not chatgpt to translate your text. The reason is that we don&amp;#39;t know whether the AI has added/removed information that is relevant for your question.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I believe we are talking about Channel sounding, and not Direction finding. Correct?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If so, the &amp;quot;local&amp;quot; and &amp;quot;remote&amp;quot; refers to the one doing the measurement, which is the local, and the remote is the device that the local is measuring the distance to.&lt;/p&gt;
[quote user=""]However, in the BLE 6 Core Specification, for multi-antenna measurements, the transmitter needs to send signals sequentially from multiple antennas, and only then does the reflector return each signal. This process appears to be more than just simple reflection[/quote]
&lt;p&gt;Now it sounds like you are talking about direction finding. Channel sounding doesn&amp;#39;t require multiple antennas. Direction finding does require multiple antennas, because it measures the difference in phase to detect the angle. The channel sounding algorithm uses different channels to calculate the &lt;strong&gt;phase offset&amp;nbsp;&lt;/strong&gt;between different frequencies.&lt;/p&gt;
&lt;p&gt;Perhaps some more context can explain what you are actually looking for.&lt;/p&gt;
&lt;p&gt;Are you trying to combine the two technologies, Channel Sounding and Direction Finding? If so, this is not straight forward.&lt;/p&gt;
&lt;p&gt;Direction finding is delivered from us as an as-is-solution. We do the calculations, but we do not explain how the IQ data is being used.&lt;/p&gt;
&lt;p&gt;Channel sounding, as of today, is in an early stage. It is not very accurate the last time I tested, but is more a proof of concept. That we are able to measure the IQ data, but more work is required in order to crush the numbers for a better distance measurement result.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But feel free to use google translate to explain what you are imagineing in your application. Perhaps that can give me some pointers on what information you are looking for.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>