当前位置:首页 > 芯闻号 > 技术解析
[导读]为加深大家对无线通讯OFDM的理解程度,本文将为大家对来无线通讯OFDM调制实例。

无线通讯是重要通讯手段之一,通讯专业的朋友对于无线通讯自然十分熟悉。在前面的文章中,小编对无线通信OFDM调制的实现原理有所介绍。为加深大家对无线通讯OFDM的理解程度,本文将为大家对来无线通讯OFDM调制实例。如果你对无线通讯技术具备浓厚兴趣,不妨和小编共同往下阅读哦。

下面的OFDM调制和解调在Altera Stratix III FPGA上进行,FFT和存储缓冲器使用MegaCore函数。这个例子打算用于采用FFT复用的系统,为了实现共享,这里,FFT核的时钟率要比基带信号快很多。该设计旨在实现可重配置结构的OFDM系统,它的FFT size和循环前缀的大小在执行中可变。Pre-FFT数据通过一个单缓冲器改变速率,Pre-FFT位反转数据通过一对缓冲器改变速率和次序。所有的控制模块支持TDD操作并被发射器和接收器共享。该应用实例可以很容易扩展到MIMO、TDD或者两者结合的系统中,例如图6中的系统以及图5介绍的FDD系统。

功能描述:这个设计实例包含两部分:OFDM调制和OFDM解调。前者包含IFFT和循环前缀的位反转插入,后者包含循环前缀的移除模块和改变数据速率的缓冲器。图1为这两者的高级集成。你可以把它看作是图3中的单天线TDD系统的一种扩展。附加的pre-FFT缓冲器使设计更容易地扩展到具有FFT复用的MIMO或FDD系统。

图1:OFDM调制解调设计架构举例。

Post-FFT处理:OFDM调制过程中的CP插入包含4个功能子模块:

1. 使用双时钟双端口RAM的双缓冲器

2. 位反转的存储写模块

3. 循环前缀插入的内存读取模块

4. 时钟同步模块

在发射数据通道中,位反转的IFFT输出数据在循环前缀插入模块被读入。一个控制单元分析数据地址并把它写入相应的存储单元。在一个完整的IFFT数据包被写入后,与循环前缀相应的最后几个样本以自然顺序读出。与此同时,如果有容量,来自下一个IFFT包的数据会被写入另一个缓冲器。如果两个缓冲器都有数据需要读取,会有一个延迟信号经过Avalon Streaming接口背压送到IFFT核。经过OFDM调制后的数据通常是连续的。而其后的模块,如IF调制解调器和天线,不应该施加背压。

在接收数据通道中,post-FFT处理限制了位反转和速率改变。位反转的FFT输出数据会被写入到正确的内存地址,就像之前所做的一样。一旦一个完整的数据包被写入了缓冲器,它将会按正常顺序依次读出。要特别注意避免过度的背压。由于读时钟频率通常慢于写时钟,故需要一个双缓冲器。图2讲述了post-FFT的数据处理。控制信号指明两个时钟域的缓存器状态,并通过同步逻辑进行同步。

图2:循环前缀插入操作前后的数据包比较。

Pre-FFT处理:Pre-FFT处理包括4个模块:

1. 循环前缀的移除或存储器写

2. 存储读取或速率改变

3. 双时钟双端口RAM

4. Avalon码流准备好延迟转换器

如前面所讨论,如果FFT为了资源共享采用不同速率的时钟,则需要pre-FFT数据缓冲器。在接收通道上,每当输入数据开始写入单缓冲器时,循环前缀移除模块开始记数。当整个数据包都被写入这个单缓冲器时,记数值开始从0地址被读出。

对于固定的FFT size,由于读时钟频率并不比写时钟慢,用一个单缓冲器就够了。但如果FFT size是变化的,一个单缓冲器恐怕就不够了。举个特殊的例子,假设两个时钟工作在同一频率。在这种情况下,当新的数据被写入内存,上一个数据包中的数据会从同一个存储地址被读出。如果上一个数据包的FFT/IFFT size更大,那么当前包的写操作会早在上一个数据包读操作完成前结束。这样的话,为了阻止写入过多的数据,就必须延迟上行数据流模块的运行直到上一个大数据包的读操作完成。

所幸的是,这种背压只会在FFT size由大变小时才会被施加。在实际的系统中,FFT size不太可能频繁的改变。如果它只在帧边界改变,由于帧符号之间是静止区,就永远不会施加背压。此外,为了避免使用背压,读信号和FFT核可以采用更高速率的时钟,这样读操作会在写操作之前完成。所需的时钟频率取决于最坏情况下FFT size的变化比。举个极端的例子,如果FFT size从2048减到128,那么读时钟的频率至少需要比写时钟快16倍。

