基于MATLAB与FPGA的OFDM调制解调器设计与仿真实现
图5.1 启动IP工具平台
(3)参数初始化设置;如图5.2所示。
图5.2 参数初始化设置
(4)功能仿真模型设置;如图5.3所示。
第 29 页
基于MATLAB与FPGA的OFDM调制解调器设计与仿真实现
图5.3 功能仿真模型设置
(5)生成FFT IPCore报告。如图5.4所示。
图5.4 生成FFT IPCore报告
第 30 页
基于MATLAB与FPGA的OFDM调制解调器设计与仿真实现 5.3 OFDM调制器模块的设计与仿真实现
5.3.1 调制器模块设计
本部分基于国域网(NAN)通信中的G3-PLC协议完成(本部分参考文献[16][17]),G3-PLC协议数据帧结构如图5.5所示。
图5.5 G3-PLC协议数据帧结构
数据源FCH和DATA预先存储于ROM模块中。
系统运行时。数据FCH和数据DATA分别经过BPSK和DBPSK映射模块做映射处理。映射处理后的数据首先进行IFFT前数据处理。然后在进行IFFT运算。
插入循环前缀并加窗。叠加前导码元。形成OFDM帧。 仿真结构如图5.6所示。
图5.6 OFDM调制器的结构框图
5.3.2子模块仿真分析 1、BPSK/DBPSK映射模块
BPSK/DBPSK映射模块如图5.7所示。
第 31 页
基于MATLAB与FPGA的OFDM调制解调器设计与仿真实现
图5.7 BPSK/DBPSK映射函数
BPSK/DBPSK映射模块处理流程:
数据源FCH和DATA预先存储于ROM模块中。
当BPSK映射模块的使能信号en_FCH有效时。ROM1向BPSK/DBPSK映射模块输入数据FCH。数据映射完成后由BPSK/DBPSK映射函数模块的oData_map端输出。 当DBPSK映射模块的使能信号en_DATA有效时。ROM1向BPSK/DBPSK映射模块输入数据DATA。数据映射完成后由BPSK/DBPSK映射函数模块的oData_map端输出。BPSK与DBPSK映射模块的仿真波形如图5.8和图5.9所示。
图5.8 BPSK映射仿真波形
KBPSK为时钟节拍。en_FCH为使能信号。当其有效时,BPSK模 BPS波形解释:
out_map为输出数据。块开始工作。FCH_bpsk为输入的待映射数据。当valid_map?1时,
表示输出有效信号。sop_map为输出数据的起点位置。
第 32 页
基于MATLAB与FPGA的OFDM调制解调器设计与仿真实现
图5.9 DBPSK映射仿真波形
DBPSK波形解释:
CLK为时钟节拍。en_Data为使能信号。当其有效时,BPSK模块开始工作。
Data_bpsk为输入的待映射数据。out_map为输出数据。valid_map?1时,表示输出有效
信号。sop_map为输出数据的起点位置。 2、IFFT前数据处理模块
快速傅里叶逆变换(IFFT)的运算量很大。当其进行运算时。点数越多。花费的时钟周期也越多。所以在进行快速傅里叶逆变换(IFFT)运算前。需对输入数据进行缓存处理——前数据处理。数据流控制示意框图如图5.10所示。
图5.10 IFFT前数据流控制框图
IFFT前数据处理模块处理流程:
输入数据以800kHz的时钟分别写入RAM1和RAM2。
当RAM1写满后。IFFT前数据处理模块输入启动。RAM1的数据全部输入IFFT前数据处理模块以后。启动RAM2向IFFT前数据处理模块输入数据。
当RAM1与RAM2的数据都全部输入IFFT前数据处理模块以后。继续送入7个“0”
第 33 页