Matlab中IFFT/FFT注意事项及在OFDM仿真中的应用问题

《通信原理》OFDM系统仿真 一、实验内容 1. OFDM系统的子载波的调制; 2.OFDM的IDFT和DFT的实现; 3.OFDM的保护间隔与循环前缀的实现。 二、实验步骤及结果 1.子载波调制 实验一:假设OFDM系统包含8个子载波,fc=1Hz,子载波频率间隔为1Hz,每个子载波采用4-QAM调制,符号周期为1s。 画出一个符号周期的调制信号波形。 比较无频偏解调和存在0.2Hz频偏时的解调结果。 2.实验代码 %% OFDM系统仿真1-1 clear all;close all;clc; N=8; 阅读详情
AI摘要

本文详细解析了Matlab中FFT与IFFT函数的使用技巧,包括如何正确计算频谱幅值、实现OFDM系统调制解调,并讨论了在IFFT前进行共轭对称处理的作用。

1.Matlab里的IFFT/FFT函数系数的问题

  • Matlab里的ifft函数会在做完正常的变换后除以ifft变换的点数,而fft函数中没有系数。

  • Matlab里的IFFT变换及FFT变换:

  • 因此在Matlab上,利用fft函数做频谱分析,应注意以下几点:

  • (1)应对FFT的结果除以FFT点数,才能得到各频点的真实幅值。

  • (2)FFT的频率分辨力等于采样频率除以FFT点数,即:

  • (3)对实序列进行FFT,结果的前半部分,对应正频率,后半部分对应负频率,这样比较符合习惯。即前N/2个点对应频率,或者表示为。后N/2个点对应频率,或者表示为。

  • (4)在Matlab中可以直接利用fftshift函数对fft的结果进行变换。另外,如果只画出半谱图,则需对除直流分量(fft的第一个结果)以外的其他分量幅值乘上2。

  • clc
    clear all
    close all
    fs= 200;%采样频率
    N = 256;%采样点数
    t = (0:N-1)/fs;%各采样点
    a = cos(2*pi*50*t)+cos(2*pi*75*t);
    b = fft(a);
    f = 0:fs/N:(N-1)/N*fs;
    figure
    subplot(211)
    plot(f,abs(b));title('直接FFT结果')
    subplot(212)
    plot(f,abs(b)/N);title('除以FFT点数得到的真实值')
    figure
    subplot(211)
    plot((0:fs/N:fs/2),abs(b(1:N/2+1))/N*2);title('半谱图')
    c = fftshift(b);%使用fftshift函数得到全谱图
    f1= -fs/2:fs/N:fs/2-fs/N;
    subplot(212)
    plot(f1,abs(c/N));title('正负频率半轴表示的全谱图')

    运行结果如下所示:


  • 更多关于这个问题,以下这篇文章讲的很详细:https://blog.youkuaiyun.com/qq_39297053/article/details/113916666

  • 2.用IFFT/FFT实现OFDM系统中的调制解调应注意的问题

  • OFDM利用IFFT/FFT调制解调的公式如下所示,其中为准备调制的符号,为接收到采样序列:
  • OFDM对PSK或QAM符号调制过程:
  • OFDM对接收采样信号解调过程:

对照以上公式和公式(1.1-1.2),可以看出,两者只是系数1/N存在的位置不同。在简单的OFDM仿真中直接使用ifft函数调制及fft函数解调,对仿真结果是没有影响的。但是仔细考虑会发现,对PSK或QAM符号进行ifft调制得到的序列的能量会变小,再进行fft解调能量会变大。因此,在进一步的仿真中,为了使得频域和时域上能量的一致,一般需在IFFT后乘上,解调处理的时候先对接收序列除以再进行FFT变换。因此式(2.1-2.2)变为如下形式,其中也被称为功率归一化因子:

对功率归一化的理解:

调制之前各个符号能量为|x[k]|,符号的总能量为E(x[k]),在经过式(1.1)所示的N点的IFFT变换调制到各个子载波上后,各个子载波上的能量为\frac{|x[k]|}{N},总的子载波上的能量为\frac{E(x[k])}{N}。由此,对IFFT结果乘上后,各个子载波上的能量为|x[k]|,总的子载波上的能量为E(x[k])。这样就实现了频域上和时域上能量的一致,使得在仿真中更加方便地进行各种计算。另外需要注意的是功率归一化因子中的N应该是IFFT/FFT的点数,而不是有效子载波数(网上浏览时看到有些人弄混淆了)。

3.在IFFT之前对序列进行共轭对称处理的作用

