matlab fft2 fftshift,matlab fft fftshift
在图象处理的广泛应用领域中,傅立叶变换起着非常重要的作用,具体表现在包括图象分析、图象增强及图象压缩等方面。
fftshift的作用正是让正半轴部分和负半轴部分的图像分别关于各自的中心对称。因为直接用fft得出的数据与频率不是对应的,fftshift可以纠正过来
假设f(x,y)是一个离散空间中的二维函数,则该函数的二维傅立叶变换的定义如下:
p=0,1…M-1 q=0,1…N-1 (1)
或 p=0,1…M-1 q=0,1…N-1
(2)
离散傅立叶反变换的定义如下:
m=0,1…M-1 n=0,1…N-1(3)
F(p,q)称为f(m,n)的离散傅立叶变换系数。这个式子表明,函数f(m,n)可以用无数个不同频率的复指数信号和表示,而在频率(w1,w2)处的复指数信号的幅度和相位是F(w1,w2)。
例如,函数f(m,n)在一个矩形区域内函数值为1,而在其他区域为0,如图所示。
了简便起见,假设f(m,n)为一个连续函数,则f(m,n)的傅立叶变换的幅度值(即 )显示为网格图,如图所示。
将傅立叶变换的结果进行可视化的另一种方法是用图象的方式显示变换结果的对数幅值 ,如图所示。
几种简单函数的傅立叶变换的频谱可以直观的表示为图所示的样子。
2、MATLAB提供的快速傅立叶变换函数
(1fft2
fft2函数用于计算二维快速傅立叶变换,其语法格式为:
B = fft2(I)
B = fft2(I)返回图象I的二维fft变换矩阵,输入图象I和输出图象B大小相同。
例如,计算图象的二维傅立叶变换,并显示其幅值的结果,如图所示,其命令格式如下
load imdemos saturn2
imshow(saturn2)
B = fftshift(fft2(saturn2));
imshow(log(abs(B)),[],'notruesize')
(2)fftshift
MATLAB提供的fftshift函数用于将变换后的图象频谱中心从矩阵的原点移到矩阵的中心,其语法格式为:
B = fftshift(I)
对于矩阵I,B = fftshift(I)将I的一、三象限和二、四象限进行互换。
(2)ifft2
ifft2函数用于计算图象的二维傅立叶反变换,其语法格式为:
B = ifft2(I)
B =
ifft2(A)返回图象I的二维傅立叶反变换矩阵,输入图象I和输出图象B大小相同。其语法格式含义与fft2函数的语法格式相同,可以参考fft2函数的说明。
3、简单低通滤波器的设计
一个图象经过傅立叶变换后,就从空域变到了频域,因此我们可以用信号处理中对于频域信号的处理方法对一幅图象进行处理。比如对图象进行低通滤波等。
一个二维的理想低通滤波器(ILPF),它的传递函数由下式确定:
若 (4)
0 若
式中D0是一个规定的非负的量,称为截止频率,虽然在计算机中必定能够模拟一个锐截止频率的理想低通滤波器,但它们不能用电子元件来实现。实际中比较常用的低通滤波器有:巴特沃思(Butterworth)滤波器、指数滤波器(ELPF)、梯形低通滤波器等。
在实验中我们设计一个理想的低通滤波器。
设计理想的低通滤波器由其定义可知只要设计一个与频域图象大小完全相同的矩阵。在某一个域值内该矩阵的值为1,其余为0即可。
例:若图象的大小为128*128,则可以这样设计一个低通滤波器:
H=zeros(128);
H(32:96,32:96)=1; %此处的范围是人为取定的,可以根据需要更改。
若图象矩阵I的傅立叶变换是B(已经用fftshift将频谱中心移至矩阵的中心),则对这幅图象做低通滤波,再做傅立叶逆变换命令为
LOWPASS=B.*H; %此处设变换后的矩阵为LOWPASS,另注意这儿是矩阵的点乘。
C=ifft2(LOWPASS);
Imshow(abs(C))
matlab fft2 fftshift,matlab fft fftshift相关推荐
- matlab函数fftshift,matlab中fft算法_matlab中fftshift函数_matlab中fft函数的用法(2)
plot([0 : PointNum/2 - 1], x1(1:PointNum/2)); grid on subplot(3,1,2); % [REX IMX] am = sqrt(abs(REX. ...
- matlab fftshift_matlab下实现FFT信号分析
奈奎斯特定理: 对于信号分析,我们需要掌握一个定理: 在进行模拟/数字信号的转换过程中,当采样频率 fs.max大于信号中最高频率 fmax 的 2 倍时(fs.max > 2fmax),采样之 ...
- matlab fft2的作用,为什么Matlab fft2比OpenCV dft快得多(why Matlab fft2 is much faster than OpenCV dft)...
为什么Matlab fft2比OpenCV dft快得多(why Matlab fft2 is much faster than OpenCV dft) 我只是测试比较OpenCV的dft函数和Mat ...
- matlab fft实现dft,matlab实现dft和fft
对任意长度的序列进行傅里叶变换 DFT 与 FFT 的运算时间比较 设计要求 利用 Matlab 或者 C 语言设计 DFT 和 FFT 程序,比较两种频谱分析方法的 计算速度,并与...... DF ...
- matlab doc函数,matlab常用函数.doc
matlab常用函数.doc MatLab 常用函数 1. 特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 name ...
- matlab的fftn,matlab fftn
(X,m,n) fftn 进行 n 维快速傅立叶变换(反变换用 ifftn) 语法:Y=ffn(X) \\ Y=fftn(X,siz) fftshift 快速傅立叶变换的 DC 组件移到光谱中心 语法 ...
- matlab泰勒图,matlab画泰勒图
急 在matlab中写个用泰勒级数计算arctan(x)的方程 clear;clc;x=1;s=0;y=atan(x);fori=1:1e6n=2*i-1;s=s+(-(-1)^i)*(x^n)/n; ...
- matlab dft,讲解:DFT、Matlab、Matlab、FFTSQL|Matlab
讲解:DFT.Matlab.Matlab.FFTSQL|MatlabIntroductionThis lab is a revision of the Discrete Fourier Transfo ...
- matlab pi表示,matlab中pi是什么意思
解:MATLAB 源程序为 >> t=0:0.001:40; >>ft=5*sawtooth(pi/5*t,0.5); >>plot(t,ft),grid on & ...
- matlab构造核函数,matlab常用核函数
[总页数]3 页(12-14) [关键词]支持向量机;核函数;分类精度;MATLAB 工具箱 [作者]欧阳中;王育齐;俞梅洪 [作者单位]闽南师范大学计算机科学与工程系 ...... SVM 分类核函 ...
最新文章
- 电脑回收站删除的文件怎么恢复,原来这么简单
- SpringMVC响应Restful风格请求404
- android studio导入jar包
- 对select的结果进行count统计
- iOS:转载:IOS谓词--NSPredicate
- 一篇文章带你熟悉 TCP/IP 协议-(三)
- php form表单验证,Validform表单验证总结篇
- ARMLINUX学习笔记(3)---安装交叉编译器
- sqoop导入数据常见问题解决方法
- (转载)学习Javascript闭包(Closure)
- 重启VirtualBox里面的系统提示VT-x features locked or unavailable in MSR错误
- 如何用互联网思维搞定零售业
- HashSet类求集合与集合之间是否为真子集或真超集
- Redisson读写锁
- 阿里NASA计划“亮剑”:谢崇进和他追求的科学极限
- 《匆匆那年》的你,还记得吗?数学中的那些有(hui)趣(se)的定理(4)——无限猴子定理
- ROS从入门到精通系列(十三)-- PR2移动双臂机器人基础
- npm安装依赖报错 unable to resolve dependency tree....
- 什么是注入式攻击,如何防止sql注入式攻击。
- 微信小程序抓包教程:Burpsuite版 附所需工具