comm.RaisedCosineTransmitFilter系统对象内存效率低下

时间:2015-09-09 06:58:19

标签: matlab

我正在使用升余弦发送过滤器系统对象,当我查看内存部分的任务管理器时,我看到在通过过滤器传递1GB变量后,内存增加了2GB。即1GB是步进函数的输出变量,另一个1GB“隐藏”在hTxFilter系统对象中。在“某种程度上”我的意思是当我在命令行中写“whos hTxFilter”时,我看到该对象使用112个字节,但是当我清除过滤器(“clear hTxFilter”)时,突然1GB内存是免费的。

代码:

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

当我查看任务管理器时,内存增加了2GB而不是1GB(如果我忽略了1MB的x)。当我清除hTxFilt时,内存减少了1GB。

我的问题是,为什么hTxFilt在其对象中“隐藏”1GB?我知道它是一个过滤器,过滤器需要一些样本的内存,但它是过滤器跨度顺序(20)而不是125,000,000个样本? 我错过了什么?

提前致谢, 约翰

0 个答案:

没有答案