毫米波雷达基础知识系列——FFT

news2025/8/3 21:59:02

毫米波雷达基础知识系列——FFT及DSP优化实现

  • FFT来源
  • FFT为什么快
  • FFT的种类
  • 基2FFT推导

FFT来源

FFT来源于DFT离散傅里叶变换,DFT的计算公式为:
X ( k ) = ∑ n = 0 N − 1 x ( n ) W N k n X(k) = \sum_{n=0}^{N-1} x(n)W_{N}^{kn} X(k)=n=0N1x(n)WNkn
为什么不直接用DFT计算,而要用FFT的原因在于根据上面的公式计算量会很大。
我们以N等于5为例实际计算一下:
X ( 0 ) = x ( 0 ) × W 5 0 + x ( 1 ) × W 5 0 + x ( 2 ) × W 5 0 + x ( 3 ) × W 5 0 + x ( 4 ) × W 5 0 X ( 1 ) = x ( 0 ) × W 5 0 + x ( 1 ) × W 5 1 + x ( 2 ) × W 5 2 + x ( 3 ) × W 5 3 + x ( 4 ) × W 5 4 . . . \begin{array}{c} X(0) = x(0) \times W_{5}^{0} + x(1) \times W_{5}^{0}+x(2) \times W_{5}^{0}+x(3) \times W_{5}^{0}+x(4) \times W_{5}^{0}\\ X(1) = x(0) \times W_{5}^{0} + x(1) \times W_{5}^{1}+x(2) \times W_{5}^{2}+x(3) \times W_{5}^{3}+x(4) \times W_{5}^{4}\\ ... \end{array} X(0)=x(0)×W50+x(1)×W50+x(2)×W50+x(3)×W50+x(4)×W50X(1)=x(0)×W50+x(1)×W51+x(2)×W52+x(3)×W53+x(4)×W54...
可以看出来,每算一个X(k)就要计算5次乘法和4次加法,对于计算机来说,乘法运算要比加法运算耗时且更耗资源。也就是说,根据DFT完成一次完整的运算要进行N的2次方次乘法运算,N越大,计算就越困难。FFT能够明显降低运算次数,因此工程中不使用DFT,而用FFT进行计算。

FFT为什么快

FFT利用了旋转因子的周期性和特殊性,避免了一些不必要的运算,因此FFT执行起来比较快。旋转因子
W N k n = e − j ( 2 π / N ) k n  是旋转因子  W_{N}^{k n}=e^{-j(2 \pi / N) k n} \text { 是旋转因子 } WNkn=ej(2π/N)kn 是旋转因子 

FFT的种类

常规的FFT按基分类可以分为基2-FFT、基4-FFT、混合基FFT。一般来讲,基2FFT适用于采样序列的个数是2的N次方的情况,同理基4FFT适用于采样序列的个数是4的N次方的情况,基4FFT的速度要比基2FFT更快。混合基FFT是先用基4FFT处理前4的N次方个数据在处理后面2的N次方的数据。

基2FFT推导

