bugGNU Octave - Bugs: bug #54424, [octave forge] (signal) filtfilt...

 
 

bug #54424: [octave forge] (signal) filtfilt only accepting input arrays of length > 3*N

Submitter:  Arnaud Delorme <arnodelorme>
Submitted:  Wed 01 Aug 2018 11:04:04 PM UTC
   
 
Category:  Octave Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Unexpected Error or Warning
Status:  Fixed Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * 4.4.0 Operating System:  * Mac OS
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Tue 14 Aug 2018 05:15:44 AM UTC, comment #5: 

I improved the error reporting for this situation

http://hg.code.sf.net/p/octave/signal/rev/fac04021b746

This fix will be part of the next release of the signal package.

Mike Miller <mtmiller>
Group Member
Thu 02 Aug 2018 02:05:11 AM UTC, comment #4: 

Yes, on Matlab, the error is

Error using filtfilt>getCoeffsAndInitialConditions (line 182)
Data length must be larger than 48 samples.

On Octave

error: x(49,_): but x has size 48x1
error: called from
    filtfilt at line 75 column 7

Arnaud Delorme <arnodelorme>
Thu 02 Aug 2018 01:20:52 AM UTC, comment #3: 

Not necessary. If the error is reported better in Matlab, then we could have a clearer error message in Octave that the size of the input vector is too small.

Mike Miller <mtmiller>
Group Member
Thu 02 Aug 2018 01:17:04 AM UTC, comment #2: 

Yes, Matlab has the same behavior.

I have a test case on Matlab that failed on Octave, and I thought this was the issue. I can dig further if necessary but otherwise, I will let it go.

Arno

Arnaud Delorme <arnodelorme>
Thu 02 Aug 2018 01:11:19 AM UTC, comment #1: 

Confirmed, apparently the current implementation assumes that the length of the signal X is at least 3 times the length of the order of the filter. With your example of a 16th order filter, the code assumes the signal is at least 3*16+1.

Mike Miller <mtmiller>
Group Member
Wed 01 Aug 2018 11:04:04 PM UTC, original submission:  

filtfilt(rand(17,1),1,rand(48,1))

return an error

filtfilt(rand(17,1),1,rand(49,1))

works fine. Probably a rounding issue somewhere.


Arnaud Delorme <arnodelorme>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by arnodelorme (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-08-14 mtmiller StatusConfirmed Fixed
        Open/ClosedOpen Closed
    2018-08-02 mtmiller StatusNone Confirmed
        Summaryfiltfilt only accepting input arrays of specific length [octave forge] (signal) filtfilt only accepting input arrays of length > 3*N

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code