高速并行结构FFT的FPGA设计.docx

上传人:b****3 文档编号:12626159 上传时间:2023-04-21 格式:DOCX 页数:53 大小:1.95MB
下载 相关 举报
高速并行结构FFT的FPGA设计.docx_第1页
第1页 / 共53页
高速并行结构FFT的FPGA设计.docx_第2页
第2页 / 共53页
高速并行结构FFT的FPGA设计.docx_第3页
第3页 / 共53页
高速并行结构FFT的FPGA设计.docx_第4页
第4页 / 共53页
高速并行结构FFT的FPGA设计.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

高速并行结构FFT的FPGA设计.docx

《高速并行结构FFT的FPGA设计.docx》由会员分享,可在线阅读,更多相关《高速并行结构FFT的FPGA设计.docx(53页珍藏版)》请在冰豆网上搜索。

高速并行结构FFT的FPGA设计.docx

高速并行结构FFT的FPGA设计

 

EDA设计基础实验课程论文

 

题目高速并行结构FFT的FPGA设计

学院通信与电子工程学院

专业班级电子155班

学生姓名霍守斌

指导教师大力会

 

2013年6月12日

 

摘要

高速FFT在雷达、通信和电子对抗等领域都有广泛应用,在某些场合要求对踩丫不放速率1GHZ以上的数据进行实时处理。

利用FPGA器件的丰富资源采用全并行加流水线FFT算法,可对速率2.9GHZ的采样数据实现实时(数据不堆积)傅里叶变换。

这里采用Xilinx公司的器件来对设计进行编译、综合、布局和布线,也可以采用Altera公司的器件来完成本设计。

在用VHDL编程是可以用IPCoreGen(IP核生成器向导)的方法制定DSP模块生成乘法器,用这种乘法器来做碟形,然后用多个碟形来构成FFT运算级,再将多级串联,即可实现FFT核心运算的全并行流水结构。

关键词:

FPGAVHDL碟形

 

Abstract

SpeedFFTinradar,communicationsandelectronicwarfareandotherfieldshaveawiderangeofapplications,insomecasescalledforsteppedspeed1GHZAhholdmoredatainreal-timeprocessing.TheuseoftherichresourcesoftheFPGAdeviceplusafullyparallelpipelinedFFTalgorithm,canspeed2.9GHZreal-timesamplingdata(datanotstacked)Fouriertransform.Xilinx'sdevicesusedheretocompilethedesign,synthesis,placeandroute,youcanuseAltera'sdevicestocompletethedesign.InVHDLprogrammingcanbeusedIPCoreGen(IPcoregeneratorwizard)methoddevelopedDSPmodulegeneratesmultiplier,multipliertodowiththisdish,andthenusethedisctoformapluralityofFFToperationlevel,thenthemulti-tandem,youcanachievefullparallelFFTcorecomputingpipelinestructure.

Keywords:

FPGAVHDLdish

 

 

第1章 绪论

1.1 研究背景

在现代通信中,提高频谱利用率一直是人们关注的焦点之一。

近几年来,随着通信业务需求的迅速增长,寻找频谱利用率更高的数字调制方式已成为数字通信系统设计、研究的主要目标之一。

为了实现这个目标,通信系统正采用比以前更加复杂的调制信号。

OFDM(正交频分复用)是一种高效的多载波调制技术,其最大的特点是传输速率高,具有很强的抗码间干扰和信道选择性衰落能力,具有非常高的频谱利用率。

OFDM最初用于高速MODEM、数字移动通信和无线调频信道上的宽带数据传输,随着IEEE802.11a协议和多媒体的发展,数字音频广播(DAB)、地面数字视频广播(DVB-T)和高清晰度电视(HDTV)都应用了OFDM技术。

  

OFDM利用离散傅立叶反变换/离散傅立叶变换(IDFT/DFT)代替多载波调制和解调,调制解调的核心是快速傅立叶运算单元,在进行蝴蝶运算时,不可避免的要进行大量的乘法运算。

由于FPGA具有强大的并行处理和计算能力,以及丰富的存储资源和逻辑运算资源,因此在FPGA器件上实现OFDM调制解调结构,具有很好的通用性和灵活性。

 