基 2 FFT 算法利用了旋转因子的以下周期性特性。
W N 0 = e − j ( 2 π / N ) 0 = e − j ( 0 ) = cos ⁡ ( 0 ) + j sin ⁡ ( 0 ) = 1 W N k N / 2 = e − j ( 2 π / N ) k N / 2 = e − j ( π k ) = ( cos ⁡ ( − π ) + j sin ⁡ ( − π ) ) k = ( − 1 ) k W N 2 k n = e − j ( 2 π / N ) 2 k n = e − j ( 2 π / ( N / 2 ) ) k n = W N / 2 k n \begin{array}{l} W_{N}^{0}=e^{-j(2 \pi / N) 0}=e^{-j(0)}=\cos (0)+j \sin (0)=1 \\ W_{N}^{k N / 2}=e^{-j(2 \pi / N) k N / 2}=e^{-j(\pi k)}=(\cos (-\pi)+j \sin (-\pi))^{k}=(-1)^{k} \\ W_{N}^{2 k n}=e^{-j(2 \pi / N) 2 k n}=e^{-j(2 \pi /(N / 2)) k n}=W_{N / 2}^{k n} \end{array} WN0=ej(2π/N)0=ej(0)=cos(0)+jsin(0)=1WNkN/2=ej(2π/N)kN/2=ej(πk)=(cos(π)+jsin(π))k=(1)kWN2kn=ej(2π/N)2kn=ej(2π/(N/2))kn=WN/2kn
利用这些特性,可以把 N 点 DFT 分解为以下两个 N/2 点 DFT
X ( k ) = ∑ n = 0 N − 1 x ( n ) W N n k = ∑ n = 0 N / 2 − 1 x ( n ) W N n k + ∑ n = N / 2 N − 1 x ( n ) W N n k = ∑ n = 0 N / 2 − 1 [ x ( n ) W N n k + x ( n + N / 2 ) W N ( n + N / 2 ) k ] = ∑ n = 0 N / 2 − 1 [ x ( n ) W N n k + x ( n + N / 2 ) W N k N / 2 W N n k ] = ∑ n = 0 N / 2 − 1 [ x ( n ) W N n k + ( − 1 ) k x ( n + N / 2 ) W N n k ] = ∑ n = 0 N / 2 − 1 [ x ( n ) + ( − 1 ) k x ( n + N / 2 ) ] W N n k \begin{aligned} X(k) &=\sum_{n=0}^{N-1} x(n) W_{N}^{n k}=\sum_{n=0}^{N / 2-1} x(n) W_{N}^{n k}+\sum_{n=N / 2}^{N-1} x(n) W_{N}^{n k} \\ &=\sum_{n=0}^{N / 2-1}\left[x(n) W_{N}^{n k}+x(n+N / 2) W_{N}^{(n+N / 2) k}\right] \\ &=\sum_{n=0}^{N / 2-1}\left[x(n) W_{N}^{n k}+x(n+N / 2) W_{N}^{k N / 2} W_{N}^{n k}\right] \\ &=\sum_{n=0}^{N / 2-1}\left[x(n) W_{N}^{n k}+(-1)^{k} x(n+N / 2) W_{N}^{n k}\right] \\ &=\sum_{n=0}^{N / 2-1}\left[x(n)+(-1)^{k} x(n+N / 2)\right] W_{N}^{n k} \end{aligned} X(k)=n=0N1x(n)WNnk=n=0N/21x(n)WNnk+n=N/2N1x(n)WNnk=n=0N/21[x(n)WNnk+x(n+N/2)WN(n+N/2)k]=n=0N/21[x(n)WNnk+x(n+N/2)WNkN/2WNnk]=n=0N/21[x(n)WNnk+(1)kx(n+N/2)WNnk]=n=0N/21[x(n)+(1)kx(n+N/2)]WNnk
让我们把输出序列 X(k), k= 0,…, N-1 分解成两个序列:
偶数序列和奇数序列
其中偶数序列X(2r),r=0,…,N/2-1
X ( 2 r ) = ∑ n = 0 N / 2 − 1 [ x ( n ) + ( − 1 ) 2 r x ( n + N / 2 ) ] W N 2 n r = ∑ n = 0 N / 2 − 1 [ x ( n ) + x ( n + N / 2 ) ] W N 2 n r = ∑ n = 0 N / 2 − 1 [ x ( n ) + x ( n + N / 2 ) ] W N / 2 n r = D F T N / 2 ( x ( n ) + x ( n + N / 2 ) ) \begin{aligned} X(2 r) &=\sum_{n=0}^{N / 2-1}\left[x(n)+(-1)^{2 r} x(n+N / 2)\right] W_{N}^{2 n r} \\ &=\sum_{n=0}^{N / 2-1}[x(n)+x(n+N / 2)] W_{N}^{2 n r} \\ &=\sum_{n=0}^{N / 2-1}[x(n)+x(n+N / 2)] W_{N / 2}^{n r} \\ &=D F T_{N / 2}(x(n)+x(n+N / 2)) \end{aligned} X(2r)=n=0N/21[x(n)+(1)2rx(n+N/2)]WN2nr=n=0N/21[x(n)+x(n+N/2)]WN2nr=n=0N/21[x(n)+x(n+N/2)]WN/2nr=DFTN/2(x(n)+x(n+N/2))
基数序列X(2r+1),r=0,…N/2-1
X ( 2 r + 1 ) = ∑ n = 0 N / 2 − 1 [ x ( n ) + ( − 1 ) ( 2 r + 1 ) x ( n + N / 2 ) ] W N n ∗ ( 2 r + 1 ) = ∑ n = 0 N / 2 − 1 [ x ( n ) − x ( n + N / 2 ) ] W N n W N 2 n r = ∑ n = 0 N / 2 − 1 { [ x ( n ) − x ( n + N / 2 ) ] W N n } W N / 2 n r = D F T N / 2 ( ( x ( n ) − x ( n + N / 2 ) ) W N n ) \begin{aligned} X(2 r+1) &=\sum_{n=0}^{N / 2-1}\left[x(n)+(-1)^{(2 r+1)} x(n+N / 2)\right] W_{N}^{n^{*}(2 r+1)} \\ &=\sum_{n=0}^{N / 2-1}[x(n)-x(n+N / 2)] W_{N}^{n} W_{N}^{2 n r} \\ &=\sum_{n=0}^{N / 2-1}\left\{[x(n)-x(n+N / 2)] W_{N}^{n}\right\} W_{N / 2}^{n r} \\ &=D F T_{N / 2}\left((x(n)-x(n+N / 2)) W_{N}^{n}\right) \end{aligned} X(2r+1)=n=0N/21[x(n)+(1)(2r+1)x(n+N/2)]WNn(2r+1)=n=0N/21[x(n)x(n+N/2)]WNnWN2nr=n=0N/21{[x(n)x(n+N/2)]WNn}WN/2nr=DFTN/2((x(n)x(n+N/2))WNn)
按以上方法反复的分解 N 点 DFT 成 2/N 点 DFT 直到 N=2,使得 N 点傅立叶变换的运算复杂度由
原来的 N2降到 Nlog2N,这是非常显著的改进。这个算法也被称为频域抽取(Decimate-InFrequency, DIF)FFT 算法。。
用一个基2 8 点FFT的图表示上述过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【 java 常用类】日期相关 API 操作

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

