文章目录

  • 一、离散傅立叶变换
    • 1.fft/ ifft——快速傅立叶变换/反变换
    • 2.fftn-进行n维快速傅里叶变换
    • 3.fft2-进行2维快速傅里叶变换
  • 二、离散余弦变换
    • 1.dct2 函数
    • 2.dict2 函数
    • 3.dctmtx 函数

一、离散傅立叶变换

1.fft/ ifft——快速傅立叶变换/反变换

  • Y=fft(X)/Y=ifft(X)函数
    按照基2的算法对X进行快速傅立叶变换/反变换。若X是一个矩阵,则对矩阵的每列进行快速傅立叶变换l反变换,返回Y是和X相同大小的矩阵。若X是一个多维序列,则对第一个非单独维进行快速傅立叶变换/反变换。
  • Y=fft(X,n)/Y=ifft(×,n)函数
    对X进行n点快速傅立叶变换/反变换。当X是一个向量,若X的长度小于n,则先对X进行补零使其长度为n;若X的长度大于n,则对X进行剪切使其长度为n,最后得到一个长度为n的向量Y。当X是一个矩阵,则利用同样方法对矩阵的每一列进行调整,然后对矩阵的每列进行快速傅立叶变换/反变换,最后得到一个n行的矩阵Y。
  • Y=fft(X,n,dim)/Y=ifft(×,n,dim)
    用法同上。dim用来指定进行快速离散傅立叶变换/反变换的维数。

2.fftn-进行n维快速傅里叶变换

  • Y = fftn(X)运用多维快速傅里叶变换(FFT)算法,计算X的n维离散傅里叶变换值。参量X可为向量、矩阵和多维数组。
  • Y = fftn(X,size)运用多维快速傅里叶变换(FFT)算法,计算X的n维离散傅里叶变换值。参量size为向量,其元素指定变换前X各维的大小。如果X的维数与size不同,则对X进行补零或截短后进行计算。

代码示例:

y = fftn(rand(50));
t = fftn(rand(50),[100 100]);

运行结果:

3.fft2-进行2维快速傅里叶变换

  • Y =fft2(X)计算矩阵X的二维离散傅里叶变换矩阵Y。X和Y的维数相同。
  • Y = fft2(×,m,n)计算矩阵X的二维离散傅里叶变换矩阵Y。在变换前先将X补零至m×n矩阵。如果m或n比A的维数小,则将X截短。Y的维数为m×n。

代码示例:

y = fft2(rand(10));
t = fft2(rand(50),20,20);

运行结果:

代码示例:

I=imread('rabbit.jpg');
I = rgb2gray(I);
subplot(121);imshow(I)
% 求离散傅立叶频谱
J=fftshift(fft2(I));
subplot(122);imshow(log(abs(J)),[8,10])

二、离散余弦变换

1.dct2 函数

功能: 二维离散余弦变换全页折叠
语法:

  • B = dct2(A)
    返回 A 的二维离散余弦变换。矩阵 B 包含离散余弦变换系数 B(k1,k2)。
  • B = dct2(A,m,n) or B = dct2(A,[m n])
    B = dct2(A,m,n) 和B = dct2(A,[m n]) 用 0 对矩阵 A 进行填充,使其大小为 m×n。如果 m 或 n 小于 A 的对应维度,则 dct2 在变换前对 A 进行裁切。

代码示例:

I=imread('rabbit.jpg');
I = rgb2gray(I);
subplot(121);imshow(I);
J = dct2(I);
subplot(122);imshow(log(abs(J)),[])
colormap(jet)
colorbar
J(abs(J)<10) = 0;
K = idct2(J);
figure, imshow(I)
figure, imshow(K,[0 255])
B = dct2(I,300,300);

运行结果:

2.dict2 函数

功能: DCT 反变换
格式:

  • B=idct2(A)
  • B=idct2(A,m,n)
  • B=idct2(A,[m,n])
    说明:
    B=idct2(A) 计算 A 的 DCT 反变换 B ,A 与 B 的大小相同;
    B=idct2(A,m,n) 和 B=idct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大小为 m×n。

3.dctmtx 函数

功能: 计算 DCT 变换矩阵
格式: D=dctmtx(n)
说明:
D=dctmtx(n) 返回一个 n×n 的 DCT 变换矩阵,输出矩阵 D 为 double 类型
代码示例:

D=dctmtx(10)

运行结果:

