VS2019中添加FFTW3库 + cmake工程

news2024/12/22 10:29:09

一、FFTW3官网

http://www.fftw.org/install/windows.html

二、我这里是选的64位的版本,可根据自己的需要选择对应的版本

在这里插入图片描述

三、解压得到

在这里插入图片描述

四、根据官网的说明,需进行编译生成.lib文件

在这里插入图片描述

4.1 在解压目录打开cmd

在这里插入图片描述

4.2 生成 .lib 文件

终端依次输入
lib /machine:x64 /def:libfftw3-3.def
lib /machine:x64 /def:libfftw3f-3.def
lib /machine:x64 /def:libfftw3l-3.def

win32可以不用输入 machine:x64

4.2.1 生成成功后会出现三个.lib文件

在这里插入图片描述

4.3 注意:上一步可能会报错:未定义lib 等等

原因:没有设置好vs中lib.exe的环境变量

解决方法如下

4.3.1 找到 vs2019 安装路径

在这里插入图片描述

4.3.2 搜索 lib.exe ,打开可执行文件所在路径

在这里插入图片描述

4.3.3 将这个路径添加进环境变量

在这里插入图片描述

五、配置camke环境

5.1 配置 CMakeList.txt 文件

在这里插入图片描述

5.2 将动态库移动到项目的可执行文件同一目录

在这里插入图片描述

六、测试

#include <iostream>
#include <vector>
#include <cmath>
#include <fftw3.h>

int main() {
    // 定义信号参数
    const int N = 1024;  // 信号长度
    const double T = 1.0 / 800.0;  // 采样周期
    std::vector<double> signal(N);

    // 生成正弦波信号
    for (int i = 0; i < N; ++i) {
        signal[i] = 0.7 * sin(2 * M_PI * 50 * i * T) + 0.3 * sin(2 * M_PI * 120 * i * T);
    }

    // 分配输入和输出数组
    fftw_complex *in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    fftw_complex *out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);

    // 将信号复制到输入数组中
    for (int i = 0; i < N; ++i) {
        in[i][0] = signal[i];  // 实部
        in[i][1] = 0.0;        // 虚部
    }

    // 创建 FFT 计划
    fftw_plan plan = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);

    // 执行 FFT
    fftw_execute(plan);

    // 输出频域结果
    std::cout << "Frequency domain results:" << std::endl;
    for (int i = 0; i < N; ++i) {
        double magnitude = sqrt(out[i][0] * out[i][0] + out[i][1] * out[i][1]);
        std::cout << "Frequency bin " << i << ": " << magnitude << std::endl;
    }

    // 清理
    fftw_destroy_plan(plan);
    fftw_free(in);
    fftw_free(out);

    return 0;
}

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

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

相关文章

解决:安装MySQL 5.7 的时候报错:unknown variable ‘mysqlx_port=0.0‘

目录 1. 背景2. 解决步骤 1. 背景 吐槽1&#xff0c;没被收购之前可以随便下载&#xff0c;现在下载要注册登录吐槽2&#xff0c;5.7安装到初始化数据库的时候就会报错&#xff0c;而8.x的可以一镜到底&#xff0c;一开始以为是国区的特色问题&#xff0c;google了一圈&#x…

动力学仿真平台:让模型配置与仿真测试更高效!

背景概述 动力学仿真平台是一种基于计算机技术的模拟工具&#xff0c;旨在模拟和分析物理系统中的动力学行为。通过建立数学模型&#xff0c;并借助高效的数值计算方法来模拟复杂系统的运动规律&#xff0c;为科研、设计、工程等领域提供重要的决策支持。动力学仿真平台的重要性…

Python高效处理海量气溶胶数据;MODIS和CALIPSO气溶胶数据下载、处理与反演分析

目录 专题一 碳中和下气溶胶的研究意义 专题二 夯实Python语言基础及代码讲解 专题三 MODIS气溶胶数据处理与反演分析 专题四 CALIPSO气溶胶数据处理及反演分析 专题五 总结与扩展 更多应用 在当前全球气候变化和环境污染问题日益突出的背景下&#xff0c;气溶胶研究显得…

Codeforces Round 950 G. Yasya and the Mysterious Tree 【树上异或和差分、01Trie】

G. Yasya and the Mysterious Tree 题意 给定一颗 n n n 个节点的树&#xff0c;每条边有一个初始的权值 现在定义两种操作&#xff1a; ^ y \; y y&#xff0c;给所有的边的权值异或上 y y y? u x u \; x ux&#xff0c;在树上任选一个不等于 u u u 的点&#xff0c;在…

用 Azure OpenAI 服务开发生成式 AI

简介 在当今迅速发展的技术环境中&#xff0c;生成式人工智能&#xff08;AI&#xff09;成为了众多企业创新和优化业务流程的重要工具。微软的 Azure OpenAI 服务为开发生成式 AI 解决方案提供了强大的平台和工具。本文将介绍如何利用 Azure OpenAI 服务开发生成式 AI 解决方…

Flink作业执行之 2.算子 StreamOperator

Flink作业执行之 2.算子 StreamOperator 前文介绍了Transformation创建过程&#xff0c;大多数情况下通过UDF完成DataStream转换中&#xff0c;生成的Transformation实例中&#xff0c;核心逻辑是封装了SimpleOperatorFactory实例。 UDF场景下&#xff0c;DataStream到Transf…

免费听歌,电脑或手机免费听歌,落雪音乐安装详细步骤

