SignalExpress

cancel
Showing results for 
Search instead for 
Did you mean: 

Converting signals from 24 bits to 16 bits

Dear all,
 
I am using labview 8.0. Does anybody knows how to convert signals acquired at 24 bits into signals of 16 bits. The reason is because the files (in format lvm) of the signals of 24 bits are too big. Maybe somebody knows another way to compress or to change the format of the signals?.
 
Thank you very much for your answer
 
Rafo
0 Kudos
Message 1 of 5
(6,806 Views)
Are you using SignalExpress to save LVM or are you just using LabVIEW?

LVM is a very inefficient file format.  It is ASCII text designed for maximum portability to various operating systems and software packages.  There may be a better way to reduce your file size than degrading your data.  Please give us more information on your application and we can give you better advice.  In particular, we would like to know:
  1. How many data points and channels are you saving?
  2. What are you doing with the data after you save it?
  3. What are your storage limits?
  4. What application are you using to store your data?
  5. Can you post code or a SignalExpress project?


0 Kudos
Message 2 of 5
(6,805 Views)
Thank you for your answer,
 
1. I want to acquire something like 60000 numbers in each of three chanels (actually I am acquiring 1.2x10^6 but first I am aplying a decimation).
2. I want to use this data to obtain the dynamics parameters of civil structures (I am measuring accelerations).
3. Now my files are about 1 MB and I want to reduce these as much as it is possible (files of one or two hundred kB would be great)
4. I am using labview directly.
 
Again, thank you very much for your answer.
0 Kudos
Message 3 of 5
(6,801 Views)
I Forgot, the thing that I want to do is to send this "reduced files" trought a modem and then I can "decompress" the files in the office and use the original formats.
 
 
0 Kudos
Message 4 of 5
(6,800 Views)

Since your raw data size is over a half megabyte (180,000 points X 3 channels X 4bytes/point), you need about a 3X size reduction. There are several options, depending on what application you are using to analyze the data.

  1. Use standard file compression (e.g. WinZip) to compress the LVM file before you send it. Since LVM is an ASCII file, it is possible you can get the 5X reduction you need. It is more likely you will end up with 300kBytes - 500kBytes using this scheme. This has the advantage of being usable by almost any application.
  2. Use the binary file primitives to write a flat binary file (interleaved or not, at your option). Follow this up by a compression scheme and you may get to your goal. Lossless compression typically gives about 30% to 60% size reduction. This file can be read by just about anything but Excel.
  3. Use NI-HWS (installs from the driver CD with most of the modular instruments), since it contains native data compression. This format can also be read by most analysis programs since it is based on HDF5. The exception is, once again, Excel. This will not get you much, if any, advantage over the binary file, but is easier to use.
  4. If all this fails to get you files that are small enough, you can reduce your bit depth. To take advantage of this, you will still need to use either the flat binary file or NI-HWS. To reduce your bit depth, use the Logical Shift primitive to right shift your data 8 bits. Then coerce it to a 16-bit integer using one of the To... primitives from the Conversion palette. Both of these primitives accept array inputs, so you don't need to do this in a loop.

Good luck. Let us know if you need more information.

0 Kudos
Message 5 of 5
(6,784 Views)