主要内容

HDL OFDM发射机

此示例示出了如何实现的Simulink的基于OFDM的无线发射器,其用于HDL代码生成和硬件实现进行了优化。金宝app

这个例子展示了基于正交频分复用(OFDM)的发射机的定制设计。这个发射机模型通过输入端口接受有效负载数据。它使您能够从一组值中选择数据的调制类型和穿透卷积码率。这两个参数控制传输的有效数据速率,并通过发射机的输入端口提供。发送端支持的最大数据速率为3mbps。金宝app发射机还接受一个有效的输入信号来控制传输。

在这个例子中的发射机与接收器一起工作高密度脂蛋白OFDM接收机的例子。该变送器具有MATLAB®浮点等值函数描述的HDL OFDM MATLAB参考的例子。

变送器规格

本节介绍了与OFDM帧配置和结构、带宽和采样率有关的发射机规格。

发送器模型接受两个参数,modTypeIndex和codeRateIndex,这两个参数允许您分别指定数据的调制类型和穿透卷积码率。这两个参数解释如下表:

modTypeIndex

值代表调制类型_____ _______________________0 bpsk 1 qpsk 2 16QAM 3 64QAM

codeRateIndex

值代表编码速率  _____ ____________________ 0 1/2 1 2/3 2 3/4 3 5/6

OFDM框架结构

每个OFDM系统具有帧结构,其示出了样本的在其所有子载波的频域的分布。帧结构是如图中所示。每个OFDM符号是由72个子载波,并且每个OFDM帧包括36个OFDM符号。帧持续时间是3毫秒。第一个OFDM符号是由同步序列(SS),第二和第三符号由参考信号(RS)形成形成,并且所述第四符号是由报头而形成。数据从第五符号到最后(第36次)符号填写。导频被插入的数据之间,使得存在用于每五个数据子载波的一个导频,如下所示。这些试点帮助,以探测接收器和正确的相位误差。

模型中使用的OFDM参数如下所示:

参数值________________________ _________采样率1.92 Msps子载波间距15khz FFT长度128 OFDM信号带宽1.4 MHz主动子载波72左保护子载波28右保护子载波27循环前缀长度32每帧数据符号32每数据符号导频12

模型架构

下图显示了OFDM发射器的高级架构。有五种不同的信号形成OFDM帧:SS,RS,标题,导频和数据。SS,RS和飞行员对每个帧都相同。它们存储在单独查找表(LUT)中并在需要时访问。标题和数据基于给予发射机的输入而变化。基于输入调制类型和码率值形成报头比特。如图所示,通过标题链处理这些标题位。有效载荷数据被提供为发送器的输入。通过数据链中的多个阶段处理此数据。报头和数据链中的单个阶段在进一步的部分中解释。

这五个信号是基于他们的有效信号并将其存储在RAM复用。所述RAM中存储这些信号,以一帧的持续时间。存储在RAM中的数据被读出并通过将调制OFDM调制器块。OFDM调制后的信号以1.4 MHz的通频带频率进行滤波,作为发射机输出输出。

文件结构

这个例子包含两个Simulink模型,一个初始化脚本金宝app和一个MATLAB函数:

  • whdlOFDMTransmitter.slx-这是本例中的顶级模型。它有一个OFDM发射机子系统,涉及whdlofdmtx.slx.模型。对于OFDM发射器子系统存在外部接口电路,其提供输入并从子系统收集输出。模拟此模型运行剩余的三个文件。

  • whdlexamples。OFDMTransmitterInit-该脚本初始化whdlOFDMTransmitter.slx模型。脚本被调用InitFcn回调模型。

  • whdlofdmtx.slx.- 这个模型实现了总可配置的发射器。

  • Whdlexamples.ofdmtxparameters.- 此功能会生成所需的参数whdlofdmtx.slx.模型。该函数在模型的模型工作空间中调用。

传送器接口

whdlOFDMTransmitter.slx模型显示了OFDM发射机子系统及其接口。

模型输入

  • modTypeIndex- 符号调制的选择的类型将被施加到有效载荷数据,指定为ufix2标量。此端口接受值0.12,3.,与调制类型BPSK,QPSK,16QAM和64QAM相对应。

  • codeRateIndex- 选择要应用于有效载荷数据的被打孔的卷积代码的码率,指定为UFIX2标量。此端口接受值0.12,3.,分别对应码率1/2、2/3、3/4和5/6。

  • 数据- 输入有效载荷数据,指定为布尔标量。

  • 有效的- 对于输入数据,指定为布尔标量有效信号。

