簡體   English   中英

scipy.signal.lfilter: *** ValueError: 所需數組的深度太小

[英]scipy.signal.lfilter: *** ValueError: object of too small depth for desired array

我正在嘗試將 Matlab 的 fillgaps.m 函數移植到 Python (3.5)。 但是,我在使用scipy.signal.lfilter時遇到了一個錯誤,而我在使用 Matlab 的filter時卻沒有遇到。

這是對 Matlab 的調用:

y = xmean + filter(1, a, zeros(n,1), zi);

這是 Python 中的等效調用:

y = xmean+ signal.lfilter(1.0, a, np.zeros(num), zi=zi)

當我將變量azi導出到 .mat 文件並在 Matlab 中打開它們時,過濾器函數可以完美地處理這些輸入。 當我嘗試在 Python 中運行它時,出現上述錯誤。

我已經檢查了維度和 dtypes。 所有數組都是一維的, a = complex128zi = float64 嘗試了很多事情,但無法弄清楚為什么我會收到此錯誤。 任何和所有的幫助表示贊賞。

以下是azi的值(在 python 中):

a = array([ 1.00000000e+00+0.j, -2.70935726e-02+0.j, -1.15789376e-02+0.j,
   -1.98057684e-02+0.j, -2.25423783e-02+0.j, -1.41692884e-02+0.j,
   -1.20045443e-02+0.j, -3.51421691e-02+0.j,  3.17664590e-02+0.j,
    1.07995240e-02+0.j, -5.03236758e-02+0.j,  4.89807966e-03+0.j,
    1.91325890e-02+0.j,  4.19319753e-03+0.j, -1.83287430e-02+0.j,
    1.42018717e-02+0.j,  4.66251295e-03+0.j, -9.58279973e-03+0.j,
   -4.66934046e-02+0.j, -1.23595915e-02+0.j, -1.36345584e-02+0.j,
   -5.48025750e-02+0.j, -2.61885789e-02+0.j,  3.41874812e-02+0.j,
   -3.39146503e-02+0.j,  7.24647340e-03+0.j, -3.09997175e-03+0.j,
    2.52408792e-04+0.j,  4.98181682e-04+0.j,  2.63870087e-02+0.j,
   -1.41230931e-03+0.j, -2.98472540e-02+0.j,  1.23020312e-02+0.j,
   -1.44598876e-02+0.j, -2.72529482e-02+0.j,  3.23019049e-03+0.j,
   -2.45261907e-02+0.j, -3.47863724e-03+0.j, -3.16002665e-02+0.j,
    1.69494955e-03+0.j, -3.09652680e-02+0.j,  1.16077783e-02+0.j,
   -3.34100416e-02+0.j,  1.75261726e-02+0.j,  2.35075197e-02+0.j,
   -2.66728197e-02+0.j, -6.64703471e-02+0.j,  2.56310154e-02+0.j,
    4.76553111e-02+0.j,  4.24359187e-02+0.j, -2.89893391e-02+0.j,
    2.00330377e-02+0.j,  1.96124837e-02+0.j, -1.77582482e-02+0.j,
    3.86381755e-02+0.j,  7.26590951e-04+0.j,  5.16844059e-02+0.j,
    2.46780269e-02+0.j,  5.34384144e-02+0.j,  6.78603392e-03+0.j,
   -3.54646047e-02+0.j, -1.32729311e-02+0.j,  2.59420076e-02+0.j,
    1.85098936e-02+0.j,  4.45395121e-02+0.j, -3.92429814e-02+0.j,
   -3.89796421e-02+0.j,  2.20405379e-02+0.j, -8.63736348e-03+0.j,
    2.68239735e-03+0.j, -1.03579143e-02+0.j, -5.89401053e-02+0.j,
   -3.95822344e-02+0.j,  2.09142658e-02+0.j,  3.28387139e-02+0.j,
   -1.04128182e-02+0.j,  3.43679950e-02+0.j,  2.45223935e-02+0.j,
   -3.70110350e-02+0.j,  3.95134169e-03+0.j,  1.70200671e-02+0.j,
    5.23911230e-02+0.j, -3.41677105e-02+0.j, -2.41059836e-02+0.j,
    6.97557293e-02+0.j, -3.49596809e-02+0.j,  3.68709565e-02+0.j,
   -3.18886782e-03+0.j,  7.18717257e-03+0.j,  5.46197524e-02+0.j,
   -2.35836748e-02+0.j, -3.75519276e-02+0.j, -4.31577781e-03+0.j,
    1.76588126e-02+0.j, -1.02689533e-02+0.j, -2.30576355e-02+0.j,
   -5.27438233e-02+0.j, -3.48452509e-02+0.j, -2.59076858e-02+0.j,
   -3.72227520e-02+0.j, -1.18783594e-02+0.j])

zi = array([-0.28800182, -0.11823229,  0.42399926,  0.24768215, -0.40467353,
   -0.00891979,  0.41597322,  0.33758038, -0.31264365,  0.04907082,
   -0.10106631,  0.10043108, -0.1913738 ,  0.25340821,  0.04628681,
   -0.53990489, -0.18571972,  0.48841714,  0.08038864, -0.13597892,
    0.03956986,  0.02785582, -0.14437056, -0.17227514,  0.0425739 ,
   -0.02831162, -0.13332336,  0.13052757, -0.07329633, -0.16956979,
   -0.01114539,  0.19323476,  0.51933565, -0.06821965,  0.08742358,
    0.15068969,  0.12491866,  0.33621545,  0.10871974, -0.17703344,
   -0.19814925, -0.04463152,  0.20724609,  0.09555931, -0.24803401,
    0.01754087,  0.44078615, -0.0039418 , -0.48378741, -0.0761448 ,
    0.04216338, -0.25398915,  0.1618099 , -0.16114872, -0.14724196,
    0.12027709,  0.02475517,  0.26327409, -0.05922461, -0.24010305,
   -0.12426528, -0.18268166,  0.39327275,  0.02140904,  0.0610837 ,
   -0.0604757 , -0.23424745,  0.23918637, -0.07565664,  0.00921331,
   -0.1359693 ,  0.00849616,  0.14398708, -0.36453633,  0.09897318,
    0.02643048, -0.25749105,  0.09349411, -0.06791825, -0.06001741,
    0.01643691, -0.02941722,  0.15251558,  0.11139054, -0.06704187,
   -0.17978014, -0.08584244, -0.04024691, -0.08318234, -0.15475604,
   -0.12907962, -0.00247357, -0.02784826, -0.06735719, -0.07769373,
   -0.04051787, -0.0336488 , -0.05688553, -0.02657615, -0.0032041 ])

也許這就是你需要的:

lfilter(array([1.0]), a, np.zeros(num), zi=zi)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM