【发布时间】:2009-03-19 15:06:59
【问题描述】:
伙计们,
Matlab 2007b (7.5.0) 有一个 avgpower 函数。见here:
"avgpower 方法使用矩形近似积分来 使用存储在 对象。
"avgpower 方法返回信号的平均功率,即 PSD曲线下的面积。"
调用示例:
numSamples = 10000 频率 = 20 幅度 = 10 Fs = 1000 t = [0:1/numSamples:1]; sig = 幅度 * sin(2*pi*频率*t); h = 光谱.周期图('矩形'); hopts = psdopts(h, 信号); 设置(跳跃,'Fs',Fs); p = psd(h,信号,跳数); 较低 = 12 上 = 30 beta_power = p.avgpower([下上]);我希望在 Octave 中复制这种功能。这 功能“pwelch”似乎是一种可能性。也就是说:
... sig = 幅度 * sin(2*pi*频率*t); pwelch('R12+'); [光谱,频率]=pwelch(信号,[],[],[],Fs,plot_type='dB');现在我认为光谱有 PSD 的 y 值,而频率有 x 价值观。所以,我可以找到频率介于“较低”之间的样本 和“上”和..呃,平均光谱中的相应值? 我对此很模糊。
此外,“freq”中的值不一定对应于我的 想要的上下,我不知道该怎么做。如果下部或上部正好位于宽频率箱的中间怎么办?例如,我要取半个 bin(即线性插值)吗?
也有可能从某种 FFT 中获得单个值 而不是使用 pwelch。
建议?
【问题讨论】:
标签: matlab signal-processing octave spectral-density