对要调制的序列进行共轭对称处理,再分别调制到相应载波上是为了得到实的OFDM信号。在1中说过,FFT的前半结果表示正频率部分,后半结果表示负频率部分,这在IFFT过程中也是类似的。在进行N点的IFFT时,序列的第一个数定义直流成分,第\frac{N}{2}+1个数定义最高频率成分,再后面的即为负频率部分。

例如,若对采样频率为1kHz,长度为17的某个序列(序列长度要小于128/2)进行128点的IFFT变换,这个序列在做IFFT前存放在128个数中33-49的位置上,即。取该序列共轭存在第97-81的位置,这样正负频率对应共轭,ifft后就能得到一个实序列。而其他位置的值置零,即为空载波。(注:以上参数设置是为了解释方便。)

clc
close all
clear all
%% 参数设置
fs=1000;%采样频率
carrier_count=17;%调制符号数或有效子载波数
ifft_length=128;%FFT长度
M=4;%调制阶数
%% 产生随机序列
bit_per_symbol=log2(M); %每个子载波调制的比特数
bit_length=carrier_count*bit_per_symbol;%所有比特数
bit_sequence=randi([0 1],bit_length,1);%产生随机比特序列(列向量)
%% QAM调制
bit_moded=qammod(bit_sequence,M,'InputType','bit','UnitAveragePower',true);%QPSK调制并归一化
%% IFFT
carrier_position=33:49;%对应频段250Hz-375kHz
conj_position=97:-1:81;
ifft_position=zeros(ifft_length,1);
ifft_position(carrier_position)=bit_moded;%将调制符号存入33-49行
ifft_position(conj_position)=conj(bit_moded);%将调制符号取共轭存入97-81行
signal_time=ifft(ifft_position,ifft_length);
signal_time=signal_time*sqrt(ifft_length);%对经过IFFT的信号功率归一化
%% FFT
Rx_signal=signal_time/sqrt(ifft_length);
fft_sig=fft(Rx_signal,ifft_length);%FFT
Rx_bit_moded=fft_sig(carrier_position);%提取载波调制符号33-49
%% 能量计算
E_bit_moded=2*sum(sum(abs(bit_moded).^2))
E_ifft=sum(abs(signal_time).^2)
E_fft=sum(abs(fft_sig).^2)

运行结果可以看到IFFT后的结果signal_time为实序列,且能量在频域和时域上相等,证明了2中的结论。需要注意的是,在进行共轭对称处理后,序列能量翻倍了。

数字信号处理基础(二):FFT和IFFT的使用以及详细分析代码书写思路 数字信号处理的基本知识 阅读详情

相关推荐

第8章:OFDM同步技术(2)——载波频率偏差

第8章(2)内容如下:一、CFO的基本介绍及影响1、基于CP的CFO估计技术2、基于训练信号的CFO估计技术三、CFO估计技术的**可运行MATLAB代码及其注意点**四、总结 OFDM同步技术主要内容如下: 图1 OFDM同步技术 上一讲主要介绍了OFDM同步技术中的符号定时偏差(STO)相关问题,这一讲集中在载波频率偏差(CFO)问题。 一、CFO的基本介绍及影响 前面的文章已经多次提过,载波频率偏差主要来自两个方面: (1)收发端本振频率有偏差; (2)多普勒频移; 先定义归一化的CFO为CFO与

weixin_44283855的博客 1万+

matlab中频域信号IFFT,MATLAB中ifft函数用法、性质、特性-以及与fft的组合应用全面深入解析(含程序)...

MATLAB中ifft函数用法、性质、特性,以及与fft的组合应用全面深入解析(含程序)前言在我之前的《MATLAB中fft函数用法、性质、特性、缺陷全面深入解析(含程序)》中,我已经详细阐述了fft的所有性质,大家应该能够正确使用fft来获得合适的信号频谱图。鉴于网上的程序代码基本都只介绍了使用fft实现信号时域到频域的转换,很少有介绍使用ifft将频域信号转换为时域信号,尤其是对同一信号进行连...

weixin_33054847的博客 1万+

OFDM瑞利衰落仿真实操:Matlab从信道建模到BER计算全链路

OFDM(正交频分复用)是5G与Wi-Fi等现代无线系统的核心调制技术,其抗多径能力高度依赖对频率选择性瑞利衰落信道的准确建模。该信道本质是时变、复高斯、功率呈指数衰减的离散多径冲激响应,建模需严格满足时延扩展与符号周期的物理约束。关键技术价值在于支撑可靠BER(误码率)性能评估——而BER曲线的真实性,取决于SNR标定是否基于发射信号实际平均功率、CP长度是否匹配RMS时延、FFT归一化是否遵循Parseval定理等工程细节。典型应用场景包括通信毕设验证、协议栈链路级仿真及MIMO-OFDM系统预研。本文

