hhhjsadfghyuifgu 2023-03-06 19:55 采纳率: 60%
浏览 32
已结题

matlab对数据画出功率谱图系统提示需要参数单精度双精度。

在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
数据类型无效。第一个参数必须为双精度值、单精度值、逻辑值。

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2023-03-06 20:25
    关注

    读取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轴标签
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月6日

悬赏问题

  • ¥20 想写一个文件管理器,加载全部子文件夹后,要一级一级返回
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
  • ¥15 webots有问题,无响应
  • ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?