📄 ft2d.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 + -