OFDM802.11a的FPGA实现(十二)使用FFT IP核添加循环前缀

原文链接(相关文章合集):OFDM 802.11a的xilinx FPGA实现

目录

  • 1.前言
  • 2.循环前缀
  • 3.硬件实现
  • 4.ModelSim仿真

1.前言

  为了能够消除传输过程当中的符号间干扰,在IFFT处理完毕之后还要加上循环前缀。

2.循环前缀

  实际通信信道中,由于接收到的信号是来自不同传播路径的信号之和,因此会产生多径效应,引起严重的符号干扰(Intersymbol Interference,IS)和信道间干扰(Inter Channel Interference,ICI),限制了信息传输速率的提高。传统方法是使用时域自适应均衡技术来解决多径衰落的问题。但是自适应均衡器的设计、实现、调试往往成为通信系统研制的瓶颈,而且随着传输带宽的不断增加,复杂度和成本也会不断增加。

  OFDM 技术可以有效地对抗多径时延扩展。为了最大程度地消除ISI,需要在每个相邻的 OFDM 符号之间插人保护间隔(guard interval,GI),只要该保护间隔的长度 T g T_g Tg大于无线信道的最大时延扩展.,那么该符号的多径分量就不会对下一符号造成干扰。这段保护间隔可以不插入任何信号,传输一段空闲的时段。但这种情况下,可能会产生载波间的干扰(ICI),即子载波之间的正交性遭到破坏,不同的子载波之间产生干扰,如下图所示。

空闲保护间隔再多径情况下的影响

  上图中给出了一个带有空闲保护间隔的OFDM符号的第一子载波和第二子载波的延时信号。从图中可以看到,由于在一个FFT运算时间长度内,第一子载波与带有时延的第二子载波之间的周期个数之差不是整数,所以当接收机试图对第一个子载波进行解调时,第二子载波会对此造成干扰。同样,当接收机对第二子载波进行解调时,也会存在来自第一子载波的干扰。

  为了消除由于多径造成的ICI,可以在OFDM符号的保护间隔内填入循环前缀信号(CyclicPrefix,CP),即将每个OFDM符号的后 T g T_g Tg时间中的样值复制到OFDM符号前面以形成前缀,如下图所示。

加入循环前缀后的()FDM符号

  这样就可以保证在一个FFT周期内,OFDM符号的时延副本内所包含的波形周期个数也是整数。这样,时延小于保护间隔 T g T_g Tg的时延信号就不会在解调过程中产生ICI。OFDM系统具体实现中,在计算出快速傅立叶逆变换样值之后,一个循环前缀被加到样值前,形成一个循环拓展的OFDM符号,如下图所示。

循环前缀示意图

  添加循环前缀技术利用的是离散线性系统原理中的一个概念。在连续时间域,两个时域信号的卷积等于这两个信号频域形式的乘积。但是,这在离散时域的情况下一般是不成立的。因为只能使用有限个值点N,所以只能利用循环前缀体OFDM符号在感兴趣的时间区内呈现周期性。在信息传输过程中,信道的冲击响应对时域信号造成干扰。由于循环前缀使所传输的OFDM信号表现出周期性,这种卷积就成了一种圆周卷积。根据离散时间线性系统原理这种圆周卷积相当于OFDM信号的频率响应和信道频率响应的乘积。

3.硬件实现

  上一节详细讲解了IFFT的实现,其中用到了Xilinx的FFT IP核,其实这个IP核是可以通过配置来实现添加循环前缀的。打开FFT IP核勾选下图中的Cyclic Prefix insertion,特别注意只有当选择自然顺序输出时才可以勾选。

  配置字段按以下顺序打包到s_axis_config_tdata向量中(从LSB开始):

  1. (optional) NFFT plus padding
  2. (optional) CP_LEN plus padding
  3. FWD/INV
  4. (optional) SCALE_SCH
      如下图所示:

