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,一经查实,立即删除!

相关文章

【QEMU系统分析之实例篇(二十九)】

系列文章目录 第二十九章 QEMU系统仿真的机器创建分析实例 文章目录 系列文章目录第二十九章 QEMU系统仿真的机器创建分析实例 前言一、QEMU是什么?二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2. 将当前机器配置导出到文件qmp_x_exit_preconfig()qe…

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

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

【OpenGauss源码学习 —— (ALTER TABLE(ExecRewriteCStoreTable))】

ALTER TABLE(ExecRewriteCStoreTable) 概述ExecRewriteCStoreTable 函数ATCStoreRewriteTable 函数ATCStoreGetRewriteAttrs 函数ChangeTableSpaceForDeltaRelation 函数ATOnlyCheckCStoreTable 函数 声明:本文的部分内容参考了他人的文章。在…

JavaScript与Nest.js:打造高性能的服务器端应用

JavaScript与Nest.js:打造高性能的服务器端应用 在现代Web开发的广阔天地里,JavaScript已经不再局限于浏览器的疆域,而是凭借Node.js的强大力量,向服务器端领域大步迈进。Nest.js,一个基于Node.js的渐进式框架&#x…

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

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

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

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

一次基类类型对象无法被传递问题的分析

看下面一段代码&#xff1a; // proj2.cpp #include <iostream> using namespace std; class CharShape { public:CharShape(char ch) : _ch(ch) {};virtual void Show() 0; protected:char _ch; // 组成图形的字符 }; class Triangle : public CharShape { public:Tr…

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

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

自贡在线教育系统报价,报班、网课还是自学怎么选择呢?

现在的教育模式已经不局限于传统的教育模式了&#xff0c;教育模式已经有很多模式&#xff0c;有各种辅导班、网课课程&#xff0c;很多人都在想报班好还是选网课&#xff0c;或者自学呢&#xff1f; 自学&#xff1a;成本最低&#xff0c;效率因人而异。只需要花上百把块钱买教…

1.下午试题1

1.15分 拿到10分之上 前三个问 12分 最后一个3分 前三个都是固定的题目 2.写出实体名称 写出数据存储问题 补充数据流起点与终点 3.数据流图 也称为数据流程图 Data Flow Diagram DFD 4.分为外部实体Entity 加工Process 数据存储Data Store 数据流 5.外部实体 当前系统之外的 人…

centos7.9系统安全加固

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

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

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

相机3:曝光三要素之光圈与快门

背景介绍 曝光三要素&#xff1a;光圈&#xff0c;快门&#xff0c;感光度 光圈&#xff1a; 光圈数值越小&#xff0c;画面清晰范围越少&#xff0c;画面背景虚化越明显&#xff1b; 光圈数值越大&#xff0c;画面清晰范围越多&#xff0c;背景虚化越不明显。 快门&#xff1a…

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

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

VPN方案和特点

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

利用Spring Boot与Redisson实时排行榜功能

在现代的Web应用程序中&#xff0c;排行榜功能是常见且重要的需求之一。它可以用于展示热门内容、评选优秀用户等场景。 本文将介绍如何利用Spring Boot和Redisson实现排行榜功能&#xff0c;让你的应用程序更具吸引力和竞争力。 1. 概述 排行榜功能通常涉及到大量的数据计算…

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

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

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

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

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

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

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

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