Matlab 存在直流信号时的谐波平均值
我有一个噪声信号的输出,保存为一组余弦 我有一组从Matlab 存在直流信号时的谐波平均值,matlab,mean,frequency-domain,Matlab,Mean,Frequency Domain,我有一个噪声信号的输出,保存为一组余弦 我有一组从0到xHz的频率(x是一个大数字),还有一组相同大小的振幅 我想计算出频率的谐波平均值,当频率的权重是相应振幅的大小时 例如: 如果我有一组频率 [1,2,3]和振幅[10,100,1000](这样频率1的余弦具有振幅10,等等)。然后,频率的谐波平均值为2.8647 然而,当我有一个零频率(一个“DC”分量)时,我遇到了问题——谐波平均值只是零 现实生活中的问题是一组非常大的余弦,从零频率开始,一直到几GHz。大部分信号在频谱的一部分进行加权,
0
到x
Hz的频率(x是一个大数字),还有一组相同大小的振幅
我想计算出频率的谐波平均值,当频率的权重是相应振幅的大小时
例如:
如果我有一组频率
[1,2,3]
和振幅[10,100,1000]
(这样频率1
的余弦具有振幅10
,等等)。然后,频率的谐波平均值为2.8647
然而,当我有一个零频率(一个“DC”分量)时,我遇到了问题——谐波平均值只是零
现实生活中的问题是一组非常大的余弦,从零频率开始,一直到几GHz。大部分信号在频谱的一部分进行加权,我想比较频谱的简单加权平均值和谐波平均值
解决这个问题的方法(这似乎是一个便宜的方法)是忽略零频率——它只是成千上万个频率中的一个。但是有正确的方法吗?下面是加权调和平均值的公式: 应用于您的示例,它是:
x = 1:3;
w = logspace(1,3,3); % [10 100 1000]
sum(w)/sum(w./x); % 2.8220
您可以看到,如果x
值之一为0
,分母中的和将是无限的。如果手动将此值的权重设置为0
,则底部总和中会出现0/0
情况(计算结果为NaN
)。从技术上讲-在计算这类平均值时,如果没有得到0
的结果,就不能有x
的0
我认为很明显,这不是处理直流信号的正确工具。为了获得一些有意义的信息,我想到了几件事:
- 在这两种情况下,完全忽略直流信号听起来是合理的
- 也许为了调和平均数的目的,你最好忽略它,然后再加上它,以便与简单平均数兼容
在一天结束时,你需要决定你想用它表达什么观点,然后相应地处理数据。你如何计算你提到的调和平均值
harmmean(1:3)==1.6364
。嗨,魔鬼-我不够清楚:我正在计算加权调和平均值。每个数据点(频率)[1,2,3]都有一个权重(大小)[101001000](这些只是示例权重)。因此更相关的示例是frequenciesHi Devil的集合-是的,平均值是2.822(上面的数字一定是一些奇怪的复制和粘贴错误,我已经检查过!)。你的观点再次重申了我对分母无穷大的关注。我只是想知道是否有一种“正确”(或有意义)的方法来处理这些数据。我错误地忽略了0 Hz分量(在大多数情况下,它的权重非常小)。干杯,W