近年来&#xff0c;由于资本的力量导致各种收费&#xff0c;看个电视想听歌都必须要付费了&#xff0c;否则你听不完整&#xff0c;吃相非常难看&#xff0c;特别是电视&#xff0c;吸血鬼式吸收各种会员费&#xff0c;各种APP也是铺天盖地的广告&#xff0c;渐渐迷失了自我&am…

【C++】AVL树/红黑树实现及map与set的封装

前言 【C】二叉树进阶&#xff08;二叉搜索树&#xff09; 这篇文章讲述了关于二叉搜索树知识&#xff0c;但是二叉搜索树有其自身的缺陷&#xff0c;假如往树中插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff…

CCAA质量管理体系 (2021)

一、考试大纲 中 国 认 证 认 可 协 会 质量管理体系基础考试大纲 第 1 版 文件编号&#xff1a;CCAA-TR-105-01:2021 发布日期&#xff1a;2021 年 3 月 2 日 实施日期&#xff1a;2021 年 4 月 1 日 质量管理体系基础考试大纲&#xff08;第 1 版&#xff09;1.总则 本大…

大数据集成平台建设方案(Word方案)

基础支撑平台主要承担系统总体架构与各个应用子系统的交互&#xff0c;第三方系统与总体架构的交互。需要满足内部业务在该平台的基础上&#xff0c;实现平台对于子系统的可扩展性。基于以上分析对基础支撑平台&#xff0c;提出了以下要求&#xff1a; 基于平台的基础架构&…

LabVIEW电源适应能力检测系统

随着工业自动化程度的提高&#xff0c;电源质量直接影响设备的稳定运行。利用LabVIEW开发一个单相电源适应能力检测系统&#xff0c;该系统通过智能化和自动化测试&#xff0c;提高了测试效率&#xff0c;减少了人为错误&#xff0c;保证了电源质量的可靠性。 项目背景 在现代…

软件系统设计开发规程(Word文件)

技术解决方案过程包括&#xff1a; 1、选择最佳解决方案&#xff1b; 2、制定架构设计&#xff1b; 3、制定概要设计&#xff1b; 4、制定详细设计和数据库设计&#xff1b; 5、利用准则进行接口设计&#xff1b; 6、实现设计&#xff1b; 7、进行单元测试&#xff1b; 8、进行…

知乎社招1年Go开发123+HR面经,期望22k

面经哥只做互联网社招面试经历分享&#xff0c;关注我&#xff0c;每日推送精选面经&#xff0c;面试前&#xff0c;先找面经哥 一面‍ 0、自我介绍 1、你才工作一年为什么就想找机会了&#xff08;为什么想跳&#xff09;【甩锅给公司&#xff0c;反正不是我的问题】 2、对…

boot项目配置邮箱发送

最近项目准备进入测试阶段&#xff0c;时间相对充沛些&#xff0c;便对邮箱的信息发送记录下&#xff01; 邮箱设置-开启smtp协议及获取授权码 以QQ邮箱为例&#xff0c;其他邮箱大同小异&#xff01; 开启协议 获取授权码 具体代码 基于javax.mail实现 原文可看 前辈帖子…

达梦数据库上市,给数据库国产化加油打气

吉祥学安全知识星球&#x1f517;除了包含技术干货&#xff1a;《Java代码审计》《Web安全》《应急响应》《护网资料库》《网安面试指南》还包含了安全中常见的售前护网案例、售前方案、ppt等&#xff0c;同时也有面向学生的网络安全面试、护网面试等。 作为家乡的企业上市必须…

蓝牙音频解码芯片TD5163介绍,支持红外遥控—拓达半导体

蓝牙芯片TD5163A是一颗支持红外遥控、FM功能和IIS音频输出的蓝牙音频解码芯片&#xff0c;此颗芯片的亮点在于同时支持真立体声&单声道、TWS功能、PWM、音乐频谱和串口AT指令控制等功能&#xff0c;芯片在支持蓝牙无损音乐播放的同时&#xff0c;还支持简单明了的串口发送A…

RTE Open Day 联手 AGI Playground,最先锋 RTE+AI Builders 齐聚北京丨活动招募

6 月 22 日至 23 日&#xff0c;北京&#xff0c;AGI Playground 2024 即将引燃今夏&#xff01; 这场备受瞩目的 AGI 盛会&#xff0c;将汇聚王小川、杨植麟等众多创业者。RTE 开发者社区的 Builders 和 RTE Open Day 也将亮相其中&#xff01; 「有一群人在一起&#xff0c…

云计算【第一阶段(13)】Linux的Find命令

一、查找文件或目录Find 格式 find 查找的范围 类型 查找数据 1.1、常用查找类型 查找类型关键字说明按名称查找-name根据目标文件的名称进行查找&#xff0c;允许使用“*”及“&#xff1f;”通配符按文件大小查找-size根据目标文件的大小进行查找&#xff0c;一般使用…

[华为北向网管NCE开发教程(6)消息订阅

1.作用 之前介绍的都是我们向网管NCE发起请求获取数据&#xff0c;消息订阅则反过来&#xff0c;是网管NCE系统给我们推送信息。其原理和MQ&#xff0c;JMS这些差不多&#xff0c;这里不过多累述。 2.场景 所支持订阅的场景有如下&#xff0c;以告警通知为例&#xff0c;当我…

基于51单片机智能路灯控制—人数、光强

基于51单片机智能路灯控制 &#xff08;仿真&#xff0b;程序&#xff09; 功能介绍 具体功能&#xff1a; 1.光敏电阻与电阻组成分压电路&#xff0c;环境光强度越强&#xff0c;光敏电阻越小&#xff0c;ADC检测的电压越强&#xff1b; 2.红外计数传感器&#xff08;按键…