1.1.1无线通信的发展和现状

现代无线通信技术的发展始于本世纪20年代,经历了早期专用移动通信系统的发展,公用移动通信业务的发展,到1978年底,美国贝尔试验室研制成功先进移动电话系统(AMPS),建成了蜂窝状移动通信网,大大提高了系统容量。

随后投入商用,服务区域在美国逐渐扩大。

其它工业化国家也相继开发出蜂窝式公用移动通信网,这种模拟通信系统被称为第一代移动通信系统。

     

模拟蜂窝网虽然取得了很大成功,但也暴露了一些问题。

例如,频谱利用率低,移动设备复杂,费用较贵,业务种类受限制以及通话易被窃听等,最主要的问题是其容量已不能满足日益增长的移动用户需求。

解决这些问题的方法是开发新一代数字蜂窝移动通信系统。

数字无线传输的频谱利用率高,可大大提高系统容量。

另外,数字网能提供语音、数据多种业务服务,并与ISDN等兼容。

到80年代中期,欧洲首先推出了泛欧数字移动通信网(GSM)的体系。

随后,美国和日本也制定了各自的数字移动通信体制。

可以说,在近十多年内数字蜂窝移动通信迅猛发展,已经成为陆地公用移动通信的主要系统,以GSM为代表的数字移动通信系统被称为第二代移动通信系统。

目前世界范围内存在的数字无线通信系统主要是第二代移动通信系统,包括全

球移动通信系统(GSM)系统、IS-136时分多址复用(TDMA)系统以及IS-95码分多址复用(CDMA)系统。

 

蜂窝移动通信技术将传统的语音业务推向了一个新的高度。

然而随着通过互联网进行的视频、语音和数据通信流量的显著增长,以及移动电话的快速普及,用户更加迫切地希望移动通信系统可以提供移动多媒体业务的接入。

但对于高速数据业务来说,现有无线通信系统所使用的单载波TDMA系统和窄带CDMA系统都存在很大的缺陷。

由于无线信道存在时延扩展,所以通常需要引入均衡器来解决由此所产生的符号间干扰问题。

高速信息流的符号宽度很短, ISI相对会更加严重,这就对单载波TDMA系统中所使用的均衡器提出了非常高的要求,即抽头数量要足够大,训练符号要足够多,训练时间要足够长,而均衡算法的复杂度也会大大增加。

对于窄带CDMA系统来说,其主要问题在于扩频增益与高速数据流之间的矛盾在保证相同带宽的前提下,对高速数据流所使用的扩频增益就不能太高,这样就大大限制了CDMA系统噪声平均的优点,从而使得系统的软容量会受到一定的影响,如果保持原来的扩频增益,则必须要相应的提高带宽。

因此,人们希望通过新的方法来解决高速信息流在无线信道中的传输问题。

  

倍受瞩目的第三代(3G)移动蜂窝系统(UMTS IMT 2000)所设计的数据传输速率可达2Mb/s,而人们对于添加宽带数据业务以支持视频、互联网接入及其他更高速率业务的迫切需求推动了3G系统的发展与部署。

 

尽管3G系统提高了传输速率,满足了目前人们对多媒体的应用,但业界也存在着不同的观点。

这种观点认为目前的第三代移动通信系统的核心网还没有完全脱离第二代移动通信系统的核心网结构,第三代移动通信的方案实际上只能算是第二代移动通信方案的改进,算不上真正意义上的宽带接入网络,所以有理由认为第三代系统仅仅是一个从窄带向未来移动通信系统过渡的阶段。

目前,人们已经把目光越来越多地投向3G以后(Beyond 3G)的移动通信系统,期望它可以容纳庞大的用户数,改善现有通信品质不良的状况以及达到高速数据传输的要求。

若以技术层面来看,3G系统主要是以CDMA为核心技术,B3G系统则以正交频分复用(OFDM)最受瞩目,特别是有不少专家学者针对OFDM技术在移动通信技术上的应用进行了许多相关的理论研究,而且越来越多的通信系统也正在采用OFDM技术。

 

