问题标签 [uhd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 未定义参考[USRP] [UHD]
我一直在尝试编译以下网站中给出的代码以创建 USRP 对象 https://kb.ettus.com/Getting_Started_with_UHD_and_C%2B%2B
对于懒惰的病人,只需包含代码:
起初我是通过代码块使用 GCC 编译器,然后决定通过命令行使用 MinGW 测试 gcc 和 g++,两者都在编译时导致:
我阅读了有关将 lib 文件链接到项目的信息,但我下载的 API 似乎没有任何 .lib、.a 或任何其他 lib 类型的文件。我从他们的网站http://files.ettus.com/manual/page_install.html下载了它。
任何形式的帮助都将不胜感激,我一直试图找出问题所在几个小时。请注意,我正在使用 Windows 10 操作系统。
c++ - Cmake错误:make的执行失败
我目前正在尝试构建https://github.com/EttusResearch/uhd,https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux。就像我执行的指令中所说的那样cmake ../
。但是命令失败并出现以下错误
-- 检查工作的 CXX 编译器:/usr/bin/c++ CMake 错误:生成器:make 执行失败。制作命令是:“/usr/share/bash-completion/completions/gmake”“cmTC_3ef51/fast”——检查工作的 CXX 编译器:/usr/bin/c++——/usr/share/cmake-处的 CMake 错误3.5/Modules/CMakeTestCXXCompiler.cmake:54(消息):C++ 编译器“/usr/bin/c++”无法编译简单的测试程序。
它失败并显示以下输出:
更改目录:/home/.../uhd/host/build/CMakeFiles/CMakeTmp
运行构建命令:"/usr/share/bash-completion/completions/gmake" "cmTC_3ef51/fast"
生成器:make 执行失败。制作命令是:“/usr/share/bash-completion/completions/gmake”“cmTC_3ef51/fast”
CMake 将无法正确生成此项目。调用堆栈(最近的调用优先):CMakeLists.txt:27 (PROJECT)
有人可以帮我吗?
此致
usrp - 通过 UHD API 寻址多个 B200 设备
我在使用 UHD USRP C API 最新版本和 Python 3.6 作为编程环境的 Windows 10 系统上的 USB3 上有 2 个 B210 无线电。我可以“有点”在单独的进程中同时运行它们,但想知道是否可以在单个线程中运行它们?如何?
1 如果它使事情变得更容易,我很高兴迁移到 Linux,我只是更熟悉 Windows。
2“排序”=我有时会遇到错误,这可能是两个进程在堆栈中的某个地方发生冲突。
下面的代码说明了竞态条件,有时一个或两个进程失败并出现错误代码 40 (UHD_ERROR_ASSERTION) 或偶尔出现代码 11 ( UHD_ERROR_KEY )
c++ - 软件定义无线电 USRP X310 的测试程序
我想为我的软件定义无线电 USRP X310 运行第一个测试程序,该程序在公司网站上提供:https ://kb.ettus.com/Getting_Started_with_UHD_and_C%2B%2B
我在 Windows 上使用 Visual Studio 2015。我已经在 VS2015 中安装、构建和链接了 boost 和 UHD 库(UHD 版本 3.10.1.1 和 boost 版本 1.63.0)。
尝试调试程序时,我收到几条关于“未解析的外部符号”的错误消息。我试图找出问题所在,最后得到了非常基本的代码示例,并注意到函数 'uhd::usrp::multi_usrp::make(device_args)' 不起作用。此外,'uhd::set_thread_priority_safe()' 也不起作用。
在我看来,代码本身不是问题。有谁知道这些错误来自哪里?
我的代码
#include <uhd/utils/safe_main.hpp>
错误消息(很抱歉它们是德语。我翻译了它们,写在括号中):
gnuradio - 如何在未来使用 UHD/GNURadio 接收有限数量的样本?
我正在使用到 UHD 的 GNURadio python 接口,我正在尝试设置一个特定的时间来开始收集样本并收集特定数量的样本或在特定时间停止样本的收集。本质上,创建样本的定时快照。这类似于 C++ Ettus UHD 示例“rx_timed_sample”。
我可以让流程图在特定时间开始,但我似乎无法让它在特定时间停止(至少不会导致溢出)。我也尝试过进行有限采集,这很有效,但我无法让它在特定时间开始。所以我有点迷茫下一步该做什么。
这是我对有限采集的尝试(似乎只是忽略了开始时间并收集了 0 个样本):
我还尝试了以下一些组合但没有成功(TypeError:在方法'usrp_source_sptr_issue_stream_cmd'中,类型为'::uhd::stream_cmd_t const &'的参数2):
我还在流程图中尝试了以下内容:
无论出于何种原因,在超过 0.02 秒的收集时间的情况下,生成的流程图始终会溢出。
c++ - 使用 2 个 USRP N210 发送和接收
我对 SDR 非常陌生,对 DSP 的背景很少。我安装了 uhd 驱动程序和依赖项,并且可以运行/构建 c++ 示例。如果我在 TX 端运行 tx_samples_from_file 或 tx_waveform 并在 RX 端运行 rx_samples_to_file,我会在 .dat 文件中得到随机字符。请问rx_samples_to_file的功能是什么?我认为 rx_samples_to_file 应该获得与接收到的样本等效的复杂 IQ 采样数据。
最终,我想用 USRP 实现的是生成随机整数,使用 QAM 或 QPSK 进行映射和调制,并使用简单的 RF1(背靠背)连接使用 USRP TX 发送和使用 USRP RX 接收。
请帮忙
usrp - 无线电之间的 UHD B210 相位同步
我有两个 B210 无线电共享一个 10MHz 外部主时钟和 1pps 时间信号。我注意到,每次我在两个无线电上同时启动接收流时,它们都会出现随机但量化的相位变化。例如,如果内部主时钟频率设置为 16MHz,采样率为 1Mhz,则相位差是 Pi/6 的随机倍数。请注意,这是在不同的 B210 无线电之间 - B210 的两个射频通道之间没有这种差异。对于我正在进行的测量,我需要收音机处于锁相状态,而不仅仅是频率锁定。我目前的工作是在每次捕获开始时将校准信号注入所有无线电以测量这种差异,然后通过调整软件中的样本来补偿它。
我在 UHD API 中是否遗漏了一些东西,它允许我将无线电锁定在一起,这样它们就没有这种变化?
c++ - UHD(USRP 硬件驱动程序)缺少 dll.file
我正在尝试在 Windows VS2015 中实现 Boost 和 UHD。我安装了 Boost 。我下载了二进制文件,安装了它,用 bootstrap.bat 构建构建器,然后用它构建它
我从Ettus 安装了 UHD uhd_3.10.1.1-release_x64_VS2015.exe
。然后我开始了我的项目。我链接了所有的图书馆。
1: VC++ Directories > Executable Directories > ...\UHD\bin (试图解决这个问题)
2:C/C++ > 常规> 附加包含目录 ...\boost_1_63_0; ...\UHD\bin; ...\UHD\包括;
3:链接器>常规>附加库目录:...\UHD\lib; ..\boost_1_63_0\stage\lib; ...\boost_1_63_0;
4:链接器 > 输入 > 附加依赖 > uhd.lib
当我从GitHub启动我自己的代码或示例代码时,我收到一条错误消息,指出由于缺少 uhd.dll 文件而无法执行代码。如果我将 uhd.dll 文件放在 VS 项目目录中,则会出现访问冲突:0xC0....05。有没有人遇到过这个问题?
c++ - 从同一通道发送和接收时,x310 上的缓冲区不足
我在双 10 Gigabit 以太网的 x310 上运行,配备双基本 tx rx 子板。我在 UHD 版本 3.11.0 上运行。理想情况下,我想要两个同时发送和接收流,利用两个通道来发送和接收。我不想为 2 个接收和传输流使用 2 个 x310
当我在同一个通道上同时发送和接收时,无论速率如何,我都会将很多 U 打印到控制台信号下溢。但是,如果我在不同的通道上发送和接收(tx_streamer 在通道 1 有 stream_args,而 rx_streamer 在通道 0 有 stream_args),它工作得很好。
我附上了一个完整但简单的程序的源代码,希望能证明我的问题。在这个程序中,创建了两个线程:一个发送线程和一个接收线程。接收线程不断将数据接收到缓冲区并用新数据覆盖该缓冲区。传输线程不断地从预填充的缓冲区中传输 0。
如果有人有一个跨 10Gbps 以太网运行的 x310,你能编译并运行我的程序来测试这个问题是否不仅发生在我身上吗?
这是我们已经测试过的:
我在一个运行两个 12 核英特尔至强处理器的服务器系统上运行。(https://ark.intel.com/products/91767/Intel-Xeon-Processor-E5-2650-v4-30M-Cache-2_20-GHz)。我的网卡是推荐的x520 da2。之前有人建议 NUMA 是一个问题,但我认为情况并非如此,因为当我们切换到在单独的通道上发送和接收时,程序可以工作。
由于当我们在不同的通道上发送和接收时程序运行良好,所以我相信这不是 CPU 电源问题。
我测试了只发送和只接收。我们可以在两个通道上以 200MS/s 的速度传输,我们可以在两个通道上以 200MS/s 的速度接收,但我们不能从同一个通道发送和接收。这表明我们的网卡工作正常,我们可以处理高速率。
我已经在 UHD 3.10.2 上尝试过我的程序,但问题仍然存在
我尝试将 tx_metadata 设置为在传输前等待 2 秒。问题仍然存在。
我试过运行示例程序 txrx_loopback_from_file 并且适用于同时接收和传输,但我不知道为什么。
从最后一点开始,我相信我以某种方式错误地调用了 uhd API,但我不知道错误在哪里。任何帮助将不胜感激。
谢谢,
杰森