在matlab里面想做傅里叶变化 做功率谱图
从excel里面复制数据变成 data={0.01169;
0.04548;
0.0391;
0.01998;
0.00033;
-0.00576;
0.01182;
0.02198;
0.0278;
0.02859;
0.03424;};
这样的形式
fs=8;
Y = fft(data); % 对数据进行傅里叶变换
P2 = abs(Y/length(data)); % 取幅值
P1 = P2(1:length(data)/2+1); % 取一半区间
P1(2:end-1) = 2*P1(2:end-1); % 对幅值乘2
f = Fs*(0:(length(data)/2))/length(data); % 计算频率向量
plot(f,P1.^2) % 画出功率谱图
xlabel('Frequency (Hz)') % x轴标签
ylabel('Power (W/Hz)') % y轴标签
同时一直在提示
错误使用 fft
数据类型无效。第一个参数必须为双精度值、单精度值、逻辑值。
读取Excel数据
% 使用`xlsread`函数读取Excel文件中的数据,并将其存储为MATLAB中的矩阵。例如:
[num,txt,raw] = xlsread('filename.xlsx');
data = num(:,1); % 假设数据在第一列
fs=8;
data=double(data);% 转double 类型
Y = fft(data); % 对数据进行傅里叶变换
P2 = abs(Y/length(data)); % 取幅值
P1 = P2(1:length(data)/2+1); % 取一半区间
P1(2:end-1) = 2*P1(2:end-1); % 对幅值乘2
f = Fs*(0:(length(data)/2))/length(data); % 计算频率向量
plot(f,P1.^2) % 画出功率谱图
xlabel('Frequency (Hz)') % x轴标签
ylabel('Power (W/Hz)') % y轴标签