[USRP-users] [UHD] Setting sampling rates to 500Msps is not supported.
Dear all, recently, we purchased a X410. According to the [manual](https://www.ni.com/pdf/manuals/378493a), the USRP supports a maximum I/Q samples rate of up to 491.52 MSps. Using the UHD API however, warnings are printed to stdout that the rate is set to 245.76 MSps. In the following, you can find a MWE: ```cpp #include #include int main() { uhd::device_addr_t addr = uhd::device_addr_t("addr=localhost"); uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(addr); usrp->set_rx_rate(491.52e6); // max. value deifned in https://www.ni.com/pdf/manuals/378493a usrp->set_tx_rate(491.52e6); // max. value deifned in https://www.ni.com/pdf/manuals/378493a std::cout << "Rx rates range from " << usrp->get_rx_rates().start() << " to " << usrp->get_rx_rates().stop()<< std::endl; std::cout << "Tx rates range from " << usrp->get_tx_rates().start() << " to " << usrp->get_tx_rates().stop()<< std::endl; std::cout << "Current rate is (rx): " << usrp->get_rx_rate() << std::endl; std::cout << "Current rate is (tx): " << usrp->get_tx_rate() << std::endl; } ``` After building, the following is printed: ```bash root@ni-x4xx-323F74C:~/uhd-evaluation/debug/build# ./set_usrp_rates [INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100; UHD_4.1.0.5-0-g18f5f9a4 [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=127.0.0.1,type=x4xx,product=x410,serial=323F74C,fpga=X4_200,claimed=False,addr=localhost [INFO] [MPM.PeriphManager] init() called with device args `fpga=X4_200,mgmt_addr=127.0.0.1,product=x410,clock_source=internal,time_source=internal'. [WARNING] [MPM.RPCServer] A timeout event occured! [INFO] [MPM.PeriphManager] init() called with device args `fpga=X4_200,mgmt_addr=127.0.0.1,product=x410,clock_source=internal,time_source=internal'. [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz Rx rates range from 240941 to 2.4576e+08 Tx rates range from 240941 to 2.4576e+08 Current rate is (rx): 2.4576e+08 Current rate is (tx): 2.4576e+08 ``` The same can be observed using the `txrx_loopback_to_file` example. Can you help me on that? Thank you in advance 🙂 **Version information**: ```bash root@ni-x4xx-323F74C:/usr/lib/uhd/examples# uhd_config_info --print-all UHD 4.1.0.5-0-g18f5f9a4 Build date: Mon, 06 Dec 2021 19:14:55 C compiler: GNU 9.2.0 C++ compiler: GNU 9.2.0 C flags: -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW -DHAVE_CONFIG_H -DUHD_LOG_MIN_LEVEL=1 -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_CONSOLE_COLOR --sysroot=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0=/usr/src/debug/uhd/4.1.0.5+rc2-r0 -fdebug-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0=/usr/src/debug/uhd/4.1.0.5+rc2-r0 -fdebug-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0/recipe-sysroot= -fdebug-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0/recipe-sysroot-native= --sysroot=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0/recipe-sysroot C++ flags: -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW -DHAVE_CONFIG_H -DUHD_LOG_MIN_LEVEL=1 -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_CONSOLE_COLOR --sysroot=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0=/usr/src/debug/uhd/4.1.0.5+rc2-r0 -fdebug-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0=/usr/src/debug/uhd/4.1.0.5+rc2-r0 -fdebug-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0/recipe-sysroot= -fdebug-prefix-map=/__w/790/build/tmp-glibc/work/aarch64-oe-linux/uhd/4.1.0.5+rc2-r0/recipe-sysroot-native= -fvisibility-inlines-hidden --sysroot=/__w/790/build/tmp-glibc/work/aarch64-o
[USRP-users] Re: [UHD] Setting sampling rates to 500Msps is not supported.
Hi Wade, thanks for you answer. I built the master branch, reran the program (without changes) with the new UHD and did not modifiy my test-program at all. I receive the following: ```bash root@ni-x4xx-323F74C:~/uhd-evaluation/debug/build# ./set_usrp_rates [INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100; UHD_4.2.0.git-366-gcdcd39ae [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=127.0.0.1,type=x4xx,product=x410,serial=323F74C,fpga=X4_200,claimed=False,addr=localhost [INFO] [MPM.PeriphManager] init() called with device args `fpga=X4_200,mgmt_addr=127.0.0.1,product=x410,clock_source=internal,time_source=internal'. [INFO] [0/Radio#0] Setting default MTU forward policy. [INFO] [0/Radio#1] Setting default MTU forward policy. [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set RX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz [WARNING] [MULTI_USRP] Could not set TX rate to 491.520 MHz. Actual rate is 245.760 MHz Rx rates range from 240941 to 2.4576e+08 Tx rates range from 240941 to 2.4576e+08 Current rate is (rx): 2.4576e+08 Current rate is (tx): 2.4576e+08 ``` I have to admit, probably due to a lack of cmake/build skills, I had to force cmake to use the 4.2.0 uhd (located in /usr/local) instead of the "old" pre-installed one. I did so by commenting out some lines in the UHDConfig.cmake. Cmake takes successfully the includes and binaries in /usr/local. I am quite sure that this works, but not 100% certain. In case this helps. Did I forget something? Thanks a million! Tobias Von: Wade Fife Gesendet: Donnerstag, 10. Februar 2022 17:31 An: Marcus D. Leech Cc: usrp-users@lists.ettus.com Betreff: [USRP-users] Re: [UHD] Setting sampling rates to 500Msps is not supported. Hi Tobias, Sorry for the confusion. To get the full 491.520 MS/s you have to use a bitstream that supports it, and it requires the 100 GbE interface to stream at that rate. It looks like you're using the default bitstream that supports 250 MS/s (called X4_200) and 10 GbE. The initial release of X410 didn't include support for the higher streaming rates but this is planned for the next UHD software release, and is currently available on master. Thanks, Wade On Thu, Feb 10, 2022 at 10:11 AM Marcus D. Leech mailto:patchvonbr...@gmail.com>> wrote: On 2022-02-10 07:39, Tobias Kronauer wrote: Dear all, recently, we purchased a X410. According to the [manual](https://www.ni.com/pdf/manuals/378493a), the USRP supports a maximum I/Q samples rate of up to 491.52 MSps. Using the UHD API however, warnings are printed to stdout that the rate is set to 245.76 MSps. Also: https://files.ettus.com/manual/page_usrp_x4xx.html#x4xx_updating_fpga_types In the following, you can find a MWE: ```cpp #include #include int main() { uhd::device_addr_t addr = uhd::device_addr_t("addr=localhost"); uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(addr); usrp->set_rx_rate(491.52e6); // max. value deifned in https://www.ni.com/pdf/manuals/378493a usrp->set_tx_rate(491.52e6); // max. value deifned in https://www.ni.com/pdf/manuals/378493a std::cout << "Rx rates range from " << usrp->get_rx_rates().start() << " to " << usrp->get_rx_rates().stop()<< std::endl; std::cout << "Tx rates range from " << usrp->get_tx_rates().start() << " to " << usrp->get_tx_rates().stop()<< std::endl; std::cout << "Current rate is (rx): " << usrp->get_rx_rate() << std::endl; std::cout << "Current rate is (tx): " << usrp->get_tx_rate() << std::endl; } ``` After building, the following is printed: ```bash root@ni-x4xx-323F74C:~/uhd-evaluation/debug/build# ./set_usrp_rates [INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100; UHD_4.1.0.5-0-g18f5f9a4 [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=127.0.0.1,type=x4xx,product=x410,serial=323F74C,fpga=X4_200,claimed=False,addr=localhost [INFO] [MPM.PeriphManager] init() called with device args `fpga=X4_200,mgmt_addr=127.0.0.1,product=x410,clock_source=internal,time_source=internal'. [WARNING] [MPM.RPCServer] A timeout event occured! [INFO] [MPM.PeriphManager] init() called with device args `fpga=X4_200,mgmt_addr=127.0.0.1,product=x
[USRP-users] Overflow - when to take it seriously?
Dear USRP-Users, recently, we purchased a USRP X410. I am using the UHD version shipped with, namely UHD 4.1.0.5-0-g18f5f9a4. Running the default examples, I receive constantly Overflow-"Errors". Namely, there are two different notifications, generally speaking, I receive. I wonder what the difference is. Notification Type 1: A print to stdout, i.e. a `O`, without receiving an error message from the metadata of the received package. Notification Type 2: An error message in the metadata of the received package. Can you tell me the difference? Scanning the documentation, it is hard for me to find the actual difference. I wonder when to take it seriously, i.e. knowing that some samples are actually dropped. Kind regards, Tobias Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com
[USRP-users] GPS alarm PIN set to true
Dear all, I want to synchronize multiple USRP devices using a GPS antenna. I use a X410. Running the example file `./sync_to_gps`, I get the warning that the GPS is not locked (ref is locked however). Further, if I probe the GPS module pins, I receive the following: GPS locked? 0 gps enabled? 1 gps alarm? 1 gps warmed up? 0 gps survey? 0 I am wondering, why the GPS alarm PIN is true... I cannot find any information on this in the documentation. Interestingly, I get the same results if a GPS antenna is NOT connected to the USRP... Plus, the example file prints me a GPSDO timestamp. am I missing something entirely fundamental? Thanks in advance, Tobias Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com
[USRP-users] Re: GPS alarm PIN set to true
If the GPS light is the light left to the GPS ANT port, then yes it it shining green. Currently, I have two GPS antennas connected to two X410. The GPS antenna has multiple outputs, I use the "GPS" output and screw it to the SMA connector. Then I probe the module pins (and call the `./sync_to_gps` example). We use a Poynting A-Puck-0005-V1-01 antenna, in case it helps. Von: Marcus D. Leech Gesendet: Dienstag, 8. März 2022 15:27 An: usrp-users@lists.ettus.com Betreff: [USRP-users] Re: GPS alarm PIN set to true On 2022-03-08 07:51, Tobias Kronauer wrote: Dear all, I want to synchronize multiple USRP devices using a GPS antenna. I use a X410. Running the example file `./sync_to_gps`, I get the warning that the GPS is not locked (ref is locked however). Further, if I probe the GPS module pins, I receive the following: GPS locked? 0 gps enabled? 1 gps alarm? 1 gps warmed up? 0 gps survey? 0 I am wondering, why the GPS alarm PIN is true... I cannot find any information on this in the documentation. Interestingly, I get the same results if a GPS antenna is NOT connected to the USRP... Plus, the example file prints me a GPSDO timestamp. am I missing something entirely fundamental? Thanks in advance, Tobias Is the GPS light on the USRP illuminated? How are you distributing your GPS antenna signal to your multiple X410s? Looking at the documentation from Jackson Labs for the GPSDO, the "ALARM" signal indicates a hardware fault, which may be nothing more than "I'm not seeing a GPS signal". Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com
[USRP-users] Re: GPS alarm PIN set to true
For inexplicable reasons, it did lock after some time. Maybe the received GPS signal was too weak (the antenna was placed inside behind a window) + we waited long enough. However, we decided to use the OctoClock with another PPS generator as synchronization mechanisms. Thanks a million for your help. Von: Marcus D. Leech Gesendet: Mittwoch, 9. März 2022 15:44 An: Tobias Kronauer Cc: usrp-users@lists.ettus.com Betreff: Re: AW: [USRP-users] Re: GPS alarm PIN set to true On 2022-03-09 04:34, Tobias Kronauer wrote: If the GPS light is the light left to the GPS ANT port, then yes it it shining green. Currently, I have two GPS antennas connected to two X410. The GPS antenna has multiple outputs, I use the "GPS" output and screw it to the SMA connector. Then I probe the module pins (and call the `./sync_to_gps` example). We use a Poynting A-Puck-0005-V1-01 antenna, in case it helps. Could you share the complete output of "sync_to_gps" ? Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com
[USRP-users] [X410] Change hostname
Hi altogether, I have a rather dumb question: how can I change the hostname of the USRP? According to the docs (being the standard way of changing host names in general), I changed the file /etc/hostname and rebooted. However, after rebooting, the content of /etc/hostname is changed to its defaults Using hostname or hostnamectl in the command line does not work either. Can you help me on that? I am using a X410. Thanks in advance, Tobias Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com
[USRP-users] Re: [X410] Change hostname
I asked our IT department, and they said no Von: Marcus D. Leech Gesendet: Donnerstag, 17. März 2022 14:41 An: usrp-users@lists.ettus.com Betreff: [USRP-users] Re: [X410] Change hostname On 2022-03-17 06:24, Tobias Kronauer wrote: Hi altogether, I have a rather dumb question: how can I change the hostname of the USRP? According to the docs (being the standard way of changing host names in general), I changed the file /etc/hostname and rebooted. However, after rebooting, the content of /etc/hostname is changed to its defaults Using hostname or hostnamectl in the command line does not work either. Can you help me on that? I am using a X410. Thanks in advance, Tobias Barkhausen Institut www.barkhauseninstitut.org<http://www.barkhauseninstitut.org> IF it's setup for DHCP, it's probably that you're getting your hostname from the DHCP server? Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com
[USRP-users] Re: [X410] Change hostname
There is no /etc/hostname in /data Von: Marcus D Leech Gesendet: Montag, 21. März 2022 15:11 An: Tobias Kronauer Cc: USRP-users@lists.ettus.com Betreff: Re: [USRP-users] Re: [X410] Change hostname Try looking under /data/etc/hostname That’s something that is peculiar to mender-controlled filesystems. Sent from my iPhone On Mar 21, 2022, at 4:33 AM, Tobias Kronauer wrote: I asked our IT department, and they said no Von: Marcus D. Leech Gesendet: Donnerstag, 17. März 2022 14:41 An: usrp-users@lists.ettus.com Betreff: [USRP-users] Re: [X410] Change hostname On 2022-03-17 06:24, Tobias Kronauer wrote: Hi altogether, I have a rather dumb question: how can I change the hostname of the USRP? According to the docs (being the standard way of changing host names in general), I changed the file /etc/hostname and rebooted. However, after rebooting, the content of /etc/hostname is changed to its defaults Using hostname or hostnamectl in the command line does not work either. Can you help me on that? I am using a X410. Thanks in advance, Tobias Barkhausen Institut www.barkhauseninstitut.org<http://www.barkhauseninstitut.org> IF it's setup for DHCP, it's probably that you're getting your hostname from the DHCP server? Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com
[USRP-users] [x410] Frequency Selectivity?
Hi all, we use a X410 and send 60k samples via localhost. We increase the frequency within the frame every 6k samples. We observe a frequency selectivity of the USRP. Can you help us on that? In the attachment [0], you can find the MWE (we tried to keep it as small as possible). Let us explain the problem in the following plot: [cid:8da814dd-5c1c-40b6-b1c3-5b63bbe2ae97] In the left column, you can find the transmitted signal, in the right column the received signal. In the lower row, you see the spectrogram. One can clearly see that the signal gets attenuated, depending on the frequency. One would expect the amplitude to remain constant. The transmitted signal changes every 6k signal its frequency. Within these 6k samples, we simply send complex exponentials. The frequencies are: [-25, -19.44 -13.9, -8.3, - 2.78 2.78 8.3 13.9, 19.4 25]. Rf config: ```cpp const double FS = 50e6; Config conf; conf.txAnalogFilterBw = 400e6; conf.rxAnalogFilterBw = 400e6; conf.txGain = 35; conf.rxGain = 35; conf.txCarrierFrequency = 2e9; conf.rxCarrierFrequency = 2e9; conf.txSamplingRate = FS; conf.rxSamplingRate = FS; ``` For different RfConfigs, the results are less distinct. Kind regards, Tobias Attachments: [0]: usrp_mwe.cpp Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: Würzburger Straße 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy #include #include #include #include #include #include "uhd/usrp/multi_usrp.hpp" typedef std::complex sample; typedef std::vector samples_vec; using namespace std::chrono; const size_t SPB = 2e3; const size_t NO_SAMPLES = 60e3; const size_t NO_PACKAGES = NO_SAMPLES / SPB; const double PI = std::acos(-1); const std::complex J = sample(0, 1); double SEND_TIME = 4.f; struct Config { float txSamplingRate, rxSamplingRate; float txCarrierFrequency, rxCarrierFrequency; float txAnalogFilterBw, rxAnalogFilterBw; float txGain, rxGain; }; std::ofstream createCsv(const std::string &filename) { std::cout << "Storing samples to " << filename << std::endl; std::ofstream csvStream(filename); csvStream << "real,imag" << std::endl; return csvStream; } void dumpSamples(const std::vector &samples, std::ofstream &stream) { const samples_vec &samplesFirstChannel = samples[0]; for (size_t sampleIdx = 0; sampleIdx < NO_SAMPLES; sampleIdx++) { const std::complex &sample = samplesFirstChannel[sampleIdx]; stream << sample.real() << "," << sample.imag() << std::endl; } } std::vector createWaveform(const int noSignals, const double fStart, const double fStop, const double fSampling) { std::vector samples; samples_vec samplesFirstChannel(NO_SAMPLES, sample(0, 0)); double stepSize = (fStop - fStart) / (noSignals - 1); int zohLength = NO_SAMPLES / noSignals; int fIdx = 0; double f = 0; double t = 0; for (size_t sampleIdx = 0; sampleIdx < NO_SAMPLES; sampleIdx++) { if (sampleIdx > 0 && sampleIdx % zohLength == 0) fIdx++; f = fStart + fIdx * stepSize; t = sampleIdx / fSampling; samplesFirstChannel[sampleIdx] = std::exp(J * 2.0 * PI * f * t); } samples.emplace_back(samplesFirstChannel); return samples; } void setRfConfig(const Config &conf, uhd::usrp::multi_usrp::sptr usrpDevice) { // configure transmitter usrpDevice->set_tx_rate(conf.txSamplingRate); usrpDevice->set_tx_subdev_spec(uhd::usrp::subdev_spec_t("A:0"), 0); uhd::tune_request_t txTuneRequest(conf.txCarrierFrequency); usrpDevice->set_tx_freq(txTuneRequest, 0); usrpDevice->set_tx_gain(conf.txGain, 0); usrpDevice->set_tx_bandwidth(conf.txAnalogFilterBw, 0); // configure receiver usrpDevice->set_rx_rate(conf.rxSamplingRate); usrpDevice->set_rx_subdev_spec(uhd::usrp::subdev_spec_t("A:0"), 0); uhd::tune_request_t rxTuneRequest(conf.rxCarrierFrequency); usrpDevice->set_rx_freq(rxTuneRequest, 0); usrpDevice->set_rx_gain(conf.rxGain, 0); usrpDevice->set_rx_bandwidth(conf.rxAnalogFilterBw, 0); usrpDevice->set_sync_source("internal", "inter
[USRP-users] Re: [x410] Frequency Selectivity?
Hi, I sincerely apologize for the inconvenience... Reading the warning prompt, it is specifically pointed out that the bandwidth requires an even ratio Setting it to, e.g., masterClockRate/4 does not cause a "hump" Once again, I apologize for stealing your time. Kind regards, Tobias Von: Marcus D. Leech Gesendet: Montag, 11. April 2022 16:41 An: Tobias Kronauer Cc: usrp-users@lists.ettus.com Betreff: Re: AW: [USRP-users] Re: [x410] Frequency Selectivity? On 2022-04-11 07:07, Tobias Kronauer wrote: thanks for your prompt reply! Indeed, my description was lacking a bit of details. In short: - We transmit with 50MHz sample rate and 400MHZ analog bandwidth (according to RF config setup) - We generate a signal that consists of sections with pure (complex) tones of different frequencies with constant amplitude, ranging from -25MHz to +25MHz frequency in baseband (-25, -19.5, -14, -8, -3, 3, 8, 14, 19.5, 25). - We receive the signal on the same USRP and plot the time domain of the TX and RX signal. (first figure row) - As visible, already the 8MHz tone is attenuated by around 3dB compared to the center frequency. Higher frequencies are more attenuated. This is also visible in the spectrogramm. We know and expect that the passband of the X410 is not totally flat. However, we do not expect the passband to be as severely shaped as we measured. We know we cannot expect the edges to be not attenuated, but actually we would have expected at least say -20..20MHz to be relatively flat (for 50MHz sampling rate). Hence we wonder: - if the problem can be reproduced on your (or other's side)? - if the seen behaviour is correct and more flatness cannot be expected? Thank you. I updated the plot as well. How are you connecting your TX and RX? Antenna or direct-wired? If direct-wired, make sure that your cable has at least 30dB of attenuation in it and that your TX power levels aren't producing more than about 0dBm at the output. With a master clock rate of 250MHz, 50Mhz delivered bandwidth requires an odd decimation rate. This has historically caused a passband response with a half-band "shape" that is like a "hump" as you describe. I don't know whether this applies to X410 or not. It REALLY would be helpful for you to plot the RX response using a normal FFT plot--with the gain turned up and a terminator on the RX input, you should be able to see the instrumental response of the device.The "uhd_fft" example code with Gnu Radio produces nice plots for this sort of thing. Barkhausen Institut www.barkhauseninstitut.org Barkhausen Institut gGmbH | Sitz: W?rzburger Stra?e 46, 01187 Dresden, Germany | Registergericht: Amtsgericht Dresden, HRB 37267 | Gesch?ftsf?hrer: Prof. Dr. Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der Gesellschafterdelegation: Dr. Andreas Handschuh Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: https://barkhauseninstitut.org/data-privacy This email and any attachments are intended only for the person to whom this email is addressed and may contain confidential and/or privileged information. If you received this email in error, please do not disclose the contents to anyone, but notify the sender by return email and delete this email (and any attachments) from your system. Information on data protection and processing of your personal information: https://barkhauseninstitut.org/data-privacy ___ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com