您的位置:首页 >滚动 >

如何用matlab做傅里叶变换?matlab实现傅里叶变换?

2023-01-12 10:17:09    来源:酷狗科技网

1、我们使用matlab开发的傅立叶变换程序代码如下:

syms x

f = exp(-2*x^2); %our function

ezplot(f,[-2,2]) % plot of our function

FT = fourier(f) % Fourier transform

将其写入到我们的matlab程序模块中。

2、我们运行上面的傅立叶变换程序代码,将得出运行结果:FT = (2^(1/2)*pi^(1/2)*exp(-w^2/8))/2。

3、如果我们需要更高级的显示,我们修改上述代码即可,如使用ezplot(FT)作傅里叶变换折线图。

%读取图片,展示图片 I=imread('p3.jpg'); figure('Name','原图','NumberTitle','off');imshow(I); I=rgb2gray(I); %I = rgb2gray(RGB) 将真彩色图像 RGB 转换为灰度图像 I。 I=im2double(I); %I = im2double(I) 将图像 I 转换为双精度。 figure('Name','灰度图','NumberTitle','off');imshow(I,[0,1]);%展示原灰度图像 F=fft2(I); %Y = fft2(X) 使用快速傅里叶变换算法返回矩阵的二维傅里叶变换,这等同于计算 fft(fft(X).').'。如果 X 是一个多维数组,fft2 将采用高于 2 的每个维度的二维变换。输出 Y 的大小与 X 相同。 Fm=abs(F);%得到变换后的模 T=log(Fm+1);%求自然对数 figure('Name','傅里叶变换频谱图','NumberTitle','off');imshow(T,[]);%展示傅里叶变换后的图 Ff=fftshift(F);%快速傅里叶变换 Y = fftshift(X) 通过将零频分量移动到数组中心,重新排列傅里叶变换 X。 Fm=abs(Ff); T=log(Fm+1); figure('Name','中心偏移后的傅里叶变换频谱图','NumberTitle','off');imshow(T,[]); r=log(abs(real(Ff))); i=log(abs(imag(Ff))); figure('Name','中心偏移后的傅里叶变换频谱图实部','NumberTitle','off');imshow(r,[]); figure('Name','中心偏移后的傅里叶变换频谱图虚部','NumberTitle','off');imshow(i); J=ifft2(F);%X = ifft2(Y) 使用快速傅里叶变换算法返回矩阵的二维离散傅里叶逆变换。 figure('Name','傅里叶逆变化得到的灰度图','NumberTitle','off');imshow(J,[0,1]);

关键词: 如何用matlab做傅里叶变换 matlab实现傅里叶变换 matlab傅里叶变换程序 傅里叶变换推导过程

相关阅读

精彩推送