主要内容

高密度脂蛋白OFDM发射机

这个例子展示了如何在Simulink®中实现一个基于ofdm的无线发射器,该发射器为HDL代码生成和硬件实现进行了优化。万博1manbetx

此示例显示了基于正交频分复用(OFDM)的发射机的定制设计。该变送器型号通过输入端口接受有效载荷数据。它使您能够从一组值中选择数据的调制类型和屏蔽卷积码速率。这两个参数控制传输的有效数据速率,并通过变送器的输入端口提供。发射机支持的最大数据速率为3 Mbps。发射器还接受输入有效信号以控制传输。万博1manbetx

本例中的发射器与中的接收器一起工作HDL-OFDM接收机示例。变送器具有中所述的MATLAB®浮点等效功能HDL OFDM MATLAB参考资料的例子。

发射机规范

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

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

modTypeIndex

值代表调制类型  _____ __________________________ 0 BPSK 1正交相移编码2 16 qam 3 64 qam

codeRateIndex

值表示代码速率uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0 1/2 1/3 2 3/4 3 5/6

OFDM帧结构

每个OFDM系统都有一个显示样本在频域内分布的帧结构。框架结构如图所示。每个OFDM符号由72个子载波组成,每个OFDM帧由36个OFDM符号组成。帧持续时间为3毫秒。第一个OFDM符号由同步序列(SS)构成,第二个和第三个符号由参考信号(RS)构成,第四个符号由报头(Header)构成。从第五个符号到最后一个(第36个)符号填充数据。导频被插入数据之间,这样每五个数据子载波就有一个导频,如下所示。这些导频有助于检测和纠正接收机的相位误差。

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

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

模型架构

下图展示了OFDM发射机的高层架构。有五种不同的信号组成OFDM帧:SS, RS,报头,导频和数据。SS, RS和Pilots是相同的每一帧。它们存储在单独的查找表(LUT)中,并在需要时进行访问。报头和数据根据发送器的输入而变化。报头位是根据输入调制类型和码率值形成的。如图所示,这些报头位通过报头链进行处理。有效载荷数据作为输入提供给发射机。该数据在数据链中经过多个阶段进行处理。Header和Data链中的各个阶段将在后面的章节中进行解释。

这五种信号根据它们的有效信号被多路复用并存储在RAM中。RAM将这些信号保存一帧。存储在RAM中的数据由存储器读出和调制OFDM调制器块OFDM调制信号以1.4 MHz的通带频率进行滤波,并作为发射机输出发送出去。

文件结构

此示例包含两个Simulink模型、一个初始化脚本和万博1manbetx一个MATLAB函数:

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

  • whdlexamples。OFDMTransmitterInit-此脚本初始化whdlOFDMTransmitter.slx模型。该脚本在InitFcn模型的回调。

  • whdlOFDMTx.slx-该模型实现了发射机的总体可配置性。

  • whdlexamples。OFDMTxParameters—通过该功能可以生成所需的参数whdlOFDMTx.slx模型。这个函数在模型的模型工作区中被调用。

发射机接口

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

模型的输入

  • modTypeIndex-选择要应用于负载数据的符号调制类型,指定为ufix2标量。该端口接受值0123.对应调制类型BPSK、QPSK、16QAM、64QAM。

  • codeRateIndex-选择用于有效载荷数据的穿刺卷积码码率,指定为ufix2标量。该端口接受值0123.,分别对应码率1/2、2/3、3/4和5/6。

  • 数据—输入负载数据,指定为布尔标量。

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

所有输入端口以30.72 Msps的采样率运行,以支持不同的配置。万博1manbetx

模型输出

  • txData-发射机输出,作为复标量返回,数据类型为fixdt(1,16,13),采样频率为1.92 Msps。

  • txValid-验证的控制信号txData,作为以1.92 Msps采样的布尔标量返回。

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

指数选择器

索引选择器子系统对modTypeIndexcodeRateIndex信号在上升边缘准备好了信号。上没有上升沿时,子系统保留以前的输出准备好了信号。

数据和有效选择器

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

发射机的结构

whdlOFDMTx.slx模型在OFDM发射机子系统中调用。它通过多级处理输入信号产生OFDM发射机波形,如下图所示。

whdlOFDMTx

帧控制器和输入采样器

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

帧发电机

帧发生器子系统产生SS、RS、报头、导频和数据信号,这些信号随后被ofdm调制。帧生成子系统中的生成前导控制信号子系统将输入进行分割preambleSet控制信号为ss组rs集试验设置控制信号,分别产生SS、RS和导频信号。

帧生成器/同步序列

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

生成器/帧头

报头子系统接受modTypeIndexcodeRateIndexfftLenIndex作为输入。一个headerSet信号开始头部编队。标题格式函数转换modTypeIndexcodeRateIndex将值转换为其二进制等价项。例如,一个modTypeIndex的价值1被转换成两位01.同样的,codeRateIndex值被转换成两个等价的位。要了解更多关于这些索引的信息,请参考发射机规范fftLenIndex不可配置,其值固定为0.它被转换成000,表示FFT长度为128。fftLenIndexmodTypeIndexcodeRateIndex用3,2和2位表示,共7位。另外,添加了7个备用位,当前均设置为0,共构成14个头位。

