首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用GNURadio控制OFDM中的带宽

如何利用GNURadio控制OFDM中的带宽
EN

Stack Overflow用户
提问于 2018-05-09 21:31:29
回答 2查看 858关注 0票数 0

我试图模拟一个802.11 OFDM信号在20/40/80和160个MHz带宽使用GNURadio,从tx.grc实例开始。

使用这个例子,我可以很容易地生成一个20 MHz信号,只需将sample_rate提高到20M。然而,我需要帮助产生更高的带宽模式。

据我理解,带宽是由信号中的子载波数以及采样率决定的。进一步的研究告诉我,对于802.11n 40 MHz模拟信道,我应该使用:

  • fft长度: 128
  • 副载波计数: 114
  • 抽样率: 40 MHz

除了更改这些变量外,我还修改了occupied_carriers、pilot_carriers和导频符号如下:

代码语言:javascript
复制
occupied_carriers = (range(-57,-51) + range(-50,-21) + range(-20,-7) + range(-6,0)+range(1,7)+range(8,21) + range(22,50) + range(52,57),)
pilot_carriers = ((-51,-21,-7,7,21,51),)
pilot_symbols = ((1, 1, 1, -1,1,1),)

我还从sync_words块中删除了ofdm_carrier_allocator。

在这些更改之后,我得到了一个40 MHz宽的输出,但是它更像是802.11b的形状(更多的是高斯而不是平方),就像在这幅图像中看到的那样。

显然,我错过了一些重要的东西,但我一直无法弄清楚是什么。

为了澄清,我不在乎数据被发送,我只是想产生一个正确的形状和带宽的信号。另外,为了输出信号,我首先使用示例代码将数据写入文件,然后使用gnuradio直接将该文件写入USRP x300(UBX-160)。

对于OFDM调制过程的任何帮助或澄清将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-10 15:18:57

我知道我错过了一些简单的东西。

在对usrp用户邮件列表进行了快速讨论后,我从马库斯·D·利赫那里得到了答案,我需要在将数据发送给usrp之前先对数据进行数字化采样。

Lists.ettus.com/2018-5月/056519.html

通过在流图中添加一个有理重放器,然后将数据写入一个文件中,我将采样率从40提高到100 MS/s,然后X300能够产生一个漂亮的40 MHz信号。

票数 0
EN

Stack Overflow用户

发布于 2018-05-10 07:13:22

您所处的路径是正确的-- OFDM系统占用的带宽只是采样率定义的全部带宽。

因此,40 MS/s的带宽将达到40 MHz。

为了得到正确的频谱形状,即正确的子载波间隔和副载波特性,您还必须将子载波的数量翻一番( OFDM中的子载波是(I)DFT/(I)FFT的长度)并修改信道掩码,以便中心载波和最重要的是正确的边缘载波数仍未使用。

当然,这意味着每个OFDM符号还需要更多的数据符号。

现在,你显然没有看到你想要看到的东西--它看起来甚至很像发生在那里的模拟事物。为了排除这种情况,我建议您将发送到USRP的样本保存到文件中并进行分析。如果他们的数字频谱是正确的,你有一个硬件或测量问题。我在这里的第一个猜测是运行不足,即你的PC在向USRP发送数据方面太慢的情况,并且导致不连续性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50262375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档