⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ft2d.m

📁 任意常用二维函数傅里叶变换
💻 M
字号:
function FT2D(fun,D1,D2)%实现二维函数的傅立叶变换
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% fun为输入函数,D1、D2分别为x、y的范围        %
% 姓名:雷华       学号:10511060              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
error(nargchk(3,3,nargin));
fun=fcnchk(fun);
N1=D1^2;
N2=D2^2; 

k1=-N1/2:N1/2-1;%x方向的离散数据个数
k2=-N2/2:N2/2-1;%y方向的离散数据个数
x = (D1/N1)*k1;	%x的离散值
y = (D2/N2)*k2; %y的离散值
[xArray yArray]=meshgrid(x,y);%取x,y的网格坐标
dx = D1/N1;    %x方向的空间取样间隔
dy = D2/N1;    %y方向的空间取样间隔

f=feval(fun,xArray,yArray);%输入函数
 
absf=abs(f);  %取函数值的绝对值
absf=255.*(absf./max(max(absf)));%函数值的绝对值按比例变换到0-255,用于显示
imf=im2uint8(absf);     %将其转换为uint8类型的数

figure;
subplot(1,2,1);
imshow(imf);title('the original Function');%以灰度值的方式显示原函数


ft = fftshift(fft2(fftshift(f))); %求原函数的傅立叶变换

absft=abs(ft);  %取函数值的绝对值
absft=255.*(absft./max(max(absft)));%函数值的绝对值按比例变换到0-255,用于显示
imft=im2uint8(absft);%将其转换为uint8类型的数

subplot(1,2,2);
imshow(imft);title('the FFT result');%以灰度值的方式显示原函数
figure,
mesh(xArray,yArray,abs(f));%原函数的立体图
figure,mesh(xArray,yArray,abs(ft)); %傅立叶变换后的立体图


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -