gpt4 book ai didi

MATLAB - 寻找峰谷

转载 作者:行者123 更新时间:2023-12-03 02:36:47 24 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




所以我有 2 个记录频率的 .wav 文件。一个是原始音频,另一个是过滤后的音频。两者都是立体声 .wav 文件。

现在,我应该找到这 2 个 .wav 文件的高峰和低谷。
有人告诉我,我必须获取 3 个连续数据并确定这 3 个数据中的哪一个是最大值或最小值。如果中间是最大值或最小值,则已找到峰值/谷值。重复此操作,直到没有更多数据。

我应该如何实现上述目标?

有人告诉我做一个大小为 3 的滑动窗口,取 3 点乘 3 点。

我用谷歌搜索了它,但找不到如何开始。任何人都可以帮忙吗?谢谢你!

最佳答案

首先,您必须将音频文件制作成单声道,这可以通过以下方式轻松完成:

a = audioread('filename');
b = sum(a,1)./2;

接下来,您可以将其拆分为 3 帧 - 这可以通过“ reshape ”轻松实现,或者对您来说更容易,只需使用 for 循环:
reshapemethod = reshape(b,[floor(size(b,2)/3),3])

或循环:
for t=1:floor(size(b,2)/3)
firstpoint = b((t-1)*3+1);
secondpoint = b(firstpoint+1);
thirdpoint = b(firstpoint+2)
%//Use if statement to compare
%//OR just do
[peaks(t) locationOfPeaks(t)]= findpeaks([firstpoint,secondpoint,thirdpoint]);
%//For Valleys, just multiply first second and third point by -1 and then use the findpeaks function.
[vallys(t) locationOfValleys(t)] = findpeaks([-1*firstpoint,-1*secondpoint,-1*thirdpoint]);
end

接下来你可以使用 findpeaks要找到 3 个数据点中的峰值,或者只使用 if 子句比较它们​​,这是非常基本的,所以我把它留给你做。

关于MATLAB - 寻找峰谷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36041361/

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