在不同数量的行上重复计算 fft

2024-02-12

我有兴趣计算矩阵第一行的 fft,但我事先不知道需要多少行。我需要重复执行此操作,但需要转换的行数可能会改变。

我将用下面的例子来说明。假设我有一个 100 x 128 的数组。如果我在每一行上计划一维 fft,FFTW 会生成以下计划:

(dft-ct-dit/8
  (dftw-direct-8/28-x100 "t2fv_8_sse2")
  (dft-vrank>=1-x8/1
    (dft-direct-16-x100 "n1fv_16_sse2")))

虽然我不完全理解这个输出,但我确实看到了关键成分:1)这是单个 Cooley-Tucker 传递,请注意 8*16=128。 2) 由于两行上有 x100 后缀,因此计划规定需要对 100 行进行此操作。

我看到三种可能性:

  • 一刀切的规划:规划 100 x 128 阵列,即使只需要前(例如)20 行,也可以执行这个大计划。 优点:我们只需要一个计划,因此规划开销很小。缺点:在执行阶段可能会造成巨大的性能损失(转换超出我的需要)。

  • 详尽的规划:使用相同的输入/输出数组但针对所有可能的行数获取计划。在示例中,我有 100 个计划,其中计划 i 对前 i 行的每一行执行 fft。优点:完全改变我所需要的。缺点:实验表明,我必须一遍又一遍地支付计划惩罚,即使 i=50 时计划与上面相同,但使用 x50 而不是 x100。 (我想不能保证这确实是 FFTW 规划者确定的计划,但如果我可以缩短规划时间,我不介意失去“最优性”。)

  • 单行规划:规划单行并使用循环将数据移入输入、转换并将数据移出输出。优点:我正在改变我所需要的。缺点:在我看来,这消除了很多 FFTW 优化,例如当我使用多个线程时。 (我通常很困惑多线程在 FFTW 中是如何工作的,因为它没有详细记录......我知道线程信息是计划的一部分,但打印计划不会显示任何内容。不过,这是题外话。)

