【问题标题】:Signal Deconvolution Scipy信号反卷积 Scipy
【发布时间】:2020-11-16 11:55:32
【问题描述】:

我在使用 scipy.signal 库进行信号反卷积时遇到了一些问题。我正在尝试做的事情如下:

我有一个数组(4096 个点),包含一个用样本测量的信号和一个没有样本测量的信号(测量系统响应具有相同的长度)。为了获得纯样本信号,我需要对它们进行去卷积。这是我的代码:

folder = os.path.dirname(os.path.abspath('__file__'))
y_measurement = np.zeros(4096)
y_systemres = np.zeros(4096)
x = ((1.0*np.arange(0,4096,1))*5e3/4096)

file = file_name + ('0%i'%i)[-2:] + '.dat'
file2 = file_name2 + ('0%i'%i)[-2:] + '.dat'
data = np.genfromtxt(os.path.join(folder,file),skip_header = 10).T
data2 = np.genfromtxt(os.path.join(folder,file2),skip_header = 10).T
y_measurement = y_measurement + data
y_systemres = y_systemres + data2
    
rec, rem = deconvolve(y_measurement,y_systemres)

deconv, _ = deconvolve( y_measurement, y_systemres)
n = len(y_measurement)-len(y_systemres)+1
s = (len(y_measuremenet)-n)/2
deconv_res = np.zeros(len(y_measuremenet))
deconv_res[s:len(y_measuremenet)-s-1] = deconv
deconv = deconv_res

mpl.plot(deconv)

运行此代码时出现错误“BUG:过滤系数 a[0] == 0 尚不支持”。谁能帮我解决这个问题?我已经有点失落了。欢迎提出所有建议。

【问题讨论】:

    标签: python scipy deconvolution


    【解决方案1】:

    好的,我找到了解决方案。如果有人要找它,这里是:

    deconvolve 不喜欢“0”,尤其是在系统响应中。摆脱这些就足够了,一切正常。还有那些行:

    n = len(y_measureme- nt)-len(y_systemres)+1
    s = (len(y_measuremenet)-n)/2
    deconv_res = np.zeros(len(y_measuremenet))
    deconv_res[s:len(y_measuremenet)-s-1] = deconv
    deconv = deconv_res
    

    没用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 2018-11-24
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 2020-02-09
      相关资源
      最近更新 更多