首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» OFDM信道调制解调的仿真及其FPGA设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
OFDM信道调制解调的仿真及其FPGA设计
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2015-6-28 21:06
|
只看该作者
OFDM信道调制解调的仿真及其FPGA设计
Network
,
多媒体
,
选择性
,
最大的
,
移动通信
OFDM(正交频分复用)是一种高效的多载波调制技术,其最大的特点是传输速率高,具有很强的抗码间干扰和信道选择性衰落能力。OFDM最初用于高速MODEM、数字移动通信和无线调频信道上的宽带数据传输,随着IEEE802.11a协议、BRAN(Broadband Radio Access Network)和多媒体的发展,数字音频广播(DAB)、地面数字视频广播((DVB-T)和高清晰度电视((HDTV)都应用了OFDM技术。 OFDM利用离散傅立叶反变换/离散傅立叶变换(IDFT/DFT)代替多载波调制和解调,调制解调的核心是快速傅立叶运算单元,在进行蝴蝶运算时,不可避免的要进行大量的乘法运算。由于FPGA具有强大的并行处理和计算能力,以及丰富的存储资源和逻辑运算资源,因此在FPGA器件上实现OFDM调制解调结构,具有很好的通用性和灵活性。
OFDM与系统框图
OFDM的多个载波相互正交,一个信号内包含整数个载波周期,每个载波的频点和相邻载波零点重叠,这种载波间的部分重叠提高了频带利用率。OFDM每个子信道的频谱均为sinx/x形,各子信道频谱相互交叠,但在每个子信道载频的位置来自其他子信道的干扰为零,如图1所示。
OFDM系统如图2所示,OFDM系统的调制和解调分别由IFFT和FFT完成。首先将串行输入数据d0,d1...,d(N-1)变换成并行数据,接下来进行编码和星座图映射,得到频域数据。经过IFFT后相当于调制到正交的N个f0,f1,...,fN-1子载波,完成正交频分复用。接下来加入循环前缀,进行并/串转换,数/模转换,再调制到高频载波上发送。如果是基带传输,则不需要进行载波调制。
在接收端进行相反的操作,使用N个相同的子载波进行N路解调,再将这N路解调信号并串输出,复现发送的原始信号。经过FFT变换后的数据相当于将时域数据再转换成频域数据,即完成了OFDM信号的解调。
OFDM调制原理虽然是用N个正交的载波分别调制N路子信道码元序列,但实际中很难独立产生N个正交的载波。所以OFDM多采用VLSI技术,用FFT代替多载波调制和解调。当子信道数目比较多的时候,采用FFT可以大大减少系统的复杂度。而FPGA的并行乘法器和加法器结构容易硬件实现OFDM的核心运算,有效地提高了OFDM调制解调速度。
软件仿真与设计
随着FPGA和VLSI的发展,大量的EAB(嵌入式阵列块)、LE(逻辑单元)、内嵌乘法器和高速FIFO存储器带来了OFDM/COFDM的实用化,为OFDM提供了硬件支持。软件上可以采用MATLAB、硬件描述语言VHDL、QuartusⅡ等软件进行仿真与设计。
仿真过程中采用了随机信号作为输入信号,经过4QAM编码映射后进行再IFFT调制,然后进入信道进行数据传输,每帧信号为512点;同时采用简单的11点数字离散信道,其值为:[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088]。
在一般OFDM系统中为使IFFT和FFT前后的信号功率保持不变,当N=2m(m为正整数)时,作如下定义:
采用16位定点算法,这便意味着要考虑溢出问题。对于基-2 FFT,为了防止溢出,可以采用以下办法:将每一个蝶算后的数据右移1bit,即相当于将该数做除2处理。这样,加入总衰减比例因子,将比例因子分散到各步计算中。这种情况下,输出不是原来定义的离散傅里叶变换,而是它的。而对于基-2 IFFT,这个比例因子正是公式中需要的,所以FPGA实现的IFFT便是最终结果。
图3和图4分别是信道h(n)的FFT值(倒数)和第二帧输入数据(迭代次数10)。
调制过程中Matlab的IFFT结果同FPGA结果比较如表1所示。
表1 IFFT结果比较
经过FPGA的IFFT在非主频率点上有一些小的误差。这是因为在计算IFFT的时候,同样因为舍入问题,在本该为零的点产生一些极小的数值,从而在信号显示时出现这些毛刺。
对于表1,FFT峰值结果的误差,是因为FPGA采用的是16bit定点算法,在程序中有很多舍位处理带来的误差。至于Sine信号峰值的不同,那是因为将FPGA实现的IFFT结果再进行Matlab的fft()计算,而IFFT的那些毛刺,必然在时域上产生影响。
在FPGA实现时,一般是在完成IFFT以后将结果暂时存放在RAM中,然后在从RAM里读出数据时,采取部分重复读取的方式,将一部分数据重复复制,从而形成循环前缀。这样可以对连续的数据流进行变换处理,满足系统的实时性要求。
解调过程中Matlab的FFT结果同FPGA结果比较如表2所示。
表2 FFT结果比较
从表2可以看出,FPGA的结果同Matlab的结果基本相同,只是FFT峰值有些不同。这也因为FPGA采用的是16bit定点算法,在程序中有很多舍位处理。但 FPGA的结果是将原小数信号变成整数后再进行处理的,当最后再转换成小数后,结果将是一致的。
结语
OFDM信道调制解调的关键是一对离散傅里叶变换。程序可以由Verilog HDL模块进行设计,用相应的模块仿真程序TESTBENCH进行功能仿真,经过波形仿真和结果验证后,将程序下载到FPGA中实现。同时,Verilog HDL仿真结果与MATLAB中函数fft()以及ifft()的输出结果进行比较(采用的是浮点运算),得出图形和数据的比较结果。
结果表明,用FPGA实现OFDM信道调制解调与MATLAB仿真结果基本一致,具有良好的性能和较高的效率。
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议