我想通过首先创建通用的计划,在 for 循环中修改该计划 99 次而不是针对不同的大小进行规划,然后按照详尽的规划方法执行,从而将所有三个想法结合起来。但是我找不到任何有关计划/智慧格式的文档,十六进制数字的智慧输出是难以理解的。所以我想知道如何实施这种混合方法。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在不同数量的行上重复计算 fft 的相关文章

  • 信号处理算法(4):全球最快的傅里叶变换算法(FFTW)

    本文大部分内容转载自博客 congwulong https blog csdn net congwulong article details 7576012 FFTW Fastest Fourier Transform in the Wes
  • 如何使用fftw Guru界面

    我以前用过fftw plan dft用于多维傅里叶变换 fftw plan fftw plan dft int rank const int n fftw complex in fftw complex out int sign unsig
  • 为什么 FFTW 在 Windows 上比在 Linux 上更快?

    我使用 fftw 库在 Linux 和 Windows 中编写了两个相同的程序 fftw3 a fftw3 lib 并计算持续时间fftwf execute m wfpFFTplan 语句 16 fft 对于 10000 次运行 在 Lin
  • 标准化 FFT 数据 (FFTW)

    我一直在使用 FFTW 计算标准化 wav 文件数据的 FFT 然而 我对如何标准化 FFT 输出有点困惑 我一直在使用对我来说显而易见的方法 即除以最高的 FFT 幅度 然而 我已经看到建议除以 1 N 和 N 2 其中我假设 N FFT
  • 在 Visual Studio 中编译 FFTW 源

    最近我正在尝试在Visual studio 2010中编译FFTW的源代码 我按照FFTW网站的说明进行操作 我下载了源代码fftw 3 3 2 zip和对应的vs 2010包fftw 3 3 libs visual studio 2010
  • 对图像进行前向 FFT 和后向 FFT 以获得相同的结果

    我正在尝试使用来自的库对图像进行 FFThttp www fftw org http www fftw org 这样我就可以在频域中进行卷积 但我不知道如何让它发挥作用 为了了解如何执行此操作 我尝试将图像作为像素颜色数组进行前向 FFT
  • 使用 FFTW 进行图像卷积时,内核在哪里居中?

    我正在尝试使用 FFTW 进行图像卷积 起初只是为了测试系统是否正常工作 我执行了 fft 然后执行了逆 fft 并且可以返回完全相同的图像 然后向前迈出了一小步 我使用了恒等内核 即 kernel 0 0 1 而所有其他组件等于 0 我取
  • 使用 Android NDK 调用嵌套函数后应用程序被挂起

    我构建 Android 项目 其中使用 Android NDK库文件 https github com jamiebullock LibXtract来提取音频特征 LibXTtract 使用fftw3 http www fftw org 图
  • 为什么 (A+B) 的 FFT 与 FFT(A) + FFT(B) 不同?

    我已经与一个非常奇怪的错误作斗争了近一个月了 向你们请教是我最后的希望 我用 C 编写了一个程序 集成了 2d卡恩 希利亚德方程 https en wikipedia org wiki Cahn E2 80 93Hilliard equat
  • C 中对“main”的未定义引用

    您好 我在使用 gcc 编译 c 代码时遇到以下错误 usr lib gcc x86 64 redhat linux 4 4 6 lib64 crt1 o In function start text 0x20 undefined refe
  • 使用 valgrind 检查 fftw3

    在我的程序的一个步骤中 我需要对图像进行卷积 为此 我正在使用提供的功能fftw3 当我跑步时valgrind在我的程序中 我得到了这个堆栈跟踪 我的函数叫做convolve它运行fftw3 s fftw plan dft r2c 2d两次
  • 如何设置带有螺纹和不同精度的FFTW?

    我需要使用具有不同算术精度和多线程计划的 FFTW 我需要为所有精度设置多线程 像这样 fftwf init threads fftwf plan with nthreads nthreads fftw init threads fftw
  • 使用 fftw 和窗函数生成正确的频谱图

    对于一个项目 我需要能够从 WAV 文件生成频谱图 我读过以下应该做的事情 获取N 变换大小 个样本 Apply a window http en wikipedia org wiki Window function功能 使用样本进行快速傅
  • 如何将使用 numpy.fft.rfft 的代码从 python 移植到 C++?

    我有用 python 编写的代码 它使用 numpy 计算实际输入的 FFT 正部分 我需要将此代码移植到 C import numpy as np interp 131 107 133 089 132 199 129 905 132 97
  • 在不同数量的行上重复计算 fft

    我有兴趣计算矩阵第一行的 fft 但我事先不知道需要多少行 我需要重复执行此操作 但需要转换的行数可能会改变 我将用下面的例子来说明 假设我有一个 100 x 128 的数组 如果我在每一行上计划一维 fft FFTW 会生成以下计划 df
  • 如何将 2 个 fftw_complex 数组相乘

    Heading 你好 我正在尝试将两个 fftw complex 类型的数组相乘 我应该怎么做 这是代码 fftw complex rInF gInF bInF fftw complex rOutF gOutF bOutF for int
  • 如何在 FFTW 库中进行实数反演 FFT

    我正在尝试使用 FFT 进行一些过滤 我正在使用 r2r 1d 计划 但我不知道如何进行逆变换 void PerformFiltering double data int n FFT double spectrum new double n
  • Matlab FFT 和 FFTW

    我正在尝试使用 FFTW 和 Matlab 进行相同的 FFT 我使用 MEX 文件来检查 FFTW 是否良好 我认为我的一切都是正确的 但是 我从 FFTW 得到荒谬的价值观 在同一输入信号上多次运行 FFTW 代码时 我没有得到相同的结
  • 将 FFTW 链接到 Android NDK 应用程序

    我目前正在编写一个流派分类应用程序 作为我计算机工程的最后一年项目 我最初用 C 语言编写了特征提取代码 实现 FFTW 现在我需要通过 NDK 在 Android 上实现它 这是我的第一个 NDK 项目 所以我仍在掌握一些东西 但我已经根
  • 最近用 Java 编写的 FFTW 包装器

    我正在寻找最新版本的最小 Java 包装器FFTW http www fftw org FFTW 网站上列出的包装器要么已过时 jfftw 1 2 zip ftp ftp fftw org pub fftw jfftw 1 2 zip 或包

随机推荐

  • 无法下载eclipse插件

    我正在尝试下载 eclipse 的 kotlin 插件 我能够连接到 eclipse 市场 但是当我尝试下载它时 出现错误 Unable to read repository at https dl bintray com jetbrain
  • 对 Pandas 数据框中的行对应用函数

    我是 pandas dataframe 的新手 我想应用一个在同一列中获取几行的函数 就像当您应用函数 diff 时一样 但我想计算文本之间的距离 所以我定义了一个测量距离的函数 我尝试使用 apply 但我不知道如何选择几行 下面我展示了
  • 石墨总结数据点

    我在用着graphite http graphite wikidot com 收集数据 我想检索一段时间内某些事件的总数 比如说 每周的登录次数 但是 我只需要总数 不需要查看它如何随时间变化 当我使用类似的东西时from 1w targe
  • Symfony 5 Api 测试 createClient() LogicalException

    正如标题所示 我正在使用 Symfony 5 构建一个 API 我有一些控制器需要不同的用户权限 我想测试它们 所以我决定创建两个具有不同角色的用户用于测试目的 ROLE USER and ROLE ADMIN 当前的代码是这样的 注意 这
  • MySql:显示列但排除除字段名称之外的所有内容

    我想将表的字段名称从 MySql 提取到 python 中 我知道 show columns from project 将工作 我读到您可以添加 WHERE 以将其限制为某些字段 但我找不到如何仅返回列名而不返回类型 键 空 额外信息的示例
  • Rails.cache.clear 和 rake tmp:cache:clear 有什么区别?

    这两个命令等效吗 如果不是 有什么区别 rake 任务仅清除存储在文件系统中的文件 Rails root tmp cache 这是该任务的代码 namespace cache do desc Clears all files and dir
  • 需要了解SemaphoreSlim的用法

    这是我的代码 但我不明白是什么SemaphoreSlim是在做 async Task WorkerMainAsync SemaphoreSlim ss new SemaphoreSlim 10 List
  • ASP.NET / IIS 远程调试 - DEBUG 动词

    我正在寻找有关 DEBUG HTTP 动词的详细信息 我很清楚这是用于远程调试 尽管我什至不确定它是用于 IIS 还是 ASP NET 如果我想直接访问此界面 即不通过 Visual Studio 而是手动发送这些命令 我需要知道什么 它的
  • 我需要为初级程序员进行一些简单的逻辑/编程练习[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前正在教授员工 ECMA 脚本 因为维护我们使用的工作流程系统需要它 并且我需要一些挑战来用作练习 我们已经涵盖了大部分语言 他现在非
  • 为遗留库创建代码契约

    最终目标是为驻留在我无法控制的外部程序集中的类指定契约 即我不能直接向该类添加契约 到目前为止我已经尝试过 ContractClassFor属性 不起作用 因为目标类必须指向合约类 通过对自动生成的程序集进行逆向工程 手动构建合同引用程序集
  • Bingpreview 使电子邮件中的一次性链接失效

    Outlook com 似乎使用必应预览 https www bing com webmaster help which crawlers does bing use 8c184ec0爬虫来爬行电子邮件中的链接 但在打开电子邮件后 用户有机
  • GCC 选项强制执行 Ansi C 标准检查?

    我应该使用哪些 gcc 选项来强制执行 ANSI C C99 警告 错误 gcc GCC 3 4 2 mingw 特殊 我在用着 gcc 学究式 ansi std c99 它是否正确 The ansi标志是同义词 std c89 flag
  • CakePHP 2.1.0:如何创建“停机维护”页面

    我正在尝试实现类似的东西马克 斯托里的 停机维护 页面 http mark story com posts view quick and dirty down for maintenance page with cakephp使用 Cake
  • 代码中未初始化的指针

    我正在学习 C 我发现指针如果未初始化可能会指向内存中的随机位置 并产生内存可能被其他程序使用的问题 现在 如果是这种情况 我们就不应该在代码的任何部分包含这一行 int ptr 相反 我们应该有类似的东西 int ptr NULL Is
  • Spring 批处理:FlatFileItemWriter 标头从未被调用

    我的 FlatFileItemWriter 回调有一个奇怪的问题 我有一个自定义 ItemWriter 实现 FlatFileFooterCallback 和 FlatFileHeaderCallback 因此 我在 FlatFileIte
  • 将 Android Google Maps v2 与自定义 View 或 ImageView 结合使用

    基本上我希望能够使用 Google 地图 v2 在地图上绘制雷达图像 并使用良好的 性能并且位图图像没有闪烁或延迟 我目前正在使用 Maps v1 来执行此操作 效果很好 但是 Maps v2 不太适合这样做 您可能认为 GroundOve
  • 反射 - 在我自己的程序集中递归迭代对象的属性 (Vb.Net/3.5)

    我想知道是否有人可以帮助我 我没有做太多反思 但了解基本原理 我正在尝试做的事情 我正在开发一个类 该类收集大量有关本地系统 网络等的信息 用于自动错误报告 我 理想情况下 希望能够将批次序列化为 XML 字符串并仅将其显示在文本框中 而不
  • vue Express上传多个文件到亚马逊s3

    我需要有关如何在亚马逊 S3 上上传多个文件图像的帮助 我假设我有三个这样的输入
  • 聚合实体框架中的 List Code First

    我最初在聚合中使用 Enum 这对我来说工作得很好 但现在当我将属性更改为 List 时 我发现这些值没有在数据库中保存或检索 我认为 CodeFirst 会创建一个单独的表并映射其中的行 但事实并非如此 值既不被存储也不被检索 Agg p
  • 在不同数量的行上重复计算 fft

    我有兴趣计算矩阵第一行的 fft 但我事先不知道需要多少行 我需要重复执行此操作 但需要转换的行数可能会改变 我将用下面的例子来说明 假设我有一个 100 x 128 的数组 如果我在每一行上计划一维 fft FFTW 会生成以下计划 df