【问题标题】:Normalize the output signal to the same level as the input signal将输出信号标准化为与输入信号相同的电平
【发布时间】:2018-07-12 15:09:39
【问题描述】:

我有一个波束成形算法,我使用 matlab 来模拟数据,这样我就可以估算出输出信号与干扰加成的比率-噪声比 (SINR) 与 输入 SINR (Like Matlab Does)。

agCbf = pow2db(mean((voice_cleanspeech+voice_laugh).^2+noisePwr)/...
    mean((cbfOut - voice_dft).^2))

我的问题来了。如果我将输出信号相乘到某个大数字,例如 1000(或者只是我的算法引入的一些更改),那么估计的比率是不正确的(因为 cbfOut更大强> 比voice_dft)。我想知道是否有任何方法可以将输出信号标准化为与输入信号相同的电平。

我在matlab中看到过ma​​pminmax,这个函数可以将它们都归一化为[-1 1],很好但是结果是不是零均值

【问题讨论】:

  • 先从信号中减去均值,然后除以max([max(signal), -min(signal)])?这样做将保证结果具有0mean 并且严格在[-1 1] 范围内
  • @Patrick Roberts 你的意思是我在 mapminmax 之后这样做?或者我只需要在没有 mapminmax 的情况下这样做
  • 我的意思是没有mapminmax。所做的只是将范围限制为[-1 1],而不考虑mean
  • 谢谢,这行得通。

标签: matlab signal-processing normalization


【解决方案1】:

在对输出信号进行归一化之前,可以将其贬低如下:

signal = signal - mean(signal);

一旦完成并且信号具有mean = 0,您就可以在-11之间进行标准化过程:

signal = mapminmax(signal);

【讨论】:

  • 谢谢,对我有很大帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
相关资源
最近更新 更多