所有输入端口以30.72 MSP的采样率运行,以支持不同的配置。金宝app

模型输出

  • txdata.- 发射器输出,作为一个复标量返回,使用FixDT(1,16,13)数据类型以1.92 MSPS采样。

  • txValid—有效的控制信号txdata.,返回为以1.92 Msps采样的布尔标量。

  • 准备好了—用于采样输入的控制信号数据modTypeIndex,codeRateIndex值,指定为30.72 MSPS采样的布尔标量。

指数选择器

该索引选择子系统样本modTypeIndexcodeRateIndex在的上升沿信号准备好了信号。该子系统保留以前输出,如果在不存在上升沿准备好了信号。

数据和有效选择器

基于所述数据和有效选择器子系统选择输入有效载荷数据和输入有效信号准备好了信号。

发射机结构

whdlofdmtx.slx.模型被OFDM发送子系统中调用。它产生由如下所示的处理在多个阶段中的输入信号的OFDM发射机的波形。

whdlOFDMTx

帧控制器和输入采样器

帧控制器和输入采样子系统为模型的后期阶段生成控制信号。子系统还生成一个准备好了用于外部接口的输出信号。该子系统采样输入modTypeIndexcodeRateIndex值以及第一个有效的输入示例。当前帧的传输块大小是从基于采样的传输块大小LUT中选择的modTypeIndexcodeRateIndex值。子系统还生成控制信号,用于头的生成,然后是序言的生成以及第一个有效样本。前导信号的产生是指SS、RS和Pilot信号的产生。数据生成的控制信号要么在第一个有效样本的9562(最大传输块大小对应64-QAM调制和5/6码率)时钟周期之后,要么在有效输入数据的传输块长度为当前帧存储之后,以较晚的为准。随着数据控制信号,ofdmModReady信号被断言,表示OFDM调制器块开始调制。

帧发电机

帧发生器子系统产生SS、RS、报头、导频和数据信号,这些信号随后被ofdm调制。帧生成子系统中的生成前导控制信号子系统将输入进行分割前换班控制信号进入SS组rs套装,飞行员集控制信号,分别产生SS、RS和Pilot信号。

生成器/帧同步序列

同步序列子系统接受SS组由帧控制器和输入采样子系统产生的控制信号。它是考虑SS序列的长度而产生的。计数器持续递增并从LUT返回SS。一次SS组变为非活动状态时,计数器停止。LUT的输出被上采样2倍,以保持与Header和Data子系统相同的采样时间。参考信号和导频子系统以类似的方式操作,将序列存储在lut中,并在需要时访问它们。

帧生成器/标题

Header子系统接受modTypeIndexcodeRateIndexFftlenIndex.作为输入。一个headerSet信号启动标题形成。标题形成函数转换modTypeIndexcodeRateIndex值转换成等价的二进制。例如,一个modTypeIndex的价值1转换成两位01..相似地,codeRateIndex值被转换成两个等价的位。要了解更多关于这些索引的信息,请参考变送器规格FftlenIndex.是不可配置的,其值固定为0..它转换成000.,表示FFT长度为128。FftlenIndex.modTypeIndex,codeRateIndex用3,2和2位表示,共7位。另外,添加了7个备用位,当前均设置为0.,形成了总共14个报头位。

这14位的处理如图所示。为了正确的错误检测,通用CRC发电机HDL优化块垫16 CRC位[16 12 5 0]为CRC多项式。这卷积编码器块编码这些30个比特,即14 + 16,与[171 133]作为多项式和约束长度为7.编码在终止模式下处理,添加6个空位,即7且endash; 1,到CRC填充数据。在编码之后,由于1/2速率编码,这36位导致72位。的输出卷积编码器块是使用序列化子系统中序列化的两个元素矢量Serializer1D(HDL编码器)块,导致速率转变因子2。序列化的数据使用Interleaver块进行交叉,最大块大小为72,列数为18。有关交织器块的更多信息,请参阅HDL交织器和反交织器的例子。已交织比特使用BPSK调制LTE符号调制器块形成标题符号。

帧生成器/数据

数据子系统存储输入有效载荷数据,数据输入,并通过数据链路进行处理。

帧发生器/数据/数据和控制信号生成

