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

 
 

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

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

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

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>
Project Administrator
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>
Project Administrator
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>
Project Administrator
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)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project 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.3