comm.Raise​dCosineTra​nsmitFilte​r system object memory inefficiency

1 view (last 30 days)
Hi,
I'm using raised cosine transmit filter system object, and when I look at task manager at memory section, I see that after I pass a 1GB variable through the filter, the memory is increased by 2GB. i.e. 1GB is the output variable of the step function, and another 1GB "hidden" somehow in the hTxFilter system object. In "somehow" I mean that when I write "whos hTxFilter" in the command line, I see that the object uses 112 bytes, but when I clear the filter ("clear hTxFilter"), suddenly 1GB memory is free.
Code:
x = ones(round(1024^2/8),1);
whos x; % x weights 1MB
hTxFilt = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',20,'OutputSamplesPerSymbol',1024);
y=step(hTxFilt,x);
whos y hTxFilt; % y weights 1GB, hTxFilt weights 112 bytes
When I look at Task Manager, the memory was increased by 2GB instead of just 1GB (if I neglect the 1MB of x). When I clear hTxFilt, the memory is decreased by 1GB.
My question is, why hTxFilt "hides" 1GB in its object? I get that it's a filter, and a filter requires memory of some samples, but it's of filter span order (20) and not 125,000,000 samples?? What do I miss?
Thanks in advance, John

Answers (0)

Community Treasure Hunt

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

Start Hunting!