数据和控制信号生成子系统由RAM组成,其中输入有效载荷数据,数据输入,存储。一个数据集信号从该RAM读取数据。该子系统产生开始结尾,有效的用于RAM数据的控制信号。它还选择基于所述穿刺矢量codeRateIndex

帧发生器/数据/数据链

通用CRC发电机HDL优化块附加一个32位的CRC有效载荷数据从与所述RAM[32 26 23 22 16 12 11 10 8 7 5 4 2 1 0]为CRC多项式。这个crc填充的数据被打乱了$ x ^ 7 + x ^ 4 + 1美元作为多项式[1 0 1 1 1 0 1]作为初始状态。这卷积编码器块以终止模式对扰乱数据进行编码[171 133]作为多项式和约束长度7..编码输出使用穿刺与数据和控制信号生成子系统选择的穿刺向量块。的输出穿刺块是一个两元素向量,使用Serializer1D(HDL编码器)块。合成数据在Symbol Interleaver子系统中交错,其中Split data Into Symbols子系统将输入数据分割成符号,每个符号使用Interleaver块进行位交错,最大块大小为360,列数为15。对于BP金宝appSK、QPSK、16-QAM和64-QAM调制,支持的Interleaver块的输入数据符号大小分别为60、120、240和360。有关交织器块的更多信息,请参阅HDL交织器和反交织器的例子。这LTE符号调制器块使用基于输入选择的调制模式来调制交织数据modTypeIndex

复用器

多路复用器子系统基于由帧发生器子系统生成的有效信号,在多路复用的前导信号子系统中和数据信号子系统中的标题和数据信号中复用SS,RS和导频信号。

帧形成和OFDM调制

该框架的形成和OFDM调制子系统接受preambleData数据信号,然后将复用,并将其写入到双速率双端口RAM(HDL编码器).这个RAM以不同的速度读写数据。RAM写数据的速率为61.44 Msps。在RAM中填充数据,形成OFDM帧结构,如图所示变送器规格部分。

在生成OFDM调制器的有效子系统产生的有效的输入信号OFDM调制器块的采样率为1.92 Msps,并生成一个RAM地址从RAM读取数据。有效信号与OFDM调制器的就绪信号同步。使OFDM有效连续分系统选择OFDM调制器输出基于validIn信号。它给出了在的存在有效的OFDM输出validIn信号和在没有伪OFDM符号validIn信号。

离散FIR滤波器HDL优化

离散FIR滤波器HDL优化(DSP系统工具箱)块滤波器的输出使OFDM有效连续子系统的通频带频率为1.4 MHz。这Whdlexamples.ofdmtxparameters.函数计算的滤波器系数。该滤波器的输出是发送器的最终输出。

运行发射机

发射器可以通过解释的接收器重新连接回来高密度脂蛋白OFDM接收机的例子。有关如何使用发射机和接收器Simulink模型的更多信息,请参阅金宝appHDL OFDM MATLAB参考的例子。

运行变送器模型,OFDMTxVerification.m脚本与本示例一起提供。该脚本选择自定义框架配置、有效负载数据并模拟模型。该脚本还收集模拟输出并验证它们。

请注意:这些文件不可用MATLAB的搜索路径。要在本地复制这些文件到用户的路径,你必须打开这个例子。

验证和结果

在本节中,通过将其输出与其浮点等效功能进行比较,验证OFDM发射器Simul金宝appink模型,whdlexamples。OFDMTx.有关该功能的MATLAB的更多信息,请参阅HDL OFDM MATLAB参考的例子。为了比较与功能的MATLAB仿真模型的输出,运行金宝appOFDMTxVerification.m脚本。

> > OFDMTxVerification

###开始串行参考模型模拟生成###已成功更新模型参考模拟目标为:whdlOFDMTx制作摘要模拟目标建:示范行动重建原因================================================================================ whdlOFDMTx代码生成和编译whdlOFDMTx_msf.mexa64不存在。内置1款1(0型号已经是最新的)建造时间:0小时3米53.674s

HDL代码生成

为了产生这个例子HDL代码,您必须HDL编码器™。用makehdlmakehdltb命令生成HDL代码和HDL测试用于OFDM发送器子系统。测试平台生成时间取决于模拟时间。

合成了用于Xilinx®Zynq®-7000 ZC706评估板的HDL代码。发帖地点和路线资源利用情况如下表所示。最大工作频率为230mhz。

资源使用率_______________ _____切片寄存器6373片LUT 4197 RAMB36 5 RAMB18 15 DSP48 24

也可以看看

相关的话题