配置通道TDATA(s_axis_config_tdata)格式

  可选字段显示为虚线。请注意,s_axis_config_tdata的总线宽度可能超过容纳所有字段(包括SCALE_SCH)所需的宽度,即使SCALE_SCH字段被填充以确保宽度是8位的倍数。额外的位未被使用,因此它们将在合成期间被优化掉。

  由OFDM的符号长度可以知道,一个OFDM的保护间隔为0.8us,因此只需要将一个OFDM符号有效数据的末尾的1/4,即后16个数据进行复制放到最前面,即可完成循环前缀的添加。所以将CP_LEN设置为16即可。在IP核配置界面的左上角,点击Implementation Details,如下图所示:

Implementation Details

  可以查看FFT IP核的一些参数信息,此配置下s_axis_config_tdata包含三个字段,如下图所示:

s_axis_config_tdata

  可以看到CP_LEN位于最低的6bit,我们令其等于6’b010000;修改上节所示代码(链接)中的s_axis_config_tdata的值,如下:

assign	s_axis_config_tdata	= 16'b0_101110_0_00_010000;

4.ModelSim仿真

  仿真效果如下,从下标48后的16个数据被复制到了最前面。

原文链接(相关文章合集):OFDM 802.11a的xilinx FPGA实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习设计模式之单例模式

一、单例模式简介 一个类只能有一个实例,提供该实例的全局访问点; 二、单例模式实现步骤 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返…

【计算机网络】物理层 通信基础、奈氏准则、香农公式 习题2

下列说法中正确的是( )。 A. 信道与通信电路类似,一条可通信的电路往往包含一个信道 B.调制是指把模拟数据转换为数字信号的过程 C. 信息传输速率是指通信信道上每秒传输的码元数 D.在数值上,波特率等于比特率与每符号所含的比特数的比值 信息传输速率&a…

65-CPLD电路设计(安路为例)

视频链接 CPLD电路设计(安路为例)01_哔哩哔哩_bilibili CPLD电路设计(以安路为例) 浅谈板级电源设计的三种方法_哔哩哔哩_bilibili 参考【浅谈板级电源设计的三种方法】 FPGA板级硬件实战S1~7课 实战Power2-电…

^_^填坑备忘^_^C#自动化编程实现STK+Exata对卫星互联网星座进行网络仿真

C#实际选择 STK11版本 or STK12版本的问题备注。 【C#自动化客户端调用STK时,实际选择 STK11版本 or STK12版本 的调试运行备注】 以下代码“更新并重新打包备份为”〔testSTKQualNetInterface备份08.1_★避坑★【种子卫星:天线直接安装在卫星上&#…

centos7.9系统安全加固

1、限制用户登陆 vim /etc/hosts.deny,若禁止192.168.0.158对服务器进行ssh的登陆,添加如下内容 sshd : 192.168.0.158 添加完毕后就生效了,直接用192.168.0.158访问主机,就无法连接了,显示 Connection closing...Soc…

系统需求开发和管理指南(软件标准文件Word)

1.需求获取的方式 2.需求分析的准则 3.需求分析的方法 4.需求开发考虑的方面 5.需求确认的方法 6.需求优先级的设定 7.需求文档编制规范要求 软件全文档获取方式一:本文末个人名片直接获取。 软件全文档获取二:软件项目开发全套文档下载_软件项目文档-C…

Xilinx FPGA底层逻辑资源简介(1):关于LC,CLB,SLICE,LUT,FF的概念

LC:Logic Cell 逻辑单元 Logic Cell是Xilinx定义的一种标准,用于定义不同系列器件的大小。对于7系列芯片,通常在名字中就已经体现了LC的大小,在UG474中原话为: 对于7a75t芯片,LC的大小为75K,6输…

VPN方案和特点

VPN方案和特点 VPN,或者称为虚拟专用网络,是一种保护你的在线安全和隐私的技术。它可以创建一个加密的连接,使你的在线活动对其他人不可见。以下是一些常见的VPN协议和它们的特点: 开放VPN (OpenVPN):这是一种极为可…

