在 MATLAB 下如何实现对一组数据振幅谱和相位谱
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 MATLAB 下如何实现对一组数据振幅谱和相位谱相关的知识,希望对你有一定的参考价值。
我有一组数据,共7200个。 采样率是分钟值。我的问题如何用MATLAB绘出这组数据的振幅谱和相位谱。急用!谢谢各位大侠了!
cl;img=imread('15.bmp');
%img=double(img);
f=fft2(img); %傅里叶变换
f=fftshift(f); %使图像对称
r=real(f); %图像频域实部
i=imag(f); %图像频域虚部
margin=log(abs(f)); %图像幅度谱,加log便于显示
phase=log(angle(f)*180/pi); %图像相位谱
l=log(f);
subplot(2,2,1),imshow(img),title('源图像');
%subplot(2,2,2),imshow(l,[]),title('图像频谱');
subplot(2,2,3),imshow(margin,[]),title('图像幅度谱');
subplot(2,2,4),imshow(phase,[]),title('图像相位谱'); 参考技术A 为什么我觉得我以前见过这个问题。。。
数据是x(i),共N个点,采样频率是fsample
dt = 1/fsample
df = 1/N/dt
f = 0:df:(N-1)*df
X=fft(fftshift(x))
plot(f,real(X))
plot(f,imag(X))本回答被提问者和网友采纳
Matlab绘制幅值谱和相位谱
1. 对于直接给出频响函数的情况
这里以滑动平均的频响函数作为例子,滑动窗口为[0, 4]。
上式中M2=4。
>> w=0:0.001:2*pi;
>> h1=1-exp(-j*w*5);
>> h2=1-exp(-j*w);
>> h=0.2*h1./h2; % 注意这里是点除
>> plot(w/pi,abs(h)); % 横轴以pi为单位
>> plot(w/pi,angle(h));
以上是关于在 MATLAB 下如何实现对一组数据振幅谱和相位谱的主要内容,如果未能解决你的问题,请参考以下文章
求matlab周期三角波信号频谱分析的代码,能画出三角波信号、幅度谱和相位谱。