【问题标题】:FFT shows different frequencyFFT显示不同的频率
【发布时间】:2019-07-05 23:08:18
【问题描述】:

我对我的 FFT 结果有疑问。 我有 3 个来自焊接过程的音频文件,分别为 120A、130A 和 140A,音频长度约为 0,085 秒。

您可以在绘图的第一行看到音频文件。

之后,我从位于第二行的每个音频文件创建了 FFT。每个音频文件的最大峰值约为 200Hz。 120A-140A_085sec.jpg

当我计算焊接脉冲之间的周期时,在 140A 的焊接电流下,我的周期约为 0.00871 秒。 这是 FFT 图中的第一个峰值。 140A_v20.jpg

我的问题是,为什么最大峰值恰好在大约 200Hz 频率的两倍处,而不是像我在大约 100Hz 处计算的那样?

希望有人能给我解释一下

提前非常感谢! BR

    clear all
    close all

    % 120A
    [data,Fs]=audioread('Mono_120A_v20_08sec.wav');
    [nSamples,nChannels]=size(data);
    waveFileLength=nSamples/Fs;

    t=[0:length(data)-1] / Fs;

    subplot(2,1,1);
    plot(t,data)
    grid minor
    xlim([0 0.09])
    title('120A 0.085sec')
    xlabel('Zeit')
    ylabel('X(t)')

    y_fft = abs(fft(data));               %Retain Magnitude
    y_fft = y_fft(1:nSamples/2);       %Discard Half of Points
    f = Fs*(0:nSamples/2-1)/nSamples;  %Prepare freq data for plot

    subplot(2,1,2);
    plot(f, y_fft)
    grid on
    xlim([0 400])
     ylim([0 10])
    xlabel('Frequency (Hz)')
    ylabel('Amplitude')
    title('Freqenzbereich 120A')`

【问题讨论】:

    标签: matlab fft frequency


    【解决方案1】:

    我认为您的代码没有任何问题。您已经获取了 FFT 的绝对值,这将为您提供信号的频谱包络。确定信号的音高是一个不同的问题,不能仅通过 FFT 的绝对值来确定。如果这是您的目标,您需要对音高检测技术进行一些研究。

    您的声学特征的一次谐波的幅度大于基波的幅度。这并不罕见,并且可能由于声源(在本例中为焊枪)的物理特性而发生。

    Physics.SE 上有一篇文章更详细地讨论了有关乐器的问题:https://physics.stackexchange.com/questions/246020/is-it-possible-for-a-harmonic-to-be-louder-than-the-fundamental-frequency

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 2012-01-09
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多