1.1.2OFDM通信技术的发展

正交频分复用(OFDM)是一种多载波数字调制技术,它由多载波调制(MCM)发展而来。

美国军方早在上世纪的50、60年代就创建了世界上第一个MCM系统,

在1970年衍生出采用大规模子载波和频率重叠技术的OFDM系统。

但在以后相当长的一段时间,OFDM理论迈向实践的脚步放缓了。

由于OFDM的各个子载波之间相互正交,采用FFT实现这种调制,但在实际应用中,实时傅立叶变换设备的复杂度、发射机和接收机振荡器的稳定性以及射频功率放大器的线性要求等因素都成为OFDM技术实现的制约条件。

随着DSP芯片技术的发展,大规模集成电路让FFT技术的实现不再是难以逾越的障碍,傅立叶变换/反变换、高速modem采用的64/128/256QAM技术、栅格编码技术、软判决技术、信道自适应技术、插入保护时段、减少均衡计算量等成熟的技术逐步引入到移动通信领域中来,人们开始集中越来越多的精力开发OFDM 技术在移动通信领域的应用,预计第四代移动通信的主流技术也将是OFDM技术。

 

1.1.3可编程器件的发展

可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。

 在这两类可编程逻辑器件中,FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。

自1985年Xilinx公司推出第一片现场可编程逻辑器件(FPGA)至今,FPGA已经历了十几年的发展历史。

在这十几年的发展过程中,以FPGA为代表的数字系统现场集成技术取得了惊人的发展:

现场可编程逻辑器件从最初的1200个可利用门,发展到90年代的25万个可利用门,乃至当新世纪来临之即,国际上现场可编程逻辑器件的著名厂商Altera公司、Xilinx公司又陆续推出了数百万门的单片FPGA芯片,将现场可编程器件的集成度提高到一个新的水平。

对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。

 然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。

 原型中使用的PLD器件与正式生产最终设备(如网络路由器、DSL调制解调器、DVD播放器、或汽车导航系统)时所使用的PLD完全相同。

 这样就缩小了设计成本,最终的设计也比采用定制固定逻辑器件时完成得更快。

FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,使FPGA成为首选。

 

1.2 本文主要内容

OFDM调制系统的调制核心就是快速傅立叶逆变换(IFFT)。

用IFFT实现OFDM调制时,N个子载波自然是正交的,由此避免了由本振产生各子载波调制和解调时导致的子载波频偏。

随着可编程逻辑器件FPGA 的集成度、速度的不断

提高,设计手段日益完善,极大地方便了其使用和推广,研究用FPGA来实现快速傅立叶变换是为在数字信号处理领域中应用FPGA技术奠定基础。

本文内容主要可以分为以下几个部分:

 

第一章介绍了无线通信的发展和现状、OFDM通信技术的发展情况以及可编程器件的发展和应用。

 

第二章从OFDM的基本原理着手,首先介绍了搭建OFDM系统的各种核心技术,包括串并变换、子载波调制等,以及OFDM的DFT实现,然后重点介绍了本文所实现的FFT算法。

 

第三章先对浮点数的定点表示进行了介绍,即如何用整数进行浮点数的相关运算,再对系统的定点分析模型进行讲解,对设计的定点系统进行了仿真分析,并得到最终的实现方案。

 

第四章给出了应用FPGA实现FFT的具体设计,这也是本文的重点。

第1节,讲述了的一些硬件设计的基础包括语言和芯片结构。

在本章第2节,作者根据第二章论述的FFT算法的特点,设计了系统硬件的总体结构。

随后的几节中,详细地给出了总体结构中的各个部件单元的硬件设计。

 

 

第2章 OFDM的基本原理及FFT算法

本章首先对OFDM的基本原理进行介绍,然后介绍了OFDM系统的几种核心技术,包括串并变换、子载波调制等,接着讲述OFDM调制如何用DFT来实现,并详细介绍了本文设计实现的FFT算法。

 

2.1 OFDM的基本原理

正交频分复用(OFDM)技术与已经普遍应用的频分复用技术十分相似。