这14位的处理如图所示。为了正确的错误检测,通用CRC生成器HDL优化块焊盘16个CRC位,带[16 12 5 0]作为CRC多项式。这个卷积编码器块编码这些30位,即14 + 16,与(171 133)作为多项式,约束长度为7。编码以终止模式处理,在CRC填充数据中添加6个空位,即7&endash;1。经过编码后,由于1/2速率编码,这36位得到72位。输出卷积编码器块是一个双元素向量,在序列化子系统中使用Serializer1D(高密度脂蛋白编码器)块,导致速率转变因子2。序列化的数据使用Interleaver块进行交叉,最大块大小为72,列数为18。有关交织器块的更多信息,请参阅HDL交织器和解交织器的例子。交错位是bpsk调制使用LTE象征调制器块以形成头部符号。

帧生成器/数据

Data子系统存储输入的有效负载数据,dataIn,并通过数据链进行处理。

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

数据和控制信号产生子系统由一个RAM组成,其中输入有效载荷数据,dataIn,已存储。A.数据集信号从RAM中读取数据。这个子系统生成开始结束有效的RAM数据的控制信号。它还会根据codeRateIndex

帧发电机/数据/数据链

通用CRC生成器HDL优化块将32位CRC附加到RAM中的有效负载数据[32 26 23 22 16 12 11 10 8 7 5 4 2 10]为CRC多项式。这个crc填充的数据被打乱了$x^7+x^4+1$作为多项式[1 0 1 1 1 0 1]作为初始状态。的卷积编码器块在终止模式下对置乱数据进行编码(171 133)为多项式,约束长度为7.编码输出使用穿刺在数据和控制信号生成子系统中选择穿刺矢量块。输出穿刺块是两个元素的向量,使用Serializer1D(高密度脂蛋白编码器)块结果数据在符号交织器子系统中交织,其中将数据拆分为符号的子系统将输入数据拆分为符号,并且使用交织器块对这些符号中的每个符号进行位交织,其中最大块大小为360,列数为15。对于BPSK、QPSK、16-QAM和64-QAM调制,交织器块支持的输入数据符号大小分别为60、120、240和360。有关交织器块的更多信息,请参阅万博1manbetxHDL交织器和解交织器的例子。的LTE象征调制器块使用基于输入选择的调制模式来调制交错数据modTypeIndex

多路复用器

多路复用子系统基于帧生成子系统产生的有效信号对多路前置信号子系统中的SS、RS和导频信号以及多路报头和数据信号子系统中的报头和数据信号进行多路复用。

帧形成与OFDM调制

帧形成和OFDM调制子系统接受preambleData数据信号,然后多路复用并把它们写进双速率双端口RAM(高密度脂蛋白编码器).这个RAM以不同的速度读写数据。RAM写数据的速率为61.44 Msps。在RAM中填充数据,形成OFDM帧结构,如图所示发射机规范部分

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

离散FIR滤波器HDL优化

离散FIR滤波器HDL优化(DSP系统工具箱)块滤波器使OFDM连续子系统的输出有效,通带频率为1.4 MHzwhdlexamples。OFDMTxParameters函数计算过滤系数。滤波器的输出就是发射机的最终输出。

运行发射机

发射机可以与接收器背靠背连接,接收器在HDL-OFDM接收机的例子。有关如何背靠背使用发送器和接收器Simulink模型的更多信息,请参阅万博1manbetxHDL OFDM MATLAB参考资料的例子。

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

请注意:这些文件在MATLAB搜索路径上不可用。要在本地将这些文件复制到用户路径,必须打开此示例。

验证和结果

在本节中,OFDM发射机Simulink模型通过比较其输出和浮点等效函数来验万博1manbetx证,whdlexamples。OFDMTx.有关这个MATLAB函数的更多信息,请参阅HDL OFDM MATLAB参考资料的例子。为了比较Simulink模型和MATLAB函数的输出,运行万博1manbetxOFDMTxVerification.m脚本。

>>OFDMTX验证

###开始串行模型参考仿真构建####whdlOFDMTx的模型参考仿真目标是最新的。生成摘要已生成1个模型中的0个(1个模型已更新)生成持续时间:0h 0m 2.604s

HDL代码生成

要为本示例生成HDL代码,必须使用HDL Coder™。使用makehdlmakehdltb命令来生成OFDM发射机子系统的HDL代码和HDL测试平台。测试台生成时间取决于模拟时间。

生成的HDL代码为Xilinx®Zynq®-7000 ZC706评估板合成。驿站地点和路线资源利用率如下表所示。最大工作频率为230 MHz。

资源使用_______________ _____ Slice register 6373 Slice LUT 4197 RAMB36 5 RAMB18 15 DSP48 24

另请参阅

阻碍

相关的话题