<?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>When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/124792/when-running-the-channel-sounding-example-on-the-nrf54l15-how-can-one-obtain-the-iq-values-of-the-ranging-signal</link><description>When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?I want to obtain the IQ value and then use my own algorithm to calculate the distance.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 22 Oct 2025 12:05:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/124792/when-running-the-channel-sounding-example-on-the-nrf54l15-how-can-one-obtain-the-iq-values-of-the-ranging-signal" /><item><title>RE: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/552154?ContentTypeID=1</link><pubDate>Wed, 22 Oct 2025 12:05:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:806c3df9-1221-4972-b3e9-9cf80d75d47d</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Can you please try the following:&lt;/p&gt;
&lt;p&gt;Decrease this:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L741-L742"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L741-L742&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Decrease the ACL interval:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L555"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L555&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note that if you decrease the procedure interval by &amp;quot;too much&amp;quot; there will probably not be enough time for the RAS (Ranging service) to relay the CS measurement data from the rrsp to the rreq before the next proedure starts. This will lead to dropping some of the procedures, and perhaps an effictively reduced rate of new distance estimates.&lt;/p&gt;
&lt;p&gt;One option to combat this issue is to reduce the amount of CS measurement data of CS measurements data per CS procedure. Note that this will always be at the cost of reduced accuracy. This could be done in a dew different ways.&lt;/p&gt;
&lt;p&gt;Reducing the number of enabled channels in the channel map by settting fewer bits here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L719"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L719&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Reducing the subevent length (1) and configuring the max_procedure_len subevent len (2)&lt;/p&gt;
&lt;p&gt;(1)&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L744-L745"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L744-L745&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(2)&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L740"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L740&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Configuring the submode as unused here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L705-L707"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/samples/bluetooth/channel_sounding_ras_initiator/src/main.c#L705-L707&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(this may reduce the security of CS)&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: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/550977?ContentTypeID=1</link><pubDate>Thu, 09 Oct 2025 08:34:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a277447-d7f0-4343-812c-4e579be8143d</guid><dc:creator>a9876</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/channel_5F00_sounding_5F00_ras_5F00_initiator.rar"&gt;devzone.nordicsemi.com/.../channel_5F00_sounding_5F00_ras_5F00_initiator.rar&lt;/a&gt;I am using version 3.0.2 of ncs. The code is shown in the attachment. Thank you, Edvin.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/550873?ContentTypeID=1</link><pubDate>Wed, 08 Oct 2025 09:07:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c925dbe8-2992-4165-a5e4-add71313a1e1</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am not 100% certain it is possible to increase it much more. Channel sounding requires a lot of radio activity, which takes a bit of time.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can you, however, upload what you currently have? Then I can have a look, and try to tweak some CS parameters, to see if it is possible to speed it up.&amp;nbsp;&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: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/550855?ContentTypeID=1</link><pubDate>Wed, 08 Oct 2025 06:30:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fd8cf12e-18a4-4418-8027-19867fde75ba</guid><dc:creator>a9876</dc:creator><description>&lt;p&gt;Hello,&lt;a class="internal-link view-user-profile" href="https://devzone.nordicsemi.com/members/edvin-holmseth"&gt;Edvin&lt;/a&gt;，Can we continue to increase the speed of distance measurement?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/550826?ContentTypeID=1</link><pubDate>Tue, 07 Oct 2025 14:15:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6545758c-9b93-4720-9d4f-6984992fa855</guid><dc:creator>a9876</dc:creator><description>&lt;p&gt;I have modified the code according to your suggestion. Now the IQ data can be captured twice within one second. May I ask if it is possible to further increase the capture speed? What parameters need to be adjusted if we want to further improve?&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1759846509258v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/550802?ContentTypeID=1</link><pubDate>Tue, 07 Oct 2025 12:00:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c2c69a8-563a-4d16-b184-70e67e12dd22</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know how you already changed your sample, but looking at the default sample, that doesn&amp;#39;t print the values, but prints the ranges, if you remove the k_sleep() in the main loop, and replace it with a semaphore:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;	while (true) {
		//k_sleep(K_MSEC(100));
		k_sem_take(&amp;amp;sem_new_distance_measurement, K_FOREVER);
		if (buffer_num_valid != 0) {
			for (uint8_t ap = 0; ap &amp;lt; MAX_AP; ap++) {
				cs_de_dist_estimates_t distance_on_ap = get_distance(ap);

				LOG_INF(&amp;quot;Distance estimates on antenna path %u: ifft: %f, &amp;quot;
					&amp;quot;phase_slope: %f, rtt: %f&amp;quot;,
					ap, (double)distance_on_ap.ifft,
					(double)distance_on_ap.phase_slope,
					(double)distance_on_ap.rtt);
			}
		}
		else {
			LOG_INF(&amp;quot;No valid distance estimates available yet.&amp;quot;);
		}

		//LOG_INF(&amp;quot;Sleeping for a few seconds...&amp;quot;);
	}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;And then, near the top, declare the semaphore, and give it in the&amp;nbsp;store_distance_estimates() (or alternatively in the ranging_data_cb())&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static K_SEM_DEFINE(sem_new_distance_measurement, 0, 1);
static void store_distance_estimates(cs_de_report_t *p_report)
{
	int lock_state = k_mutex_lock(&amp;amp;distance_estimate_buffer_mutex, K_FOREVER);

	__ASSERT_NO_MSG(lock_state == 0);

	for (uint8_t ap = 0; ap &amp;lt; p_report-&amp;gt;n_ap; ap++) {
		memcpy(&amp;amp;distance_estimate_buffer[ap][buffer_index],
		       &amp;amp;p_report-&amp;gt;distance_estimates[ap], sizeof(cs_de_dist_estimates_t));
	}

	buffer_index = (buffer_index + 1) % DE_SLIDING_WINDOW_SIZE;

	if (buffer_num_valid &amp;lt; DE_SLIDING_WINDOW_SIZE) {
		buffer_num_valid++;
	}
	k_mutex_unlock(&amp;amp;distance_estimate_buffer_mutex);
	k_sem_give(&amp;amp;sem_new_distance_measurement);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Then it should wake up and print the new data only when it has new data.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note that in the unmodified sample, this will sometimes print the same data as the previous round, but that is because of some median filtering done in&amp;nbsp;median_inplace().&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: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/550770?ContentTypeID=1</link><pubDate>Tue, 07 Oct 2025 08:00:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:68605020-4687-410b-af30-c69b9e62e99f</guid><dc:creator>a9876</dc:creator><description>&lt;p&gt;I can now obtain my IQ score. May I ask how to increase the speed of obtaining this score?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: When running the channel sounding example on the nrf54l15, how can one obtain the IQ values of the ranging signal?</title><link>https://devzone.nordicsemi.com/thread/550720?ContentTypeID=1</link><pubDate>Mon, 06 Oct 2025 13:39:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f0e296ae-3d2b-47bf-be05-71d3651b2696</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Please see this ticket, where a user has done something similar:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/121985/regarding-i-and-q-measurements-on-the-nrf54l15-development-kits"&gt;Regarding I and Q measurements on the nRF54L15 development kits&lt;/a&gt;&amp;nbsp;&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>