与普通的频分复用基本原理相同,OFDM把高速的数据流通过串并变换分配到速率相对较低的若干个频率子信道中进行传输,不同的是,OFDM技术更好地利用了控制方法,使频谱利用率有所提高。

 

OFDM是一种特殊的多载波传输方案,它可以被看作是一种调制技术,也可以被当作一种复用技术。

多载波传输把数据流分解成若干子比特流,这样每个子数据流将具有低得多的比特速率,用这样的低比特率形成的低速率多状态符号再去调制相应的子载波,就构成多个低速率符号并行发送的传输系统。

正交频分复用是对多载波调制(MCM, Multi-Carrier Modulation)的一种改进。

它的特点是各子载波相互正交,所以扩频调制后的频谱可以相互重叠,不但减小了子载波间的相互干扰,还大大提高了频谱利用率。

OFDM的最大优点在于该系统能够很好地对抗频率选择性衰落和窄带干扰。

在单载波系统中,一次衰落或者干扰会导致整个链路失效,但是在多载波系统中,某一时刻只会有少部分的子信道受到深衰落的影响。

 

2.1.1 OFDM的产生和发展

OFDM的思想早在20世纪60年代就已经提出,由于使用模拟滤波器实现起来的系统复杂度较高,所以一直没有发展起来。

在20世纪70年代,S.B.Weinstein提出用离散傅里叶变换(DFT)实现多载波调制,为OFDM的实用化奠定了理论基础;在80年代,L.J.Cimini首先分析了OFDM在移动通信应用中存在的问题和解决方法,从此以后,OFDM在移动通信中的应用得到了迅猛的发展。

 

OFDM系统收发机的典型框图如图2.1所示。

发送端将被传输的数字信号转换成载波幅度和相位的映射,并进行离散傅里叶反变换(IDFT)将数据的频谱表达式变换到时域上,IFFT变换与IDFT变换的作用相同,只是有更高的计算效率,所以适用于所有的应用系统。

其中,上半部分对应于发射机链路,下半部分对应于接收机链路。

由于FFT操作类似于IFFT,因此发射机和接收机可以使用同一硬件设备。

当然,这种复杂性的节约则意味着该收发机不能同时进行发送和接收操作。

图2.1OFDM收发机框图

接收端进行与发送端相反的操作,将射频(RF, Radio Frequency)信号与基带信号进行混频处理,并用FFT变换分解频域信号,子载波的幅度和相位被采集出来并转换回数字信号。

IFFT和FFT互为反变换,选择适当的变换将信号接收或发送。

当信号独立于系统时,FFT变换和IFFT变换可以被交替使用。

 

2.1.2串并变换

数据传输的典型形式是串行数据流,符号被连续传输,每一个数据符号的频谱可占据整个可利用的带宽。

但在并行数据传输系统中,许多符号被同时传输,减少了那些在串行系统中出现的问题。

 

在OFDM系统中,每个传输符号速率的大小大约在几十bit/s到几十k bit/s之间,所以必须进行串并变换,将输入串行比特流转换成为可以传输的OFDM符号。

由于调制模式可以自适应调节,所以每个子载波的调制模式是可变化的,因而每个子载波可传输的比特数也是可以变化的,所以串并变换需要分配给每个子载波数据段的长度是不一样的。

在接收端执行相反的过程,从各个子载波处来的数据被转换回原始的串行数据。

 

当一个OFDM符号在多径无线信道中传输时,频率选择性衰落会导致某几组子载波受到相当大的衰减,从而引起比特错误。

这些在信道频率响应上的零点会造成在邻近的子载波上发射的信息受到破坏,导致在每个符号中出现一连串的比特错误。

与一大串错误连续出现的情况相比较,大多数前向纠错编码(FEC, Forward Error Correction)在错误分布均匀的情况下会工作得更有效。

所以,为了提高系统的性能,大多数系统采用数据加扰作为串并转换工作的部分。

这可以通过把每个连续的数据比特随机地分配到各个子载波上来实现。

在接收机端,进行一个对应的逆过程解出信号。

