DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1686|回复: 0
打印 上一主题 下一主题

[待整理] 认知无线电中的宽带频谱感知技术的FPGA实现

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-28 14:54:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
           
  •                 项目背景
          项目名称:认知无线电中的宽带频谱感知技术的FPGA实现
           
          项目背景:随着无线通信技术的飞速发展,无线用户的数量急剧增加,可用频谱资源变得越来越稀缺。当前的绝大多数频谱资源都是采用固定的分配模式,由专门的频率管理部门分配特定的授权频段以供不同的通信业务使用。而对于工作在非授权频段的通信业务,由于近年来发展迅速,导致非授权频段日趋饱和。认知无线电技术则解决了上述矛盾,它能自动检测周围的环境情况,智能调整自身参数,在不对授权频段造成干扰的情况下,检测频谱空洞并利用空闲频段进行通信。以往的频谱检测大都是基于窄带的检测,极少对宽带频谱进行检测,也没有考虑噪声不确定度对能量检测的影响。 窄带检测一次只能检测一个信道,大大削弱了频谱感知的效率,不利于频谱利用率的提高。例如,某一时刻检测到某一信道被使用,CR用户不能使用该信道,但是还有大量的空闲信道,由于一次只能检测一个信道,导致了CR用户不能使用该信道。而我们本项目中提出的宽带频谱检测,一次能够检测多个信道,这样就解决了以往窄带频谱检测的局限性,使问题迎刃而解。能量检测简单易行且可以实现盲感知而被广泛采用。能量检测的决策门限依赖于环境噪声的功率,理想的能量检测往往认为噪声功率是已知的,而实际环境中,噪声功率是时变的,即噪声具有不确定性,导致了能量检测性能的降低。项目中我们将设计克服噪声不确定度的算法模块,并用FPGA实现。
           
          项目内容
          本项目主要研究认知无线电宽带频谱感知技术的FPGA实现,采用认知无线电中最常用的检测方法—能量检测。首先对输入信号进行抗混叠滤波,再进行A/D采样得到一组数字信号,然后进行64点高速并行流水线FFT运算,进一步对运算的输出的幅频信号进行求模平方运算,求得每个频段内信号的功率,再对16个历史功率数据求均值,最后执行克服噪声不确定度算法对噪声方差变化进行补偿,从而判断频带的利用情况以选择频谱空洞进行通信。
           
          项目目标:本项目旨在设计实现一个既能实现宽带频谱感知而又能克服噪声不确定度的实用性宽带频谱感知实现平台。
           
          项目难点:如何设计高度优化的并行流水线64点FFT算法和高速低延时的排序算法是设计的关键。
           
          项目的开发意义: 认知无线电宽带频谱检测技术的FPGA实现克服了噪声不确定度对能量检测的影响,解决了以前窄带检测效率较低、宽带检测性能较差的问题,使宽带频谱检测技术真正达到实用化。
           
          开发平台:Spartan-6
           

           
  •                 项目系统方案
          根据项目内容,我们设计项目方案主要包含:

           
  •                 项目总体框架        
  •                 能量检测模块

           
  •                 能量检测算法        
  •                 能量检测FFT设计模块
          1) 高度优化复数乘法器设计
          2) 基四蝶形单元设计
          3) 16点FFT的流水线实现

           
  •                                          克服噪声不确定度算法模块


           
  •                 FCME算法        
  •                 排序算法模块实现        
  •                 比较模块实现
           
          下面详细介绍项目各模块具体设计
          (一) 项目总体框架
       

        图一 总体框架框图

           
          项目有两个核心模块:能量检测模块和克服噪声不确定度模块。系统主控负责各模块的时序控制。
           
          (二) 能量检测模块
           
  •                 能量检测算法
          能量检测原理:能量检测的出发点是信号加噪声的能量大于噪声的能量。首先设定一个门限,然后在一定频带范围内作能量积累,如果积累的能量高于门限,则说明有信号存在,如果低于门限,则说明仅有噪声。直接对时域信号采样求模,然后平方累积求和就可以得到能量检测统计量Y(利用FFT转换到频域,然后对频域信号求模平方也可以得到)。下图为能量检测框图:
           
       

        图二 能量检测实现框图

        首先对输入信号进行抗混叠滤波,再进行A/D采样得到一组数字信号,然后进行64点高速并行流水线FFT运算,然后取平方求得检测统计量Y即相应频段上的总能量,与设定的门限值进行比较,判断频谱利用情况。以前的频谱检测都是基于窄带(窄带指的就是所测的频段的带宽较小)的检测,一次只能检测一个信道,检测效率低。而本项目中,我们要实现的是宽带检测,一次能够检测多个信道,提高了检测性能,也有效地克服了噪声不确定度的影响。
           
          假设某信号传输需要2M带宽,对于32信道就需要64M带宽,根据采样定理可知A/D采样频率至少应为128M。这就要求我们设计的64点FFT运算要在0.5μs的时间内完成,为了满足高速性能,我们采用并行流水线FFT设计,能够达到较高的时钟频率,更好的满足实时处理的要求。
           
           
  •                 能量检测FFT设计模块
          FFT内核在FPGA中已经包括,但是效率不高。为了满足实时处理的要求,在这里我们自己设计了一个高度并行的、纯流水线的64点基四FFT。
       

        图三64点FFT模块图

         

          由上图我们可以看出,64点FFT我们可以调用16点FFT,16点FFT调用基四蝶形完成运算。基四蝶形运算单元的核心运算为加法和复数乘法,加法运算我们采用的是超前进位加法,运算速度较快。下面我们讨论高度优化复数乘法器设计
           
          2.1高度优化复数乘法器设计
          http://www.eefocus.com/sensor/336432/file:///C:UsersADMINI~1AppDataLocalTempmsohtmlclip1\01clip_image008.gif
          复乘的公式
          下图为复数乘法器的并行实现框图:乘法器为自己设计的8位输入,16位输出。图中A+aj和B+bj为两个设计输入, 为输出的实部, 为输出的虚部。共需两级流水。
       

        图四 复数乘法器

         

          由于采用并行流水线FFT设计需要大量的slice,为了保证时钟频率达到要求的情况下最大可能的减少硬件开销,我们对复数乘法器中的旋转因子做了优化处理。
           
          实际操作中,我们发现我们可以对复乘的公式做出相应的变形推导处理,可以看出其节约了乘法器的个数,而我们知道乘法器占用硬件面积较大,而当FFT点数较大的时候会节省较多的资源。而当FFT点数确定时, 旋转因子http://www.eefocus.com/sensor/336432/file:///C:UsersADMINI~1AppDataLocalTempmsohtmlclip1\01clip_image016.gif可以根据其周期性,对称性和欧拉公式做出相应变形,减少运算所需乘法器个数,节省了较大的硬件资源。
           
            2.2基四蝶形单元设计
          由基四FFT运算原理可得:x(n)为一长度为M的有限长序列定义x(n)的N点离散傅里叶变换为
         
          令:
          则:
         
           
           
          令 ,即
         
       
           
       

        图五 基四FFT基本信号流图

         

          2.3 16点FFT的流水线实现
          16点FFT是64点FFT的重要部分,以下为16点FFT的流水线实现图。为了保证在满足系统时钟频率要求的情况下,最大可能的减少硬件开销,我们利用旋转因子http://www.eefocus.com/sensor/336432/file:///C:UsersADMINI~1AppDataLocalTempmsohtmlclip1\01clip_image048.gif的周期性和对称性对16点FFT进行了乘法器和旋转因子的优化,节约了较多的slice。
       

        图六16点FFT的流水线实现图

        (三)克服噪声不确定度算法模块
           
  •                 噪声不确定度对检测性能的影响
          能量检测能实现盲感知且实现简单而被广泛采用。然而能量检测的性能依赖于估计的噪声功率值,这样即使一个非常小的噪声功率估计偏差都会造成能量检测性能的急剧下降。因此能量我们不仅要进行能量检测,而且要克服噪声不确定度的影响。
           
          能量检测具有两个重要性能指标:
          虚警概率Pf ,假设环境中仅有噪声,检测系统确检测到信号存在的概率。
          检测概率Pd,假设环境中存在信号,检测系统检测到信号存在的概率。
          在认知无线电系统中,高的虚警概率会导致低的频谱利用率。在加性高斯白噪声信道(简称AWGN信道)下,虚警概率和检测概率的表达式如下:
           
       

          在这里假定噪声为加性高斯白噪声,功率为 ,采样点数为M,信号功率为P
          观察上述两个性能指标的公式,我们也可以看到虚警和检测概率功率与噪声功率的大小密切相关。因此噪声不确定度(噪声功率随时间而变化)严重影响能量检测的性能。
       

        图七 能量检测性能曲线

         

          在信号噪声功率比为5dB,采样点数为M为200时,我们观察能量检测性能曲线发现,随着噪声不确定度的漏警概率(Pm=1- Pd )迅速增大,特别是噪声不确定为2dB时的能量检测性能与理想能量检测(噪声不确定度为0dB)相差极大, 如虚警概率为0.1时, 理想能量检测的漏检概率为0.06,而噪声不确定度为2dB时的漏检概率为0.6,性能降低了一个数量级。因此克服噪声不确定度是能量检测可以广泛应用的关键技术
           
          常见的噪声不确定度的算法有FCME算法、多天线技术和特征值技术等,但是后两者实现起来非常困难。而FCME算法不仅实现起来比较简单,而且性能较好。
           
           
  •                 FCME算法
          FCME算法可以有效的克服噪声不确定度。它的中心思想就是利用多信道中已经存在的空闲信道,提取噪声信息,确定噪声的功率,自适应提取门限,确定被占用信道,大大提高了检测性能。
           
          FCME算法有很多优点:
          1)采用能量检测,实现简单。
          2)能有效克服噪声不确定度的影响,提高检测的可靠性。
          3)采用快速高效的排序,提高检测效率。
          4)信道化检测,实现宽带感知。
          FCME算法原理 为信道的能量,并以升序排列,其中N是信道数目。假设前I个能量最小的信道仅包含噪声。FCME算法就从 开始执行检测公式
                              
          如果公式成立, 所在信道均包含信号,算法停止运算。否则,K增加1继续检测直到算法成立。其中Tk 是与虚警概率相关的比例因子。
           
          基于算法原理,我们在这里做了模拟仿真,设定信道数N为32,I为8,采样点数M为5。仿真结果如下图八:
       

        图八 FCME性能曲线

         

          可以观察到,FCME算法的性能与理想能量检测的性能十分接近,有效的克服了噪声不确定的影响。其算法实现框图如下:
           
       

        图九FCME算法实现框图

         

          求得每个信道的能量,然后对能量进行升序排列,设定I值,执行FCME比较。可以看出,高速低延时的排序算法是FCME算法的核心部分。
         
           
  •                 排序算法模块实现
          排序算法是FCME算法的核心部分,高速有效的排序是FCME算法执行的关键技术。在这里我们提出了改进的排序方案,来提高排序系统的速度。因为我们设计的系统框架是通过流水线方式实现的,为了提高时钟速度,我们采用一种新的方案,该方案可以有效地提高速度性能,让排序的平均时间算法复杂度为O(N),排列n个数据需要n个时钟周期,比传统的那些排序算法更有效,而且结构简单易于实现。
           
          该并行排序机制示意图是如下图所示,整个处理单元,它可以用N个时钟周期排列N个数据,D触发器来执行产生的N个周期必要的数据存储和传送, N级级联子模的包括比较器,与非门,D触发器,多路复用器。其中n表示第n子模块,n = 1,..N,输入数据,使能信号。输入数据是串行的,整个排序算法如下:
           
       

        图十 排序算法实现图

         

          首先,所有的D触发器初始化为最小值。输入数据与队列子模块中D触发器的输出数据进行比较,决定是否使能对应子模块的D触发器。由多路复用器选择数据插入到那一级子模块,同时后面子模块中的数据,依次移入下一级子模块,前面子模块的数据不变。 重复n次使n个数据全部插入其中,从而得到有序的队列。
           
           
  •                 比较模块实现
          基于公式(3),我们看出,FCME算法的实现还需要一个比较电路,比较Q(K+1)与前k项的Q(i)和的大小。设计的比较模块如下:
           
       

        图十一 FCME比较模块

         

          控制电路提供一个初值控制FIFO读取k个信道的能量值,然后通过一个加法电路进行能量求和,将前k个信道的能量和与第k+1个信道能量通过一个比较器进行大小比较。若前者大于后者,说明第k+1个信道为空闲信道,否则继续由控制电路将k值加1,继续进行比较。
           

           
  •                 项目小结
          在认知无线电网络中,频谱检测的本质是由认知用户来判断某信道中是否存在授权用户,从而找到可以利用的频谱空穴。同时,认知用户需要通过频谱检测判断授权用户的再次出现,并进行避让,以避免或降低对授权用户的干扰。宽带频谱感知的FPGA实现将解决窄带检测检测效率较低的问题,克服噪声不确定度对检测性能的影响,使宽带频谱检测技术实用化。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 01:56 , 耗时 0.099213 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表