windows下使用fftw进行傅里叶变换及其编程实例
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>#include "include/fftw3.h"
#pragma comment(lib, "libfftw3-3.lib") // double版本
// #pragma comment(lib, "libfftw3f-3.lib")// float版本
// #pragma comment(lib, "libfftw3l-3.lib")// long double版本#define PI 3.1415926int main()
{int len = 8;double *in = NULL;// 如果要使用float版本,需先引用float版本的lib库,然后在fftw后面加上f后缀即可.fftw_complex *out = NULL;// fftwf_complex --> 即为float版本fftw_plan p;in = (double *)fftw_malloc(sizeof(double) * len);out = (fftw_complex *)fftw_malloc(sizeof(fftw_complex) * len);double dx = 1.0 / len;// 输入纯实数for (int i = 0; i < len; i++){in[i] = sin(2*PI * dx*i) + sin(4*PI * dx*i);printf("%.2f ", in[i]);}printf("\n\n");// 傅里叶变换p = fftw_plan_dft_r2c_1d(len, in, out, FFTW_ESTIMATE);fftw_execute(p);// 输出幅度谱for (int i = 0; i < len; i++){float len = sqrt(out[i][0]*out[i][0] + out[i][1]*out[i][1]);printf("%.2f ", len);}printf("\n");// 释放资源fftw_destroy_plan(p);fftw_free(in);fftw_free(out);system("pause");return 0;
}
运行结果如下图所示,从结果来看,在频率为1及2两个位置有幅度输出,这与输入的频率为1及2的两个叠加正弦波吻合,结果正确。(8月23日补充:由于实数DFT变换的输出序列具有共轭对称性,因此fftw_plan_dft_r2c_1d()函数返回的序列实际长度为len /2 + 1,因此上述代码在为out分配内存时仅需分配len / 2 + 1即可。)
![](/assets/blank.gif)
windows下使用fftw进行傅里叶变换及其编程实例相关推荐
- linux c多进程多线程,linux下的C\C++多进程多线程编程实例详解
linux下的C\C++多进程多线程编程实例详解 1.多进程编程 #include #include #include int main() { pid_t child_pid; /* 创建一个子进程 ...
- windows下一个,OracleServiceXXX和Oracle 关系实例
其实,windows下的oracle,在oracle实例启动时,是全然依赖于 window服务中的OracleServiceXXX .这个XXX就是oracle的实例名(注意啊,不是数据库名称,而是实 ...
- linux c语言 信号,linux下基于C语言的信号编程实例
搜索热词 本文实例讲述了linux下基于C语言的信号编程方法.分享给大家供大家参考.具体如下: #include #include #include #include #include void si ...
- Windows下使用C语言的UDP编程接收网络调试助手发送的数据
代码 #include <stdio.h> #include <winsock2.h> #pragma comment (lib, "ws2_32.lib" ...
- 总结下linux中一些入门级shell编程实例
在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shel ...
- 【学习笔记】在windows下进行基于TCP的本地客户端和服务端socket通信
文章目录 socket介绍 java中使用socket 基于tcp的socket通信 使用ServerSocket类创建一个web服务器:(java) windows下的基于tcp的socket编程( ...
- 不用U盘安卓Linux系统,不用U盘,不要光驱,不需分区,windows下安装noilinux双系统...
信息学奥赛以前都是linux和windows系统并存,因为我们习惯了在windows下操作,所以所有的编程操作都在windows下面执行,但是今年我们湖南赛区已经在NOIP2017湖南赛区复赛操作系统 ...
- Java经典编程实例源码及视频专题汇总
转:http://blog.itpub.net/28566218/viewspace-760945/ Java经典编程实例源码及视频专题汇总 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语 ...
- linux 和 Windows下FFTW库的安装
我整理了FFTW在windows和linux下安装的过程,我自己也在这两个系统中安装成功了,还是遇到不少问题的,我接下来把网上搜到的资料和自己遇到的问题一一告诉大家,让大家少走弯路. windows ...
最新文章
- centons7网卡配置文件使用openvswitch bridge
- vscode 调试参数_如何通过vscode运行调试javascript代码
- Judy Beta 第三天
- java执行查询postgresql得到中文乱码_Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(上篇)...
- php 同步退出,Ucenter 的同步登录与同步退出
- Linux 中的 XEN 虚拟化技术(二)Xen 的安装和配置
- getElement四种方法返回的不同
- sap 归档(ARCHIVE)
- CTF之做题总结(五)
- 测试计算机性能的软件比较专业,测试电脑性能的软件都有哪些
- 计算机开机时10声响,电脑开机报警的声音有什么含义?详细教您认识报警声音
- win10下装黑苹果双系统_黑苹果macOS10.15.4单硬盘三系统安装教程
- html水平分割线虚线代码,CSS分割线虚线代码
- 为了找工作学习ssm
- MATLAB06:数字图像处理
- Java层Binder框架通信原理(转自Cloud Chou's Tech Blog)
- PS-把长方形图片改为正方形图片
- 信息安全密码学实验四:Diffie-Hellman密钥交换协议的设计与实现
- 用计算机计算圆的面积,周长直径换算器在线(圆的面积在线计算器)
- Lively Wallpaper 免费开源动画桌面壁纸,让您的桌面栩栩如生!
热门文章
- python单选按钮控件_Python Tkinter Radiobutton单选按钮
- BMS动力电池系统管理
- An 遮罩动画的制作
- 数据库SQL入门,这一篇就够了(全文内容两万字)
- 8086汇编 DEBUG命令详解
- 基于SSM的甜品店系统(含毕业论文)
- 读书笔记——《谁说菜鸟不会数据分析—Python篇》
- 超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)
- 摩尔庄园不同服务器账号互通吗,摩尔庄园手游服务器互通吗 服务器互通攻略...
- 摩尔庄园不同服务器账号互通吗,摩尔庄园手游服务器互通吗?不同服务器数据互通机制详解...