这样,不仅可以还原出数据比特原来的顺序,同时还可以分散由于信道衰落引起的连串的比特错误,使其在时间上近似均匀分布。

这种将比特错误位置的随机化可以提高前向纠错编码FEC的性能,并且系统的总的性能也得到改进。

 

2.1.3子载波调制

一个OFDM符号之内包含多个经过相移键控(PSK)或者正交幅度调制(QAM)的子载波其中,N表示子载波的个数,T表示OFDM符号的持续时间(周期),id (i=0,1,2...,N-1)是分配给每个子信道的数据符号,if是第i个子载波的载波频率,矩形函数rect(t)=1, |t|<=T/2,则从t=ty开始的OFDM符号可以表示为式(2-1):

通常采用等效基带信号来描述OFDM的输出信号,如式(2-2):

其中s(t)的实部和虚部分别对应OFDM符号的同相(In-phase)和正交(Quadrature- phase)分量,在实际系统中可以分别与相应子载波的cos分量和sin分量相乘,构成最终的子信道信号和合成的OFDM符号。

在图2.2中给出了OFDM系统基本模型的框图,其中fi=fc+i/T。

 

在接收端,将接收到的同相和正交矢量映射回数据信息,完成子载波解调。

图2.2OFDM系统基本模型的框图

2.1.4 DFT的实现

傅立叶变换将时域与频域联系在一起,傅立叶变换的形式有几种,选择哪种形式的傅立叶变换由工作的具体环境决定。

大多数信号处理使用DFT。

DFT是常规变换的一种变化形式,其中,信号在时域和频域上均被抽样。

由DFT的定义,时间上波形连续重复,因此导致频域上频谱的连续重复。

快速傅立叶变换(FFT)仅是DFT计算应用的一种快速数学方法,由于其高效性,使OFDM技术发展迅速。

 

对于N比较大的系统来说,式(2-2)中的OFDM复等效基带信号可以采用离散傅立叶逆变换(IDFT)方法来实现。

为了叙述的简洁,可以令式(2-2)中的ts=0,并且忽略矩形函数,对于信号s(t)以T/N的速率进行抽样,即令t=kT/N(k=0,1,…,N-1),则得到式(2-3):

可以看到sk等效为对di进行IDFT运算。

同样在接收端,为了恢复出原始的数据符号di,可以对sk进行逆变换,即DFT得到式(2-4):

根据以上分析可以看到,OFDM系统的调制和解调可以分别由IDFT和DFT来代替。

通过N点的IDFT运算,把频域数据符号id变换为时域数据符号ks,经过射频载波调制之后,发送到无线信道中。

其中每个IDFT输出的数据符号ks都是由所有子载波信号经过叠加而生成的,即对连续的多个经过调制的子载波的叠加信号进行抽样得到的。

 

在OFDM系统的实际运用中,可以采用更加方便快捷的IFFT/FFT。

N点IDFT运算需要实施N2次的复数乘法,而IFFT可以显著地降低运算的复杂度。

对于常用的基-2 IFFT算法来说,其复数乘法次数仅为(N/2)log(N),但是随着子载波个数N的增加,这种方法复杂度也会显著增加。

对于子载波数量非常大的OFDM系统来说,可以进步采用基-4IFFT算法来实施傅立叶变换。

 

 

2.2 FFT算法原理 

2.2.1时域抽取法 

FFT算法基本上分为两大类:

时域抽取法FFT(Decimation—In—Time FFT,简称DIT—FFT)和频域抽取法FFT(Decimation—In—Frequency FFT,简称DIF—FFT)。

下面先介绍DIT—FFT算法。

 

设序列x(n)的长度为N,且满足式(2-5):

图2.3碟形运算符号

这样,就将N点DFT分解为两个N/2点的DFT和(2-11)式以及(2-12)式的运算。

(2-11)式和(2-12)式的运算可用图2.3所示的流图符号表示,根据其形状称之为蝶形运算符号。

采用这种图示法,可将上述分解运算表示于图2.4中,图中,N=23=8,X(0)~X(3)由(2-11)式给出,而X(4)~X(7)则由(2-12)式给出。

 

