是否有任何测量或测试音频信号是否静止?

信息处理 声音的 离散信号 信号分析
2022-01-27 10:21:53

我需要将音频信号分成可以假设信号是静止的帧。如何测量音频信号在帧中是否静止?

2个回答

我是一名 DSP 学生,也许这不是最完整的答案。我必须在部分工作中回答同样的问题,这就是我到目前为止得到的:

正如安德烈所说,纯平稳信号是均值和方差不随时间变化的信号。在自然界(现实生活、人工演绎的音乐等)中,这很难找到。

所以你可以:

  1. 在频谱图中可视化信号。如果信号是静止的,则信号将在频谱图中显示为相同强度的水平条:

,

即使在这个信号中,由过滤后的白噪声和音调组成,媒体和方差也会随着时间发生一点变化。

  1. 因此,拆分被测信号的各个部分,以确定媒体和方差是否没有“太大”变化。“多少”取决于你:

    % test for stationary B
    
    xnbf = buffer(signal,100);
    
    mxn = mean(xnbf);
    
    sxn = std(xnbf);
    
    figure; errorbar(mxn, sxn, 'o'); title('Signal A')
    
  2. 此外,请查看此链接,其中包括测试进程是否静止的方法的综合列表: https ://quant.stackexchange.com/questions/2372/how-to-check-if-a-timeseries-is -固定

% test for stationary B

xnbf = buffer(signal,100);

mxn = mean(xnbf);

sxn = std(xnbf);

figure; errorbar(mxn, sxn, 'o'); title('Signal A')

在上面的代码中,平均值和方差应该计算在xnbf而不是signal