SignalExpress

cancel
Showing results for 
Search instead for 
Did you mean: 

"no memory to run this operation"?? Help.

Solved!
Go to solution
Hi,

While I was running a signal express project, a window appeared which said "no memory to run this operation" and "memory is full" in power spectrum. Then it stopped collecting data. I am wondering where I can set up the maximum memory and let signal express collect as much data as I need. Thank you.

Ningyu
Ningyu Zhao
0 Kudos
Message 1 of 7
(7,067 Views)

Hello Ningyu,

 

You can increase the virtual memory by following the steps in this KnowledgeBase:  LabVIEW "Memory is Full" Error

 

Hopefully this will help, but if not it would be helpful to know:

 

1.  How much data are you displaying?  Number of channels?  Sample Rate?  Total acquisition time?

2.  What analysis are you doing?

3.  Are you logging data to a file or trying to acquire it all at once?

 

Cheers,

Brooks
0 Kudos
Message 2 of 7
(7,050 Views)

I have changed the virtual memory of my PC to the maximum value, 4096Mb, but that didn't work.


6 channels collecting data from power spectrum in frequency domain. Frequency ranges are 2000-3000Hz and 3000-5000Hz. The sampling rates are 30k and 40k, which maybe the problem. The total acquisition time is 35sx5. (5 conditional repeat).

I am logging data to a txt file.

Thanks,
Ningyu
Ningyu Zhao
0 Kudos
Message 3 of 7
(7,043 Views)
Given your numbers, you are generating about 250MBytes of data.  Are you trying to log this all at the end of acquisition or as it is acquired?  You should be able to log as the data is acquired without running out of memory.  Your rates are not that fast (about 100kS/sec).

If you could post your project, it would help us to debug the issue.
0 Kudos
Message 4 of 7
(7,040 Views)
I log the data all at the end of acquisition. The attached is my project. It seems like the logging stopped at the power spectrum step. I am wondering after which steps I should log the data. Thanks a lot.


Ningyu Zhao
0 Kudos
Message 5 of 7
(7,032 Views)
Solution
Accepted by topic author rico1985
You are pushing the limits of what SignalExpress can do.  You acquire about 8 million data points (internally, this is 64MBytes, since they are arrays of doubles).  Analysis makes further copies of the data (the originals need to be kept for later use).  To make this work, we need to minimize data copies.  You have several options, in order of complexity:
  1. Take your data and store it in a file for later analysis.  Do this by acquiring continuous data in smaller chunks (10kS to 100kS buffer) It would be easiest to do this using the logging mechanism built into SignalExpress.  After you have finished acquiring the data, analyze it item by item in a different project, using the log for input.  This allows you to cut your memory usage by a factor of eight or more.  Note that logs (which are a binary format - TDMS) can be converted to ASCII, if you wish.
  2. Does your input file have specific regions of interest?  You may want to generate and analyze in chunks.  This is not my first suggestion, since a power spectrum cannot easily by generated with chunked data (it is possible, and National Instruments sells software to do this, but it is not included in SignalExpress).  However, if you can live with different power spectra of different regions, this may be an option.  You did not include your file to generate, so I cannot speculate further.  If you do this, save your data at every chunk.
  3. If you own LabVIEW, you can rewrite the project relatively easily there (all the analysis is available as VIs).  LabVIEW allows you to optimize memory at a much lower level than Signal Express (e.g. see the tutorial Managing Large Data Sets in LabVIEW).
The R&D department is aware of this memory issue and is working to make it better.  It is a multi-faceted issue, so generally gets incrementally improved at each release of SignalExpress.  If you need more help, please let us know.
Message 6 of 7
(7,019 Views)
I, When I load the data in time domain in a new project, the graph appeared to be kind of different from the previous. The time length of the signal changed....

2, My input txt file is from Matlab. I cut the freqency range into two periods and that worked.

3, I know nothing about programming in Labview.......

Maybe it's good to know the limits of what SignalExpress can do.

Thank you.
Ningyu Zhao
0 Kudos
Message 7 of 7
(7,014 Views)