图像的变换——fft/ ifft、fftn、fft2、dct2、dict2、dctmtx相关推荐

  1. fftw3/gsl/kissfft/OouraFFT库中傅里叶变换/反傅里叶变换函数和Matlab中的fft/ifft的对应关系

    先分析一维度的 一.fftw_plan_dft_1d 正变换: fftw_complex *in = fftw_malloc ( sizeof ( fftw_complex ) * n ); fftw ...

  2. 如何使用计算机实现fft,快速傅立叶变换(FFT)的计算机实现..doc

    快速傅立叶变换(FFT)的计算机实现. 信号与系统课程设计 --FFT的计算机实现 快速傅里叶变换(FFT)的计算机实现 赖智鹏 华中科技大学电气与电子工程学院0809班U200811806 Emai ...

  3. 快速傅立叶变换(FFT)的海面模拟

    快速傅立叶变换(FFT)的海面模拟 在这篇文章中,我们将根据Tessendorf的论文[1]中的方程来实现统计波浪模型,以模拟海洋水.  使用快速傅立叶变换,我们将能够实现实时交互的帧速率.以下提供两 ...

  4. 图像傅立叶变换的原理和物理意义

    图像傅立叶变换的原理和物理意义 图像的傅立叶变换,原始图像由N行N列构成,N必须是基2的,把这个N*N个包含图像的点称为实部,另外还需要N*N个点称为虚部,因为FFT是基于复数的,如下图所示: (// ...

  5. python fft ifft

    文章目录 条件 代码 实例 条件 任何一个满足狄利克雷条件的函数都可以通过傅里叶基数展开. numpy和scipy中都有fft变换,且效果都是一样的. 代码 import numpy as np fr ...

  6. 基于vivado实现FFT/IFFT

    文章目录 前言 一.基本过程 二.vivado配置 1.新建工程 2.调用DDS的IP核 2.调用FFT的IP核 三.编写Verilog程序 1.顶层文件fft.v 2.仿真文件fft_tb.v 四. ...

  7. 离散傅里叶变换(DFT/IDFT、FFT/IFFT)运算量的讨论

    前言:关于为什么要写这个博客 最近在重新看<合成孔径雷达成像 算法与实现>这本书,看到"离散傅里叶变换记其逆变换的运算量级为"这句话,就想起当初在学<数字信号处理 ...

  8. 快速傅立叶变换fft_使用快速傅立叶变换fft从气候数据中提取季节性模式

    快速傅立叶变换fft Meteorology students hardly experience smooth and expeditious data analysis. When comes t ...

  9. 【OpenCV 4开发详解】图像距离变换

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

最新文章

  1. 教程,使用YCSB测试MYSQL数据库,获取千万条测试后的数据
  2. 终于!这个强大的「开源图像识别系统」上线了!
  3. 使用spark计算文档相似度
  4. [译] 响应式 Web 应用(一)
  5. [zz]淘宝子团关于kvm 调优的分享
  6. java线程的内存模型_java多线程内存模型
  7. git gui here如何汉化_你不知道的一些在Git使用中的奇技淫巧!
  8. campaign read in WebUI - Fiori is correct!
  9. LeetCode 1223. 掷骰子模拟(DP)
  10. mysql begin operations_MySQL入门(七):More JOIN operations
  11. c++题目大坑:分数化小数
  12. StructureMap 作为 ASP.NET MVC 的 DI 框架的使用实例
  13. Paip.断点调试MYSQL存储过程跟函数的解决方案大法
  14. 自动刷新徐小明股市直播内容
  15. 阿里巴巴android图标素材网,阿里巴巴图标素材库
  16. 两个ROS系统进行通信(通过路由器,可上网)
  17. oracle使用心得(3)——PLSQL导出pde文件乱码
  18. INTEL 傲腾16G 的再利用
  19. ceph pg peering和恢复 (1)
  20. 51单片机:编程实现数码管显示0~999999的秒表计时,高位的0不显示。

热门文章

  1. 微信小程序,配置web-view业务域名,文件检测失败
  2. Android实现二维码扫描功能(一)ZXing插件接入
  3. 【水利物联网】雨污水泵站监控系统方案
  4. 简单实现 iframe 全屏显示
  5. 什么是射频滤波器?它的起源背景是什么?-道合顺大数据Infinigo
  6. 计算机网络实验:虚拟局域网VLAN的配置
  7. RocketMQ源码阅读-NameServer篇
  8. 2022-4-2 Leetcode 563.二叉树的坡度
  9. 2022-4-2 Leetcode 409.最长回文串
  10. 查看APP的UI布局的工具