ZYNQ之FPGA学习----MMCM/PLL IP核使用实验

1 MMCM/PLL IP核介绍 PLL 的英文全称是 Phase Locked Loop,即锁相环,是一种反馈控制电路。PLL 对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频、分频、相位偏移和可编程占空比的功能 Xilinx 7 系列器件中的时钟资源包含了时钟管理…

Kata3.0.0 x LifseaOS x 龙蜥内核三管齐下!带你体验最新的安全容器之旅

文/云原生SIG 北京时间 2022 年 10 月 10 日,袋鼠 RunD 安全容器(Rust Kata runtime Dragonball VMM)正式作为安全容器上游 Kata Container 3.0.0 release 版本的重要特性发布。 龙蜥体验包 安全容器作为龙蜥云原生重要项目,我…

EEG微状态预测并发fMRI动态功能连接状态

前言 静息态功能磁共振成像(rs-fMRI)测量的大脑功能连接在多个时间尺度上有所不同,并确定了循环的动态功能连接(dFC)状态。这些发现与不同的认知和病理状态有关,有可能作为疾病的生物标志物,但它们的神经基础仍然存在争议。在静息态EEG研究中…

docker常见问题汇总(持续更新中)

Docker pull 时报错如下: -bash-4.2# docker pull hub.yj.com/test/dep_client:test Error response from daemon: Get http://hub.yj.com/v2/: dial tcp: lookup hub.yj.com on 218.2.135.1:53: server misbehaving如下图: 原因解析: 本地…

【算法系列】非线性最小二乘-高斯牛顿法

系列文章目录 【算法系列】卡尔曼滤波算法 【算法系列】非线性最小二乘求解-直接求解法 【算法系列】非线性最小二乘求解-梯度下降法 【算法系列】非线性最小二乘-高斯牛顿法 文章目录 系列文章 文章目录 前言 一、牛顿法 二、高斯-牛顿法 1.由牛顿法推导 2.直接展…

深度学习入门(四十三)计算机视觉——锚框

深度学习入门(四十三)计算机视觉——锚框前言计算机视觉——锚框课件锚框IoU交并比赋予锚框符号使用非极大值抑制(NMS)输出总结教材1 生成多个锚框2 交并比(IoU)3 在训练数据中标注锚框3.1 将真实边界框分配…

UE5笔记【二】添加实体和材质。后处理体积影响全局和局部。

