产生16QAM信号
我知道使用以下 生成QPSK信号的方法 TxS=round(rand(1,N))*2-1; % QPSK symbols are transmitted symbols TxS=TxS+sqrt(-1)*(round(rand(1,N))*2-1); 在上面,符号为2个字母 +1/-1. 但是我不明白如何为同一字母空间生成16个正交振幅调制信号吗?是否可以?或者通常的生成方法是什么? 另外,使用复杂的信号而不是真实的习惯? 解决方案 看一下: class.html hMod = comm.RectangularQAMModulator('ModulationOrder',16); dataIn = randi([0 15],10000,1); txSig = step(hMod,dataIn); 您也可以使用: TxS = (randi(4,N,1)*2-5)+i*(randi(4,N,1)*2-5) 其他解决方案 是的,通常可以使用复数(表
12 2023-09-03
编程技术问答社区
改善/优化C++中的文件写入速度
我一直遇到一些写入文件的问题 - 也就是说,无法足够快地写作. 要解释,我的目标是捕获千兆以太网上的数据流,然后将其保存到文件中. 原始数据以10ms/s的速度出现,然后将其保存到缓冲区,然后写入文件. 以下是代码的相关部分: std::string path = "Stream/raw.dat"; ofstream outFile(path, ios::out | ios::app| ios::binary); if(outFile.is_open()) cout recv(&rxBuffer[0], rxBuffer.size(), metaData); switch(metaData.error_code) { //I
30 2023-06-30
编程技术问答社区
GNURadio中的QPSK传输和接收
我已经实现了这个: 接收端的星座图与发射端的星座图相同,但会消失一段时间,不连续,闪烁并不断移动,很短的时间也显示垃圾图. 如何解决这个问题以获得正确的连续图? 解决方案 切勿在硬件流程图中使用“Throttle"块. 它所做的只是将处理速度“大致"减慢到平均要求的速度.这迟早会导致您的计算机无法足够快地从硬件源中获取样本,从而导致溢出. 那可能是你看到“垃圾"图的那一刻. 一般来说,20 MS/s 的速度很多,而且通常硬盘驱动器在写入数据时不够可靠.如果问题仍然存在,还要禁用文件接收器. 它消失了一会儿,不连续,它闪烁并继续移动 恭喜!您发现了无线信道.这就是发生的事情.有关更多信息,请查阅您的无线通信基础知识;这不是编程问题:)
1262 2022-08-12
编程技术问答社区
UHD USRP设备缺乏容量
我在 CentOS 6.5 机器 64 位上使用 Redhawk 1.10.0 和带有 UHD 驱动程序 3.7.2 的 USRP b100.USRP b100 被系统正确识别.它是一个 USB 设备.我下载了最新版本的 UHD_USRP Device ver.REDHAWK 3.0 和我创建了一个包含 GPP 和 UHD_USRP 设备的节点.节点启动时没有任何问题,但是当我运行一个简单的波形从 USRP 作为 RX_DIGITIZER 读取数据时,出现以下错误: Failed to create application: usrp_test_248_173059195 Failed to satisfy 'usesdevice' dependencies DCE:18964b3d-392e-4b98-a90d-0569b5d46ffefor application 'usrp_test_248_173059195' IDL:CF/ApplicationFactory/Create
64 2022-08-11
编程技术问答社区