OFDM系统仿真

server/2025/2/2 14:27:31/

1️⃣ OFDM的原理

1.1 介绍

OFDM是一种多载波调制技术,将输入数据分配到多个子载波上,每个子载波上可以独立使用 QAM、PSK 等传统调制技术进行调制。这些子载波之间互相正交,从而可以有效利用频谱并减少干扰。

1.2 OFDM的核心

  1. 多载波调制
    高速数据流被拆分成多个并行的低速数据流,每个低速数据流被分配到正交的子载波上
  2. 子载波正交性
    子载波的正交性是OFDM的核心,正交性保证了不同子载波之间不会相互干扰
  3. 使用FFT/IFFT的实现
    OFDM使用IFFT生成正交的子载波信号,而在接收端通过FFT恢复频域信号

1.3 OFDM系统架构

在这里插入图片描述

以MQAM调制为例,假设OFDM系统的输入信号是串行的二进制码元,每个二进制码元的持续时间为 T b T_\mathrm{b} Tb

分帧:首先,将输入信号分帧,每一帧包含F个二进制码元,即包含F比特。

分组:然后针对每一帧来说,每帧都会再进一步分组,即把F个二进制码元分成N组,每组中的比特数可以不同。例如,第 i i i组包含的比特数是 b i b_i bi

码元转换:将每组中的 b i b_i bi个比特看作一个 M i M_i Mi进制的码元 B i B_i Bi b i b_i bi M i M_i Mi的关系是 b i = l o g 2 M i b_i=log_2M_i bi=log2Mi

串并转换:此步骤将串行的N个码元 B i B_i Bi变成N路并行码元 B i B_i Bi。并行码元的持续时间相同,都是 T B = F ⋅ T b T_B=F·T_b TB=FTb

在这里插入图片描述

映射:在MQAM调制中,一个并行码元 B i B_i Bi可以用平面上的一个点表示,将 M i M_i Mi进制的码元 B i B_i Bi变成一一对应的复数 B i \boldsymbol{B_i} Bi的过程称为映射过程。例如 B i B_i Bi包含4bit “1100”,那就是16进制码元,进行的是16QAM调制,假设星座图如下图所示,则其相位为45°,振幅为 A / 2 A/\sqrt{2} A/2 。此映射过程将“1100”映射为复数形式 B i = ( A / 2 ) e j π / 4 \boldsymbol{B_i}=(A/\sqrt{2})e^{j\pi/4} Bi=(A/2 )e/4

在这里插入图片描述
调制:N路并行码元 B i B_i Bi对N个子载波进行不同的MQAM调制。由于各个并行码元 B i B_i Bi包含比特数不同,所以调制方式不同,举个例子,若并行码元 B i B_i Bi包含4bit,那就是16QAM调制;包含8bit就是64QAM调制

