请问怎麼用matlab 转换傅立叶图形? matlab傅立叶

6425℃ BRETT

请问怎麼用matlab 转换傅立叶图形?matlab傅立叶

初学者:怎样用MATLAB编程实现图像的傅立叶变换并显示出来啊?谢谢了

I=imread('lena.bmp');

I=rgb2gray(I);

fftI=fft2(I);%二维离散傅立叶变换

sfftI=fftshift(fftI);%直流分量移到频谱中心

RR=real(sfftI);%取傅立叶变换的实部

II=imag(sfftI); %取傅立叶变换的虚部

A=sqrt(RR.^2+II.^2); %计算频谱幅值

B=(A-min(min(A)))./(max(max(A))-min(min(A)))*225; %归一化

pha=angle(fftI);

figure(1)%设定窗口

subplot(1,4,1),imshow(I);title('原图');

subplot(1,4,2),imshow(B);title('原图像的频谱'); %显示原图像的频谱

subplot(1,4,3),imshow(log(B),[]);title('原图像的频谱'); %显示原图像的频谱

subplot(1,4,4),imshow(pha);title('相位谱')

figure(2)

x=abs(ifft2(fftI));

magif=ifft2(abs(fftI));

phaif=ifft2(exp(1i*pha));

subplot(1,3,1),imshow(phaif,[]);title('相位谱重建图像');

subplot(1,3,2),imshow(x,[]);title('频谱重建原图像')

subplot(1,3,3),imshow(magif,[]);title('幅度谱重建图像')

如何使用matlab进行傅里叶变换

fs=100;N=128; %采样频率和数据点数n=0:N-1;t=n/fs; %时间序列x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求得Fourier变换后的振幅f=n*fs/N; %频率序列subplot(1,2,1),plot(f,mag); %绘出随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;subplot(1,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;

关于MATLAB中用fourier函数进行傅里叶变换作图

使用fourier 进行傅里叶变换后,使用如下函数进行作图处理:

function matlabksy

x=-2:.1:2;

y=rect(x);

%syms x y w

f=fft(y) ;

%由于傅里叶变化后会出现复数

%%绘制幅值

plot(abs(f))

%x实部 y虚部

plot(f)

%只是画实部

plot(real(f))

%只是绘制虚部

plot(img(f))

function y=rect(x);

% 矩形函数 rect

if length(size(x))>2;

error('the size of x must less than 3')

end

y=zeros(size(x));

y(abs(x)<0.5)=1;

用matlab进行傅立叶变换以及绘出图像

matlab语句:

syms x w;

f = 4*sin(3*x)/x;

F = fourier(f,x,w)

F =

4*pi*heaviside(3 - w) - 4*pi*heaviside(- w - 3)

heaviside(x)是x的阶跃函数。

画图的话直接给出定义域,然后就可以plot了吧,我对傅立叶变化后的画图不太确定。

TAG: 傅立叶 图形