【问题标题】:How to find gain g from z,p,k in Python如何在 Python 中从 z,p,k 中找到增益 g
【发布时间】:2018-12-22 01:20:55
【问题描述】:

Matlab zp2sos 返回 [sos, g] 但在 python 等效库中 zpk2sos 仅返回 sos。如何在python中计算增益g。

ts=(length(data1)/128);
Wp = [1 4]/(fs/2); Ws = [0.5 4.5]/(fs/2);
Rp = 3; Rs = 40;
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
[z, p, k] = butter(n,Wn,'bandpass');
[sos,g] = zp2sos(z,p,k);
filt = dfilt.df2sos(sos,g);

我正在将此 Matlab 代码转换为 Python,但找不到计算 Matlab zp2sos 函数返回的增益 g 所需的库。

【问题讨论】:

  • 标题和大部分问题都是关于g,但在最后一句中,您提出了一个关于dfilt.df2sos 的单独问题。我认为您应该为此创建一个新的 stackoverflow 问题。每个主题一个问题,使问题集中,更容易回答。
  • @WarrenWeckesser 谢谢。编辑了问题。

标签: python matlab scipy signal-processing


【解决方案1】:

当你使用表格时

[sos,g] = zp2sos(z,p,k);

gk 相同。

例如,

> [sos, g] = zp2sos([-1 0.5 0.6], [-0.5 0.1+0.25j 0.1-0.25j 0.9], 3);
> g
g = 3

【讨论】:

  • 好的。非常感谢。但是你能告诉我python中有没有相当于matlab dfilt.df2sos的库??
  • g 不应该是一个向量吗??
  • 不,g 是一个标量;这是“整体收益”。请注意,如果您使用sos = zp2sos(z, p, k),则增益嵌入在二阶部分的第一个部分中。有关详细信息,请参阅zp2sos documentation
  • 好的。我认为这是一个向量,因为在 df2sos() doc 中它声明 g 是一个增益向量。
猜你喜欢
  • 2023-02-22
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 2012-10-24
  • 2017-07-30
  • 1970-01-01
相关资源
最近更新 更多