材质 将平面赋予材质,显示不同的样式和纹理。 除了拖拽方式:还可以下拉列表的方式选择。 添加实例对象 可以添加引擎中关于room的内容,使得上一篇中所讲内容,更加直白查看。比如光影。 构造一个场景。 后处理体积 用途&#xff…

显示控件——半圆进度条

该控件是指定一个图标(半圆条),通过沿圆弧方向滑动实现视觉调节的效果。滑动范围对应变量地址数据,显示位置通过变量设定。可以配合“半圆进度条触控”触摸控件进行设置。 位置信息:控件在工程页面区域的位置 “X”“Y…

基于Java Web的汽车租赁系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

本地环境OPC数据读写模拟[Python3+OpenOPC+MatrikonOPCSimulation]

在win10本地环境下,通过python3和OpenOPC包与MatrikonOPCServer进行读写交互,模拟工厂数据读写 Python3 第一个坑,64位的Python似乎是和后面的OpenOPC不兼容,装了调用会出类似"OpenOPC.OPCError: Dispatch: 没有注册类"…

全球电子商务交易预计将在2022年假日季增长15%,消费者情绪乐观

• 感恩节到网购星期一之间的电子商务交易预计将增长10%• 新冠疫情限制措施解除后,旅游和票务行业持续保持强劲增长• 受通货膨胀与库存有限的共同影响,2022年的零售销售与2021年相比略显疲软• 欺诈者瞄准电子产品、旅游和活动等高价值品类&#xff0c…

Libuv实现帧率控制

Libuv实现帧率控制 概念 服务端帧率控制,保证在一段固定的时间内执行完所有事情(包括网络I/O等),如果有空余时间,那么我们Sleep等待一段时间。如果超时我们需要追帧。 注意点 只要在程序中只有一个进程的情况下控制服…

pytorch MNIST 手写数字识别 + 使用自己的测试集 + 数据增强后再训练

文章目录1. MNIST 手写数字识别2. 聚焦数据集扩充后的模型训练3. pytorch 手写数字识别基本实现3.1完整代码及 MNIST 测试集测试结果3.1.1代码3.1.2 MNIST 测试集测试结果3.2 使用自己的图片进行测试3.2.1 测试图片预处理代码3.2.2 测试图片结果4. 数据增强4.1 手动读取 MNIST …

11月更新!一口气上线20+新功能,3D架构拓扑图更具趣味性

优维EasyOps全平台又双叒叕上新功能了! 不瞒各位小伙伴 写今天这篇文章时 我的手一直在抖 是激动的,这次要介绍的更新太牛了 尽管鹿小U已经 非常认真地研究过这20多个新功能 仍然无法用文字描述出 这次功能批量上新 「厉害程度」的十分之一 啥也…

【软件工程】实验1

文章目录实验一 软件需求分析实验目的实验内容「软件开发文档管理」软件开发过程涉及的文档软件开发阶段开发过程文档「软件开发文档管理」需求获取1. 功能需求2. 非功能需求「软件开发文档管理」需求分析、需求规格说明1. 需求概述1.1 功能需求1.2 非功能需求2. 用例模型2.1 用…

中证1000期指上市带来的交易机会

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

玩转UE4/UE5动画系统:UE5的运行时(动态)重定向治好了我的精神内耗

本文参考了油管UP主:AngelV的教程 前言 UE5中新的动画资源的(静态)重定向方法比UE4好用很多,但这种静态的重定向方式依然很让人头疼,因为我们需要对于每一个需要的动画资源为每一个目标骨架生成一套资源备份。尽管个过…

我参加NVIDIA Sky Hackathon 环境安装(编程环境)

强烈建议使用conda 第一个坑: 不使用 conda 进行 Python 环境管理直接使用本地的 Python 环境容易导致混乱 conda 安装 指定下载源 export DL_SITEhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda 使用 wget 进行下载 wget -c $DL_SITE/Miniconda3-py…

德鲁克《卓有成效的管理者》学习笔记-掌握时间的学习和实践

针对德鲁克先生《卓有成效的管理者》书中提到了掌握时间部分学习的一些记录以及在日常工作中的实践。 1、为什么学习掌握时间 时间是最特殊的资源,为什么说它特殊呢?他租不到、顾不到、买不到,更不能以其他任何手段来获得。时间的供给丝毫没…