matlab怎么绘制出功率谱
发布网友
发布时间:2022-06-05 00:44
我来回答
共3个回答
热心网友
时间:2023-11-03 11:26
t=a(:,1);%%%%t是时间;
yt=a(:,2);%%%%yt是数据;
dt=t(2)-t(1);%%%%dt是点距;
lt=length(t);%%%%是数据的长度;
f0=2*pi/(lt*dt);%%%%f0是基频;
fy=fft(yt);%%%%fy是fft变换得到的波谱;
for i=1:1:lt
f(i)=f0*(i-1);%%%%f是频率;
P(i)=abs(fy(i))^2;%%%P是功率谱;
end
plot(f,P); %%%%画图;
f的单位是秒分之一。就是频率。
P是没有单位的,就是振幅大小。如果有那是yt单位的平方。追问那我x轴和y轴怎么标注
追答xlabel('x/s^-1');ylabel(‘y/振幅');
来自:求助得到的回答
热心网友
时间:2023-11-03 11:27
一个函数就可以了psd(x);然后就会绘制出信号x的功率谱密度。
热心网友
时间:2023-11-03 11:27
不知道你什么意思?频率咋那么小?你不是做了归一化了吗?最大不就2Pi?追问没归一化,我的数据就是
0 -5.09102
0.00024414063 -2.11288
0.00048828126 -4.86507
0.00073242189 3.52306
还有频率和功率谱的单位是?
追答那你说频率那么小什么意思?频率单位可以是Hz,也可以是rad,你用的是rad,功率没有什么具体单位,叫功率只是因为取平方。