gpt4 book ai didi

matlab - 使用 Matlab 在功率谱分析图上检测并标记最大峰值?

转载 作者:行者123 更新时间:2023-12-02 08:48:43 25 4
gpt4 key购买 nike

我试图在 Matlab 中创建的功率谱密度图上找到最大峰值。我可以很好地创建情节,但很难正确标记它。我使用 find peaks 和 max 函数找到它,但 Matlab 无法正确标记它。它找到了正确的高度,但将其标记为向左或向右一点。这是代码:

data = load ('EEGData(test1).txt', '-ascii');
figure(1)
plot(data)

Y =fft(data,251);

Pyy = Y.*conj(Y)/251;

f = 1000/251*(0:127);

figure(2)
plot(f,Pyy(1:128))
title('Power spectral density')
xlabel('Frequency (Hz)')

[a,b] = findpeaks(Pyy(1:128));
MAX = max(a);
hold on
plot(f(b), MAX,'or')

如有任何帮助,我们将不胜感激。

最佳答案

当我通过将数据替换为原样测试您的代码时

data=randn(251,1);

...我发现红色 o 标记指示的局部峰值位置在正确的位置。只是在最大峰的高度处标记了所有的峰。

我不是 100% 确定您要做什么,但看起来您只是想找到最大峰值。如果是这种情况,则您不需要 findpeaks 函数。只需将代码的最后几行替换为以下...

[MAX, MAXidx] = max(Pyy(1:128));
hold on
plot(f(MAXidx), MAX,'or')

关于matlab - 使用 Matlab 在功率谱分析图上检测并标记最大峰值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com