脑瓜巨痛 2021-10-24 15:59 采纳率: 50%
浏览 46
已结题

关于matlab FFT问题,时域图很符合预期,但是快速傅里叶变换处理后的频域图失败了

计算出的数据进行FFT,频域信号不正确。

下图是时域图

img

下图是我得出的频域图

img

(频域图的横纵坐标代表什么?)

代码如下,v是数据。

fs=10000;
T=1/fs;
N=length(v);
n=0:N-1;
y=fft(v,N);
mag=abs(y);
f=n*fs/N;
a=f;
b=mag;

不知道是代码的问题还是别的
感谢解答

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-10-24 16:12
    关注

    fft变换,自己看代码:
    假设你有时间数组t和信号数组v,如此即可

    fs = floor(1/mean(diff(t)));
    x = v;
    n = 2^floor(log2(length(x)));
    t = t(1:n);
    x = x(1:n);
    L = numel(t);
    %然后对x作傅里叶变换,按照采样频率1000
    %这样的话就会出现200赫兹地方的双冲击
    y = fft(x,n);
    P2 = abs(y/L);
    k = floor(L/2);
    f = (0:k-1)*fs/L;
    plot(f(1:k),P2(1:k))
    xlabel('频率');ylabel('幅值')
    

    一定要注意,采样频率和时间之间的关系

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog