matlab filter: max variable size allowed by function, error
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
The following code,
Hm = mfilt.firinterp(interp, hh);
Hm.Numerator = interp*Hm.Numerator;
set(Hm,'arithmetic','single');
out = filter(Hm, data);
where interp=4 (integer), hh is 1x97 double, and data is 1x1048994399 single.
results in the following error:
Error using sfirinterpfilter
Maximum variable size allowed by the function is exceeded.
Error in dfilt.singlefilterquantizer/firinterpfilter (line 11)
[y,z,tapidx] = sfirinterpfilter(p,L,x,uint32(ny),z,tapidx);
Error in mfilt.firinterp/secfilter (line 20)
[y,z,tapidx] = firinterpfilter(Hm.filterquantizer, ...
Error in dfilt.abstractfilter/super_filter (line 61)
[y,zf] = secfilter(Hd,[xi;x(1:end-rs,:)],zi);
Error in dfilt.abstractfilter/filter (line 12)
y = super_filter(varargin{:});
Error in r_sc1 (line 612)
out = filter(Hm, data);
Anyone know the limit for filter in this case? And/or how to workaround this error (e.g. is it possible to split the filtering into two operations, etc.)?
0 comentarios
Respuestas (1)
Walter Roberson
el 6 de Ag. de 2015
With regards to breaking it up into runs: see http://www.mathworks.com/help/dsp/ref/mfilt.firinterp.html PersistentMemory and States .
You have a Finite Impulse Response filter so it is only necessary for the filter to remember length(hh) values to be able to stop filtering and pick up again later at the next sample.
Ver también
Categorías
Más información sobre Filter Design en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!