由图2.3可见,要完成一个蝶形运算,需要一次复数乘和两次复数加法运算。

由图2.4容易看出,经过一次分解后,计算一个N点DFT共需要计算两个N/2点DFT和N/2个蝶形运算。

而计算一个N/2点DFT需要2(N/2)次复数乘和N/2(N/2-1)次复数加法。

由此可见,仅仅经过一次分解,就使运算量减少近一半。

既然这样分解对减少DFT的运算量是有效的,且N=M2,N/2仍然是偶数,故可以对N/2点DFT再作进一步分解。

图2.4一次分解

与第一次分解相同,将x1(r)按奇偶分解成两个N/4长的子序列x3(l)和x4(l),即式(2-13):

那么,1()Xk又可表示为式(2-14):

同理,由x3(k)和x4(k)的周期性和Wn/2m的对称性最后得到式(2-16):

这样,经过第二次分解,又将N/2点DFT分解为两个N/4点DFT和(2-16)式或(2-17)式所示的N/4个蝶形运算,如图2.5所示。

依次类推,经过M-1次分解,最后将N点DFT分解成N/2个2点DFT。

一个完整的8点DIT—FFT运算流图如图2.5所示。

图中输入序列不是顺序排列,但后面会看到,其排列是有规律的。

图2.5二次分解

图2.6三次分解

2.2.2运算规律

为了最终写出DIT—FFT运算程序或设计出硬件实现电路,下面介绍它的运算规律。

     

1、原位计算 

由图可以看出,DIT-FFT的运算过程很有规律。

N2M点的FFT共进行M级运算,每级由N/2个蝶形运算组成。

同一级中,每个蝶形的两个输入数据只对计算本蝶形有用,而且每个蝶形的输入、输出数据结点又同在一条水平线上,这就意味着计算完一个蝶形后,所得输出数据可立即存入原输入数据所占用的存贮单元。

这样,经过M级运算后,原来存放输入序列数据的N个存贮单元中便依次存放X(k)的N个值。

这种利用同一存贮单元存贮蝶形计算输入、输出数据的方法称为原位(址)计算。

原位计算可节省大量内存,从而使设备成本降低。

 

2、旋转因子的变换规律 

如上所述,N点DIT-FFT运算流图中,每级都有N/2个蝶形。

每个蝶形都要乘以因子pNW,称其为旋转因子,p称为旋转因子的指数。

但各级的旋转因子和循环方式都有所不同。

为了编写计算程序,应先找出旋转因子pNW与运算级数的关系。

用L表示从左到右的运算级数(L=1,2,…,M)。

观察图2.6不难发现,第L级共有12L个不同的旋转因子。

 

N=32=8时的各级旋转因子表示如式(2-20):

 

对N=2M的一般情况,第L级的旋转因子为式(2-21) :

3、序列的倒序 

DIT-FFT算法的输入序列的排序看起来似乎很乱,但仔细分析就会发现这种倒序是很有规律的。

由于N=2M,所以顺序数可用M位二进制数(nM-1nM-2……n1n2)表示。

M次偶奇时域抽选过程如图2.7所示。

 

图2.7时域抽选过程

第一次按最低位0n的0和1将x(n)分解为偶奇两组,第二次又按次低位1n的0、l值分别对偶奇组分解;依次类推,第M次按1Mn位分解,最后所得二进制倒序数如表2.1所示。

 

表2.1二进制倒序数

 

表2.1列出了N=8时以二进制数表示的顺序数和倒序数,由表显而易见,只要将顺序数(210nnn)的二进制位倒置,则得对应的二进制倒序值(012nnn)。

按这一规律,用硬件电路和汇编语言程序产生倒序数很容易。

由表2.1可见,自然顺序数I增加1,是在顺序数的二进制数最低位加1,向左进位。

而倒序数则是在M位二进制数最高位加1,逢2向右进位。

例如,在(000)最高位加1,则得(100),而(100)最高位为1,所以最高位加1要向次高位进位,其实质是将最高位变为0,再在次高位加1。

用这种算法,可以从当前任一倒序值求得下一个倒序值。

 

4、按时域抽取流图地址产生规

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1