阿里云和AWS负载均衡服务对比分析

在云计算时代,负载均衡作为一种关键的网络基础设施,承担着在多个服务器之间分发网络流量的重要任务。作为全球两大主要的云服务提供商,阿里云和Amazon Web Services(AWS)都提供了强大的负载均衡解决方案。本文将从性能、功能、可用性和成本等方面对两者进行对比分析。我们九河云…

600/天,海外项目值班,接不接?

朋友介绍了一个海外项目,广告系统短期维护,刚上线需要维护14天也就是2个星期,费用单价600/天,主要工作内容:北京晚上12点-早上8点值班,如果有问题及时响应并修复。 如果我年轻10岁,这个项目我倒…

【牛客】SQL202 找出所有员工当前薪水salary情况

1、描述 有一个薪水表,salaries简况如下: 请你找出所有员工具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示,以上例子输出如下: 2、题目建表 drop table if exists salaries ; CREATE TABLE sala…

【全开源】Java知识付费教育付费资源付费平台公众号小程序源码

特色功能: 多样化的内容呈现:资源付费平台小程序支持图文、音视频、直播等多种形式的内容呈现,为用户提供了丰富的学习体验。直播课程:专家或讲师可以通过小程序进行在线授课,与用户实时互动,增强了学习的…

【Linux】AlmaLinux 9.4版本发布

AlmaLinux 9.4 正式版发布,该版本基于 Redhat Enterprise 9.4,内核版本号: 5.14.0-427.13.1.el9_4.x86_64 相对于Rocky Linux, AlmaLinux更加的稳定,生产环境建议使用AlmaLinux来替代CentOS 7.x AlmaLinux 9.4版本系统…

【Python-爬虫】

Python-爬虫 ■ 爬虫分类■ 1. 通用网络爬虫:(搜索引擎使用,遵守robots协议)■ robots协议(君子协议) ■ 2. 聚集网络爬虫:自己写的爬虫程序 ■ urllib.request(要导入的模块&#x…

风丘方案助力车企升级 解决“国六”标准新难题

一 背景 尾气排放指标是衡量汽车质量和品质的主要指标之一,且汽车的尾气排放必须达到相应的标准才准许出厂,因此,对汽车排放的尾气进行检测是汽车生产过程的重要环节。汽车尾气检测过程是在排放实验室里进行的,这需要模拟汽车实际…

非接触式IC卡简介

简介:非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分。是世界上最近几年发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束了无源(卡中无电源)和免接触这一难题,是电…

Docker需要代理下载镜像

systemctl status docker查看docker的状态和配置文件是/usr/lib/systemd/system/docker.service vi /usr/lib/systemd/system/docker.service, 增加如下配置项 [Service] Environment"HTTP_PROXYhttp://proxy.example.com:8080" "HTTPS_PROXYhttp:…

动手学深度学习17 使用和购买gpu

动手学深度学习16 Pytorch神经网络基础) 5. GPUcolabNVIDIA GPUQA显存 5. GPU 课件: https://zh-v2.d2l.ai/chapter_deep-learning-computation/use-gpu.html 有GPU装cuda。 把模型参数放到指定设备上。 # 5.6. GPU # !nvidia-smi # 在命令行中&…

验证搜索二叉树

目录 题目 方法一 思路 优化 方法二 思维误区 递归关系推导 代码实现 题目 98. 验证二叉搜索树 难度:中等 给你一个二叉树的根节点root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含…

家电无缝连接的奥秘—通过酷开系统实现智能家居互联互通

智能家居是消费升级与技术升级的共同产物,是时代发展的必然结果,日渐深入人心也是大势所趋。酷开科技智慧AI,让智慧家居成为生活中的一部分,以酷开系统为中心,实现家庭内智能家居的连接,并可通过酷开系统进…