在发射数据通道上,CP移除子模快只是将输入数据按次序写入单缓冲器。同样的数据以不同的速率被读出。图3讲述了pre-FFT的数据操作。在接收通道上,数据通过天线进入OFDM解调器,其后通常还接有IF调制解调器。这样,接收模式下的pre-FFT模块不会再对上行数据流模块施加背压。对于TDD操作,在pre-FFT数据缓冲时,可以复用post-FFT双端口RAM实现位反转,因为这些操作在时间上是错开的。

图3:循环前缀移除操作前后的数据包比较。

时钟方案:该设计中采用两个时钟域,clk_f和clk_s。FFT核运行在快时钟clk_f上。当时钟clk_f比clk_s快时,两个时钟域将会存在异步。握手信号将会被插入来同步域间的控制信号。尽管在实际系统中时钟clk_f的频率通常为clk_s频率的几个整数倍,但在这个设计中,两者频率也可以相同。这里,两个时钟必须同步。由于单缓冲器存储深度的限制,如果两个时钟同步而只是速率不同,就必须去掉解调器中的时钟同步模块。不过在实际系统中不需要考虑这一点,因为如果FFT核没有被复用就没必要使用pre-FFT缓冲器了。

接口和I/O端口:该设计实例使用了数据传输控制的Avalon Streaming协议。为了支持大小可变的FFT size、循环前缀,以及FFT方向运行时间(run time)的变化,必须对这些run time信号进行缓冲并把它们与输出数据数据包开始(SOP)信号对齐。Therefore, in every control module of OFDM modulation and demodulation, some logic is dedicated to signal alignment.因此,在OFDM调制解调中的每个控制模块中都有一些逻辑信号专用于信号对齐。

该实例中也通过Avalon Stream信号sink_ready(输入准备好信号)和source_ready(输出准备好信号)来支持背压。循环前缀插入模块中输入准备好延迟选0和输出准备好延迟选44。循环前缀移除模块的输入准备好延迟选0。不过,因为输出数据取自存储器,后面的缓冲器读取子模块的输出准备好延迟选2。由于FFT核为延迟0,为了实现与FFT核的连接,需要在在缓冲读模块与FFT核之间插入一个延迟适配器。延迟适配器用延迟2接收输入数据,然后用延迟0输出数据。适配器也支持背压并把可重配置的循环前缀的大小和FFT的方向信号与输出数据包对齐。

调制解调的输入输出信号是有符号的定点格式但位宽度是可配置的。在可变流模式中,IFFT核的输出数据具有基于最大IFFT size的满分辨率。如果必要,可以在循环前缀插入模块中切断数据序列,也可以设置位宽参数。图4所示为OFDM调制解调模块的I/O端口。

图4:OFDM调制解调模块的I/O接口。

以上便是此次小编带来的“无线通讯”相关内容,通过本文,希望大家对无线通讯OFDM的实例以及OFDM具备更深的理解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为增进大家对工业以太网的认识,本文将对工业以太网的原理、工业以太网的关键技术以及工业以太网要解决的问题予以介绍。

关键字: 以太网 工业以太网 指数

为增进大家对工业以太网的认识,本文将对工业以太网网络优势、工业以太网和IOLINK的区别予以介绍。

关键字: 以太网 工业以太网 指数

为增进大家对二极管的认识,本文将对续流二极管、续流二极管的工作原理以及二极管在工业产品中的应用予以介绍。

关键字: 二极管 指数 续流二极管

通过本文,您将了解到二极管反接是否有电压以及二极管在电子电路中的应用。

关键字: 二极管 指数 稳压电路

为增进大家对二极管的了解,本文将对ESD二极管和TVS二极管之间的区别予以介绍。

关键字: ESD TVS 二极管 指数

为增进大家对嵌入式主板的认识,本文将对嵌入式主板以及嵌入式主板常见问题及其解决方法予以介绍。

关键字: 嵌入式 指数 主板

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

为增进大家对嵌入式的认识,本文将对嵌入式、嵌入式工作相关的内容予以介绍。

关键字: 嵌入式 指数 嵌入式技术

为增进大家对LED显示屏的认识,本文将对节能LED显示屏的设计予以介绍。

关键字: LED 指数 显示屏

为增进大家对LED显示屏的认识,本文将对LED显示屏的部件组成、LED显示屏的选型技巧予以介绍。

关键字: LED 指数 显示屏
关闭
关闭