傅里叶变换(由公式推导出来的c++源代码)
来源:互联网 发布:公安部软件违章查询 编辑:程序博客网 时间:2024/06/05 03:30
一维傅立叶变化对应程序里面的一维:
二维傅立叶变化对应程序里面的二维:
#include <iostream>#include <math.h>using namespace std;float fx[4] = {1, 2, 4, 4};float fxReal[4] = {0, 0, 0, 0};float fxImag[4] = {0, 0, 0, 0};float Real[4] = {0, 0, 0, 0};float Imag[4] = {0, 0, 0, 0};float e = 2.72;float pi = 3.14;float fxTwo[4][4] = {{1, 2, 4, 4}, {1, 2, 4, 4}, {1, 2, 4, 4}, {1, 2, 4, 4}};float fxRealTwo[4][4] = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};float fxImagTwo[4][4] = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};float RealTwo[4][4] = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};float ImagTwo[4][4] = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};int main(int argc, char *argv[]){ /*一维傅里叶变换*/ for (int j = 0; j < 4; j++) { for (int i = 0;i < 4;i++) { Real[j] += fx[i] * cos(-2 * pi * j * i / 4); Imag[j] += fx[i] * sin(-2 * pi * j * i / 4); } } for (int i = 0; i < 4; i++) { cout <<"Real:"<<Real[i]<<" Imag:"<<Imag[i]<<endl; } /*一维傅里叶反变换*/ for (int j = 0; j < 4; j++) { for (int i = 0;i < 4;i++) { fxReal[j] += (Real[i] * cos(2 * pi * j * i / 4) - Imag[i] * sin(2 * pi * j * i / 4)); fxImag[j] += (Real[i] * sin(2 * pi * j * i / 4) - Imag[i] * cos(2 * pi * j * i / 4)); } } for (int i = 0; i < 4; i++) { cout <<"Real:"<<fxReal[i]/4<<" Imag:"<<fxImag[i]/4<<endl; } /*二维傅里叶变换*/ for (int v = 0; v < 4; v++) { for (int u = 0; u < 4; u++) { for (int j =0; j < 4; j++) { for (int i = 0; i < 4; i++) { RealTwo[v][u]+=fxTwo[j][i] * cos(2 * pi * u * i / 4 + 2 * pi * v * j /4); ImagTwo[v][u]+=fxTwo[j][i] * sin(-2 * pi * u * i / 4 - 2 * pi * v * j /4); } } } } /*二维傅里叶反变换*/ for (int v = 0; v < 4; v++) { for (int u = 0; u < 4; u++) { for (int j =0; j < 4; j++) { for (int i = 0; i < 4; i++) { fxRealTwo[v][u]+=RealTwo[j][i] * cos(2 * pi * u * i / 4 + 2 * pi * v * j /4) - ImagTwo[j][i] * sin(2 * pi * u * i / 4 + 2 * pi * v * j /4); fxImagTwo[v][u]+=RealTwo[j][i] * sin(2 * pi * u * i / 4 + 2 * pi * v * j /4) - ImagTwo[j][i] * cos(2 * pi * u * i / 4 + 2 * pi * v * j /4); } } } } cout<<fxRealTwo[2][2]/16<<fxImagTwo[2][2]/16<<endl; return 0;}
阅读全文
0 0
- 傅里叶变换(由公式推导出来的c++源代码)
- 傅里叶变换概念及公式推导
- 傅里叶变换的推导
- 离散傅里叶变换的推导
- 傅里叶变换的推导
- 离散傅里叶变换的推导
- 傅里叶变换的推导
- 傅里叶变换的解释与推导
- 斯特林公式的推导(简单法则)
- 求和公式的推导(1.2.3)
- 傅里叶变换推导
- CodeForces 340C Tourist Problem(组合排列,公式推导)
- Codeforces 534C Polycarpus' Dice(数学,公式推导)
- CF#368 C. Pythagorean Triples (数学/推导公式)
- CodeForces 165C Another Problem on Strings(公式推导)
- 关于傅里叶变换的理解、快速傅里叶算法的推导以及蝶形运算的c语言实现
- 贴一段导出excel的源代码(数据由数据库查询出来然后以excle的格式导出)
- 方差的期望公式推导,均值的期望公式推导
- 厉害了我的哥,迪拜政府或将发行虚拟护照
- 基于spring的文件上传
- 类型转换
- 1.7 Getting Started
- jquery侧边栏(仿购物网站)
- 傅里叶变换(由公式推导出来的c++源代码)
- PAT甲级 1003. Emergency (25)
- Linux下Pycharm配置pyqt5开发环境配置
- design项目:2、mybatis + easyui datagrid 分页查询功能介绍
- 1.8 Getting Started
- shell脚本之$(),单引号和eval的区别
- groovy Range
- 红米4手机行间距随字体大小变化
- Python 字典常用操作