请问怎麼用matlab 转换傅立叶图形? matlab傅立叶
- 初学者:怎样用MATLAB编程实现图像的傅立叶变换并显示出来啊?谢谢了
- 如何使用matlab进行傅里叶变换
- 关于MATLAB中用fourier函数进行傅里叶变换作图
- 用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了吧,我对傅立叶变化后的画图不太确定。