如何找到正确的大小/ FFT频率值,当有声音?

28日视图(30天)
你好。我跑步FFT对一些研究小未知大小电流产生在我的实验。这些电流非周期性及其大小每次不同。我使用了Matlab FFT分析当前示例代码。对于采样频率Fs,我使用2 *奈奎斯特频率是一样的1 /(间隔两个时间点)。我没有试图让2 ^ n第一试运行。我得到了一些结果,但是不像我预期的那么理想。我也有点困惑对我所做的方式。你们能帮我检查看我所做的是正确的吗?
Avg_freq = 1 /((时间(结束)-(1))/长度(天美时));
Fs = Avg_freq;
L =长度(时间);
Y = abs (fft(当前)/ L);
日元= Y (1: L / 2 + 1);
Y1 (2: end-1) = 2 * (2: end-1);
f = f * (0: (L / 2)) / L;
图(4)
情节(f, Y1,“- - -”)
网格
xlim ([0 1 * 10 ^ 8])
1评论
Hantao
Hantao 2023年4月13日
还有一件事真的让我困惑的是,由于f的值是根据Fs的价值,如果我故意设置Fs很高,Y1结果将去错了地方。我该什么方式defind Fs最合理?

登录置评。

接受的答案

保罗
保罗 2023年4月14日
嗨Hantao,
加载数据
x = readtable (“Data.xlsx”);
时间= x.Time;
当前= x.Current;
情节,
情节(时间、电流),网格
它看起来像有一些脉冲的响应。是-10和-9.8之间的线性区间预期。也许somemthing像 光谱图 会给更多的信息吗?
检查样品之间的时间。理想情况下,这将是常数
情节(时间(1:end-1), 1. / diff(时间))
看起来像10 e9赫兹的数据收集,假设时间间隔,以秒为单位,但有一些可能需要编辑的数据点。也许只是时间戳是损坏?
Avg_freq = 1 /((时间(结束)-(1))/长度(时间);
设置Avg_freq基于明显的采样频率。这只会影响轴当策划频谱的扩展。
% Fs = Avg_freq;
Fs = 10 e9;
L =长度(时间)
L = 50001
Y = abs (fft(当前)/ L);
日元= Y (1: L / 2 + 1);
警告:整型操作数时所需结肠运营商作为索引。
L奇怪,我们应该
日元= Y (1: ((l - 1) / 2 + 1));
% Y1 (2: end-1) = 2 * (2: end-1);
Y1(2:结束)= 2 *(2:结束);
f = f * (0: (L - 1) / 2) / L;
情节(f、abs(日元)“- - -”)
网格
xlim ([0 1 * 10 ^ 8])
扩展频率轴
情节(f、abs(日元)“- - -”)
网格
ylim (0.02 [0])
有什么区别这些情节和你所期望的吗?
2的评论
保罗
保罗 2023年4月14日
第一部分,1 e10 = = 10 e9,所以你的方程Avg_freq应该给上面基本相同的结果(然而,Avg_freq不屈服的计算完全10 e9,如果我没记错的话)。当然我也不知道为什么数据文件的采样频率高于预期的10倍采样频率的设备。
第二部分,我不能提供任何洞察力为什么添加更多数据的光谱发生变化。然而,如果这个新数据具有相同的特征作为第一个一系列脉冲,您可能想要隔离每个脉冲和计算的光谱频率的内容是否改变随着时间的推移,或尝试 光谱图 得到时频图光谱内容是否随着时间变化。

登录置评。

更多的答案(0)

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的