使用Matlab求解一列离散数据的功率谱密度,通过实验采集到了随时间变化的加速度数据,其中时间存在txt文档的第一列,加速度数据存在第三列,采样率为5000Hz,采样时间为100秒,下面是我的一个Matl
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/02 16:28:26
使用Matlab求解一列离散数据的功率谱密度,通过实验采集到了随时间变化的加速度数据,其中时间存在txt文档的第一列,加速度数据存在第三列,采样率为5000Hz,采样时间为100秒,下面是我的一个Matl
使用Matlab求解一列离散数据的功率谱密度,
通过实验采集到了随时间变化的加速度数据,其中时间存在txt文档的第一列,加速度数据存在第三列,采样率为5000Hz,采样时间为100秒,下面是我的一个Matlab程序,首先画出了原始时域信号,然后画出傅里叶变化后幅值的模,然后画出功率谱密度随频率的变化,其应该是横轴为频率,纵轴为功率谱密度值.可是我通过程序得出的图和自带软件画出的图差别挺大,
M =load('data.txt');
T=M(:,1);
A=M(:,3);
figure(1);
plot(T,A);
y=fft(A,50000);
m=abs(y);
f1=(0:length(y)/2-1)'*5000/length(y);%计算变换后不同点对应的幅值
figure(2);
plot(f1,m(1:length(y)/2));
p=y.*conj(y)/50000; %计算功率谱密度
ff=5000*(0:length(y)/2-1)/50000; %计算变换后不同点对应的频率值
figure(3);
plot(ff,p(1:length(y)/2));
使用Matlab求解一列离散数据的功率谱密度,通过实验采集到了随时间变化的加速度数据,其中时间存在txt文档的第一列,加速度数据存在第三列,采样率为5000Hz,采样时间为100秒,下面是我的一个Matl
完全没有问题
y是一个复数,
m=abs(y);
p=y.*conj(y)/50000;
这两个都能把y转化成实数,但p的每一个值都是m对应值的平方.一般p用的多点