IDFT:使用IDFT实现正交频分复用

  • 最低子载波频率设定:为了用IDFT实现OFDM,先将OFDM的最低子载波频率设定为0。这是为了满足IDFT公式: s ( k ) = 1 K ∑ n = 0 K − 1 S ( n ) e j ( 2 π / K ) n k , k = 0 , 1 , 2 , ⋯ , K − 1 s(k)=\frac{1}{\sqrt{K}} \sum_{n=0}^{K-1} \boldsymbol{S}(n) \mathrm{e}^{\mathrm{j}(2 \pi / K) n k} \quad ,k=0,1,2, \cdots, K-1 s(k)=K 1n=0K1S(n)ej(2π/K)nk,k=0,1,2,,K1在n=0时,其右端第一项的指数因子等于1的条件,方便后续数学运算和信号处理。

  • IDFT项数设定与等效复码元序列生成:假设IDFT的项数为K,设置K=2N,即IDFT的项数等于子信道数目N的2倍。根据下述共轭对称性条件:

    若信号的时域函数 s ( k ) s(k) s(k) 是实函数,则其 K K K 点 DFT 的值 S ( n ) \boldsymbol{S}(n) S(n) 一定满足对称性条件: S ( K − k ) = S ∗ ( k ) k = 0 , 1 , 2 , ⋯ , K − 1 \boldsymbol{S}(K-k)=\boldsymbol{S}^*(k) \quad k=0,1,2, \cdots, K-1 S(Kk)=S(k)k=0,1,2,,K1式中: S ∗ ( k ) \boldsymbol{S}^*(k) S(k) S ( k ) \boldsymbol{S}(k) S(k) 的复共轭。

    从N个并行复数码元序列 { B i } \left\{\boldsymbol{B_i}\right\} {Bi} i = 0 , 1 , ⋯ , N − 1 ) i=0,1, \cdots, N-1) i=0,1,,N1) 生成 K = 2 N K=2 N K=2N 【将 IDFT 项数设为2N】个等效复数码元序列 { B n ′ } ( \left\{\boldsymbol{B_n}^{\prime}\right\}( {Bn}( n = 0 , 1 , ⋯ , 2 N − 1 ) n=0,1, \cdots, 2 N-1) n=0,1,,2N1),具体规则如下:
    ① 当 n = 1 , 2 , ⋯ , N − 1 n=1,2, \cdots, N-1 n=1,2,,N1 时, B K − n − 1 ′ = B n ∗ ( B n ∗ \boldsymbol{B}_{K-n-1}^{\prime}=\boldsymbol{B}_n^* \quad\left(B_n^*\right. BKn1=Bn(Bn B n B_n Bn 的共轭复数)。
    ② 当 n = N , N + 1 , ⋯ , 2 N − 2 n=N, N+1, \cdots, 2 N-2 n=N,N+1,,2N2 时, B K − n − 1 ′ = B K − n − 1 \boldsymbol{B}_{K-n-1}^{\prime}=\boldsymbol{B}_{K-n-1} BKn1=BKn1
    B 0 ′ = Re ⁡ ( B 0 ) \boldsymbol{B}_0^{\prime}=\operatorname{Re}\left(B_0\right) B0=Re(B0) ,即取 B 0 \boldsymbol{B}_0 B0 的实部。
    B K − 1 ′ = B 2 N − 1 ′ = Im ⁡ ( B 0 ) \boldsymbol{B}_{K-1}^{\prime}=\boldsymbol{B}_{2 N-1}^{\prime}=\operatorname{Im}\left(\boldsymbol{B}_0\right) BK1=B2N1=Im(B0) ,即取 B 0 \boldsymbol{B}_0 B0 的虚部。

    补充:为什么一定要K=2N?
    OFDM 系统最终需要生成实值的时域信号进行传输(实信号在实际硬件中更易处理和传输)。IDFT 具有这样的特性:当频域序列满足一定的共轭对称性质时,经过 IDFT 变换后得到的时域序列是实值的。通过将 IDFT 项数设为 2 N 2 N 2N ,可以利用这一性质,通过对 N N N 个并行复数码元序列构建出具有共轭对称性质的 2 N 2 N 2N 个等效复数码元序列(如前面提到的通过特定的对称规则生成),从而确保经过 IDFT 后得到实值的时域信号。

  • OFDM信号的离散形式:将生成的新码元序列 { B n ′ } \left\{\boldsymbol{B}_n^{\prime}\right\} {Bn} 作为频域信号代入IDFT公式,得到时域离散信号:
    e ( k ) = 1 K ∑ n = 0 K − 1 B n ′ e j ( 2 π / K ) n k ( k = 0 , 1 , ⋯ , K − 1 ) e(k)=\frac{1}{\sqrt{K}} \sum_{n=0}^{K-1} \boldsymbol{B}_n^{\prime} \mathrm{e}^{\mathrm{j}(2 \pi / K) n k} \quad(k=0,1, \cdots, K-1) e(k)=K 1n=0K1Bnej(2π/K)nk(k=0,1,,K1)
    这里的 e ( k ) e(k) e(k) 是离散的,且 e ( k ) = e ( k T B / K ) e(k)=e\left(k T_{\mathrm{B}} / K\right) e(k)=e(kTB/K),即在离散的时间点 k T B / K k T_{\mathrm{B}} / K kTB/K 上对连续的 OFDM 信号 e ( t ) e(t) e(t) 进行抽样得到了 e ( k ) e(k) e(k)

循环前缀:对每个 OFDM 符号添加循环前缀,以对抗多径效应等引起的干扰,它是在时域上操作的【OFDM信号长啥样??? 例如,50个OFDM符号,每个符号64个子载波,那矩阵大小就是64×50,加8个循环前缀的话,就会变成72×50】

并串转换:此时的信号 e ( k ) e(k) e(k) 在时域上还是以并行的形式存在,为了后续能够进行 D/A 转换以及在实际信道中传输【因为D/A 转换器通常接收串行的信号】,需要将这些并行的离散信号进行并串转换,将其变为串行的离散信号序列

通过D/A转换得到连续形式:离散抽样信号 e ( k ) e(k) e(k)经过数模(D/A)转换后就得到OFDM 信号的连续时间表达式:
e ( t ) = 1 K ∑ n = 0 K − 1 B n ′ e j ( 2 π / T B ) n t ( 0 ⩽ t ⩽ T B ) e(t)=\frac{1}{\sqrt{K}} \sum_{n=0}^{K-1} \boldsymbol{B}_n^{\prime} \mathrm{e}^{\mathrm{j}\left(2 \pi / T_{\mathrm{B}}\right) n t} \quad\left(0 \leqslant t \leqslant T_{\mathrm{B}}\right) e(t)=K 1n=0K1Bnej(2π/TB)nt(0tTB)
它是从离散抽样信号 e ( k ) e(k) e(k) 推导而来的,体现了 OFDM 信号在整个时间区间 [ 0 , T B ] \left[0, T_{\mathrm{B}}\right] [0,TB] 上的连续变化情况。在这个表达式中,每一项 B n ′ e j ( 2 π / T B ) n t \boldsymbol{B}_n^{\prime} \mathrm{e}^{\mathrm{j}\left(2 \pi / T_{\mathrm{B}}\right) n t} Bnej(2π/TB)nt 都代表一个子载波信号,不同的 n n n 对应不同的子载波,通过对这些子载波信号进行叠加,就得到了完整的 OFDM 信号 e ( t ) e(t) e(t)

  • 子载波频率:子载波频率 f k = n / T B ( n = 0 , 1 , ⋯ , N − 1 ) f_k=n / T_{\mathrm{B}}(n=0,1, \cdots, N-1) fk=n/TB(n=0,1,,N1) 。在 OFDM 系统中,子载波是承载信息的关键元素。这个公式表明子载波频率是等间隔分布的,间隔为 1 / T B 1 / T_{\mathrm{B}} 1/TB T B T_{\mathrm{B}} TB是并行码元的持续时间】 。从物理意义上讲,不同的子载波频率使得各个子载波能够在频域上相互正交,从而在相同的时间和带宽资源下,实现多个子载波同时传输不同信息,提高了频谱利用率。

上变频:由于实际通信中信号需要在特定高频频段传输,后续会用上变频将OFDM信号频谱搬移到指定高频为止


http://www.ppmy.cn/server/164353.html

相关文章

FreeRTOS 列表和列表项

在 FreeRTOS 的源码中大量地使用了列表和列表项,因此想要深入学习 FreeRTOS,列表和列表项是必备的基础知识。这里所说的列表和列表项,是 FreeRTOS 源码中 List 和 List Item 的直译,事实上,FreeRTOS 中的列表和列表项就…

LLM:BERT or BART 之BERT

文章目录 前言一、BERT1. Decoder-only2. Encoder-only3. Use of Bidirectional Context4. Masked Language Model (MLM)5. Next Sentence Prediction (NSP)6. Fine-tune1、情感分析2、句对分析3、命名实体识别(NER) 7. BERT总结 总结 前言 NLP选手对这…

EigenLayer联合Cartesi:打造面向主流用户的DeFi、AI等新用例

EigenLayer 与 Cartesi 正在开展合作,致力于弥合基础设施协议与终端用户应用之间的鸿沟;鼓励核心开发人员构建人工智能代理、复杂 DeFi、游戏、社交网络等应用场景;得益于 Cartesi 基于 Linux 的协处理器,开发者可复用现有软件库和…

软件测试丨从自动化软件测试到自主测试,还差几步?

在当今万物互联、信息爆炸的时代,软件测试的角色显得越发重要。作为软件开发生命周期(SDLC)中的关键环节,测试不仅仅是保障软件质量的工具,更是推动产品迭代的助推器。随着自动化测试技术的崛起,测试开发变…

系统架构设计中的性能优化策略

引言 性能是系统架构设计中的关键非功能需求之一。一个高性能的系统不仅能够提供快速的响应时间,还能够处理大量的并发请求,确保用户在使用过程中获得流畅的体验。然而,性能优化是一个复杂的过程,涉及到多个层面的设计和调优。本文将深入探讨系统架构设计中的性能优化策略…

86.(2)攻防世界 WEB PHP2

之前做过&#xff0c;回顾一遍&#xff0c;详解见下面这篇博客 29.攻防世界PHP2-CSDN博客 既然是代码审计题目&#xff0c;打开后又不显示代码&#xff0c;肯定在文件里 <?php // 首先检查通过 GET 请求传递的名为 "id" 的参数值是否严格等于字符串 "admi…

图片导入到ppt之后再打印就糊掉了如何解决?

最近在做一个 p o s t e r poster poster的工作是用 P P T PPT PPT做的&#xff0c;结果从 v i s i o visio visio导入到 P P T PPT PPT中还是高清的&#xff0c;打印就糊掉了&#xff0c;注意如果是导出的话图片还是矢量的&#xff0c;但是由于有纸张的要求&#xff0c;所以必…

【deepseek实战】绿色好用,不断网

前言 最佳deepseek火热网络&#xff0c;我也开发一款windows的电脑端&#xff0c;接入了deepseek&#xff0c;基本是复刻了网页端&#xff0c;还加入一些特色功能。 助力国内AI&#xff0c;发出自己的热量 说一下开发过程和内容的使用吧。 目录 一、介绍 二、具体工作 1.1、引…