aodiyi6351的博客 323

matlab用ifft,ifft(matlab中ifft是什么意思)

设SLM是一个128*8的矩阵,那么Y=ifft(SLM,[],2)和Y=ifft(SLM,128)一样吗?对。Y=ifft(SLM,[],1)和Y=ifft(SLM,128)才是一样的。第一种用法:ifft(SLM,[],dim)中的dim表示维度,1表示列,2表示行。第二个参数为[]表示点数与原矩阵每列元素数。如果是 ifft(.DFT,即可测试性设计(Design for Testabili...

weixin_42473904的博客 7353

LabVIEW中FFT实现原理与应用技巧

快速傅里叶变换(FFT)是数字信号处理的核心算法,通过将时域信号转换为频域表示实现频谱分析。LabVIEW采用图形化数据流编程方式,内置基于Cooley-Tukey算法的高度优化FFT实现,支持多种窗函数和实时处理。在工程实践中,FFT广泛应用于频谱分析、频域滤波、通信系统等领域,配合抗混叠滤波器和适当参数设置可获得精确结果。通过合理选择采样点数、窗函数类型,并利用LabVIEW的并行处理能力,可显著提升包含音频处理、振动分析等场景下的信号处理效率。

weixin_31364787的博客 249

ofdm基础知识

1、整体框图: (1)发送端是将数字信号转换成子载波的幅度和相位,并通过IDFT,将数据的频谱表达到时域上。接收端和发射端进行相反的操作,用fft变换分解,子载波的幅度和相位最终转化为数字信号。 (2) ...

youzjuer的博客 2208

OFDM 中的 IFFT/FFT 注意事项

在做 OFDM 项目时,发现一个容易犯错的地方:IFFT/FFT。 调制/解调所做的运算的形式和 IFFT/FFT 是相同的,但是有一个功率归一化的系数的差别。 很多书(通信原理)都给出了公式推导,然而这些公式并不严谨,这些公式只是为了说明做的变换形式是 IFFT/FFT。 有的书(宽带无线通信OFDM技术)则给出了更加详细,严谨的公式推导。 IFFT /FFT in OFDM (u...

Mikchy的博客 5984

OFDM系统MATLAB仿真:从原理到误码率曲线实践指南

正交频分复用(OFDM)作为现代无线通信的核心技术,其原理在于将高速数据流分解到多个正交子载波上并行传输,有效对抗频率选择性衰落。这项技术的核心价值在于显著提升了频谱利用率和系统抗干扰能力,被广泛应用于Wi-Fi、4G/5G移动通信等场景。在工程实践中,通过MATLAB进行系统级仿真,是验证OFDM链路性能、理解信道估计与均衡等关键环节的重要手段。本文聚焦于构建完整的OFDM基带仿真链路,通过模块化设计实现从发射端、信道模拟到接收端的全流程,并最终通过误码率曲线分析系统性能,为通信系统建模提供实战参考。

weixin_33910759的博客 421

Matlab里FFT/IFFT系数那点事儿:从频谱分析到OFDM仿真的避坑指南

本文深入解析Matlab中FFT/IFFT系数处理的关键细节,从频谱分析到OFDM仿真。通过实例代码揭示FFT归一化陷阱,解释IFFT的默认行为差异,并详细探讨OFDM系统中的功率归一化问题。提供常见场景解决方案和性能优化技巧,帮助开发者避免实际工程中的典型错误,提升信号处理仿真的准确性。

weixin_33423874的博客 320

OFDM链路仿真:QPSK/16QAM/32QAM/64QAM统一调制与误码率分析

数字通信系统中,调制技术决定了频谱效率与传输可靠性之间的平衡,从基础的数字调制到多载波传输,OFDM凭借其对抗多径衰落的优势成为现代无线通信的核心物理层技术。理解不同调制阶数对链路性能的影响,需要借助星座图与误码率曲线进行量化分析。在信号处理与系统仿真中,IFFT/FFT实现多载波调制,循环前缀与导频设计保证正交性和信道估计的准确性。基于MATLAB搭建统一的OFDM仿真平台,将QPSK、16QAM、32QAM、64QAM作为可替换调制模块,可直观对比各调制方式在相同信道条件下的误码率表现。该技术广泛应用于

weixin_29090917的博客 257

MATLAB OFDM仿真:QPSK/16QAM/32QAM/64QAM星座图与误码率对比

OFDM技术通过多载波并行传输有效对抗多径衰落,其核心在于IFFT/FFT变换与循环前缀的配合。在MATLAB中构建OFDM链路时,调制阶数选择直接影响系统性能:QPSK抗噪能力强但速率低,64QAM速率高但对信噪比要求苛刻。通过星座图可直观观察符号映射质量,误码率曲线则量化不同调制方式在AWGN信道下的可靠性。这套仿真资源覆盖四种调制方式的完整收发链路,提供星座图与BER对比,适合通信原理教学与链路级验证,帮助快速定位IFFT归一化、循环前缀长度等参数问题。

weixin_29055699的博客 290

MATLAB实现OFDM通信系统仿真:从原理到代码实践

正交频分复用(OFDM)作为一种高效的多载波调制技术,其核心原理是利用快速傅里叶变换(FFT)将高速数据流分解为多个正交的子载波并行传输,从而有效对抗无线信道中的多径衰落。这项技术的工程价值在于显著提升了频谱利用率和系统抗干扰能力,被广泛应用于Wi-Fi、4G/5G移动通信等场景。在工程实践中,利用MATLAB进行OFDM系统仿真成为学习和验证的关键手段,这得益于其强大的矩阵运算和信号处理工具箱,能够高效实现包括IFFT/FFT、循环前缀添加、信道估计与均衡在内的完整链路建模。通过构建包含多径衰落和加性高斯

weixin_30571465的博客 343

MATLAB实现OFDM与LDPC编码的通信系统仿真全流程详解

正交频分复用(OFDM)和低密度奇偶校验码(LDPC)是现代宽带无线通信系统的两大核心技术。OFDM通过将宽带信道划分为多个正交子载波,有效对抗多径衰落引起的频率选择性衰落,简化了均衡器设计。LDPC作为一种接近香农极限的信道编码,通过稀疏校验矩阵和迭代译码算法,为数据传输提供了强大的前向纠错能力。两者结合形成的OFDM-LDPC技术方案,在提升频谱效率的同时保证了高可靠性,已成为5G eMBB数据信道的标准配置,广泛应用于5G/6G、Wi-Fi等高速数据传输场景。本文基于MATLAB平台,从模块化设计出发

weixin_29597551的博客 314

基于MATLAB的ofdm仿真 16QAM 64QAM

运行上述代码后,将生成误比特率曲线,展示16QAM和64QAM在不同信噪比下的性能对比。通过该曲线,可以直观地比较两种调制方式的误比特率性能,为实际通信系统的设计和优化提供参考。基于MATLAB的OFDM仿真代码,支持16QAM和64QAM调制方式,并包括误比特率(BER)评估。

我的乌托 479

OFDM仿真链路实战:QPSK/16QAM/32QAM/64QAM星座图与误码率对比

OFDM作为多载波传输的核心技术,通过子载波调制、IFFT/FFT和循环前缀实现高效抗多径通信。其原理是将高速数据流分解为多个低速子载波并行传输,结合QAM调制提升频谱效率。在工程实践中,MATLAB仿真可直观展示不同调制阶数下的星座图扩散与误码率性能。例如,QPSK与64QAM在AWGN信道中的BER曲线差异显著,高阶调制虽提升速率但抗噪性下降。该技术广泛应用于5G、WiFi等无线系统。本文基于OFDM-simulation-main资源,提供从脚本解析到参数调优的完整指南,帮助读者快速掌握星座图与误码率

weixin_29913663的博客 213

保姆级教程:用NFS把群晖NAS的文件夹挂到Ubuntu 22.04上,实现文件无缝共享

本文提供了一份详细的教程,指导用户如何通过NFS协议将群晖NAS的文件夹挂载到Ubuntu 22.04系统上,实现文件的无缝共享。文章对比了NFS与SMB协议的性能差异,并提供了群晖端和Ubuntu端的配置指南、高级参数优化、自动挂载方案以及生产环境中的实战技巧,帮助用户提升文件共享效率和系统稳定性。

weixin_29213827的博客 405

【matlab】:FFT相关的问题

文章目录1、 fft中的幅度2 、参考文献 1、 fft中的幅度 下面为具体的fft程序,程序中更通用的是对于非直流成分的fft的幅度值 function fft_plot(y,fs,s_name) L_i = length(y)*100; s_i_fft = fft(y,L_i); s_i_fftshfit = fftshift(s_i_fft); P = abs(s_i_fftshfit/length(y))*2; %对于非直流分量或者0来说是除以N乘以2,对于直流

weixin_43778388的博客 1453

【数据中台】数据中台架构搭建百科全书

0、前言 当前,大部分企业不再建设从源数据采集到分析应用的烟囱式系统,更倾向于数据集中采集、存储,并应用分层建设。这种方式一方面有利于应用系统的快速部署,另一方面也保证了数据的集中管理与运营,体现数据的资产、资源属性。 数据中台的出现弥补了数据开发和应用开发之间由于开发速度不匹配而出现的响应力不足等缺陷问题。 数据中台是国内学者提出的概念,起始于阿里的“大中台、小前台”概念。阿里的中台是从管理的角度出发,以中台事业部集中数据搜索,技术及产品,数据共享等多个部门的功能。其他组织或企业建设数据中台不一定需

Sunny的专栏 8405

MATLAB实现OFDM系统仿真:从原理到实践

正交频分复用(OFDM)作为现代无线通信的核心技术,通过将宽带信道划分为多个正交子载波实现高效传输。其核心技术原理包括FFT变换、循环前缀保护间隔和子载波调制,这些特性使OFDM具备优异的抗多径干扰能力和高频谱效率。在工程实践中,MATLAB凭借其强大的矩阵运算和信号处理工具箱,成为OFDM系统仿真的理想工具。通过合理设置FFT点数、循环前缀长度和调制阶数等关键参数,可以快速构建完整的OFDM收发链路模型。典型的应用场景包括5G通信、Wi-Fi系统等,其中子载波映射、信道建模和同步算法是需要特别关注的技术难

weixin_30899023的博客 132

多传感器标定全栈系统学习教程

无论是激光雷达(Lidar)、毫米波雷达(Radar)、相机(Camera)还是惯导(IMU),传感器之间的精确标定直接决定了系统的可靠性与性能。本文将以系统化的视角,梳理多传感器标定的核心知识体系,并分享一套覆盖全栈技术的学习路径。Calibration)是实现点云与图像融合的前提,而雷达与车辆的标定(Radar2Car)则是精准速度估计的关键。:Lidar2Car、Camera2Car的快速标定流程,标定板布置规范。:从单传感器标定入手(如相机内参),逐步过渡到多传感器联合标定。

weixin_41792788的博客 904

Transformer在BEV感知中的统治地位

Transformer在BEV感知中的统治地位 ,人工智能,计算机视觉,大模型,AI,本文围绕 Transformer 在 BEV 感知中的统治地位展开,介绍了 Transformer 的基础原理,如自注意力、多头注意力机制等,以及 BEV 感知的概念、任务与挑战。阐述了 Transformer 在 BEV 感知中的技术优势,包括全局建模、灵活特征融合和长距离依赖捕捉能力,还介绍了典型架构、代码示例及在自动驾驶目标检测等领域的应用案例。同时,评估了其性能,提及优化方法,并展望了与其他技术融合、端到端系统等…

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

OFDM系统MATLAB仿真:从原理到实践

正交频分复用(OFDM)作为现代无线通信的核心技术,通过将高速数据流分配到多个正交子载波上传输,有效对抗多径干扰。其核心原理是利用快速傅里叶变换(FFT)实现频域并行传输,配合循环前缀消除符号间干扰。在工程实践中,MATLAB凭借丰富的信号处理工具箱和高效的矩阵运算能力,成为OFDM系统仿真的理想选择。通过合理配置子载波数量、循环前缀长度等关键参数,可以平衡系统性能与实现复杂度。典型应用场景包括4G/5G移动通信、Wi-Fi等无线传输系统,其中QPSK和QAM调制技术的选择直接影响频谱效率与误码率性能。

weixin_30702441的博客 122

【Flink】FLink session yarn kerberos认证报错 PortUnreachableException: ICMP Port Unreachable

本篇博客是在上一篇博客:【Flink】FLink session yarn kerberos认证报错 KrbException: Cannot locate default realm还没找到原因的时候做的一次尝试。因为项目需要,我们需要对接华为认证的yarn集群,运行flink任务,我们的任务分为两种,yarn pre-job模式和flink session模式。我们在配置文件中配置如下# kerberos认证需要的东西提交任务的脚本如下。

九师兄 1267
下一篇: Matlab里关于T2F/F2T/lpf.m函数调用应注意的问题及函数修改
SaintLeeYa
博客等级 码龄8年 995粉丝 2原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值