Using 'single' arrays with the "filter" command

We have to minimize our application's memory footprint and execution time, so I'm trying to move from "double" data arrays to "single" data arrays. The problem is that the "filter" command appears to return "double" filter states. Is there a way to use "single" data with the filter or even the "conv" command?

1 Kommentar

Matt J
Matt J am 19 Nov. 2012
Bearbeitet: Matt J am 19 Nov. 2012
if your inputs are single, so should the output be.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Jonathan Sullivan
Jonathan Sullivan am 19 Nov. 2012

0 Stimmen

Make sure all your inputs to filter are singles.
Here's an example for a simple moving average:
x = rand(100,1,'single');
a = ones(1,10,'single')/single(10);
b = single(1);
xf = filter(a,b,x);
class(x)

1 Kommentar

Jim Clay
Jim Clay am 20 Nov. 2012
I have done that, but the second output, the final filter state, is still double.

Melden Sie sich an, um zu kommentieren.

Jan
Jan am 20 Nov. 2012
Bearbeitet: Jan am 20 Nov. 2012

0 Stimmen

See: FEX: FilterM, which accepts singles also.
Do you mean the 2nd output of filter with "double filter states"?

1 Kommentar

Jim Clay
Jim Clay am 20 Nov. 2012
Yes, I mean the 2nd output of filter. I will check out the FilterM command.

Melden Sie sich an, um zu kommentieren.

Tags

Gefragt:

am 19 Nov. 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by