Is there a way to remove/hide unwanted data?

If you like to remove portions of data, for example artifacts, to exclude them from your data analysis there are different ways to achieve this.
  1. Simply delete: select the area and choose Edit > Clear Selection. Please note, this will delete this time of recording from all channels.
  2. If deleting is no option you can use Channel Calculations > Arithmetics... to process your data so that portions of your recording become zero or NaN (not a Number).
a) you like to remove Out of Range Data:For reference see attached example file Hide out_of_range data.adicht (download here). Using arithmetics you use a combination of three functions Window(), Smoothsec() and Threshold() to hide (set zero) regions where data are out of range. Detailed information about these functions can be found in the LabChart Help documentation.
The Window() function identifies the regions that are within the lower and upper limits (regions of good data become 1, out of range data become 0). Smoothsec() is used to combine areas close together. Threshold() is then used to create a 0 or 1 wave form. When combining those functions one gets a trace with 0 for the out of range data and 1 where the signal is good. By multiplying it with the source channel the good data remain while the out of range data become 0. Note: if you divide the source channel by the combined function you get NaNs for the out of range data.
servlet.ImageServer?id=015w00000037c8R&oid=00D20000000HncM
b) you like to remove data you marked manually:
In a similar way as described above you use a combination of arithmetic functions to zero (or NaN) those areas you like to remove, based on time windows. However, since you manually define the regions (defining time intervals) it is a bit more complicate. For reference see attached file Hide selected data.adicht(downloadhere). The approach is to tell LabChart to set time intervals, say from 5s to 7s, to zero. In Arithmetics there is a function SampleTime that plots the time in seconds from start of block. Using the Window() function with the parameter of start and end point one identifies the regions of unwanted data. As the good data become 0 here, one does some math to invert this. All these Window() functions for each unwanted region can now be added and eventually multiplied with the source channel.Since finding the time in seconds and afterwards typing the arithmetic function into the Arithmetic Formula field is rather time consuming the file contains some macros to ease the work.
servlet.ImageServer?id=015w00000037c8b&oid=00D20000000HncM
How to use the Macros:
  • Select the region you like to set zero
  • Start Macro > CommentSelection - this places comments at the beginning and end of the selection and will be used by the second macro. You can move the comments to fine tune the unwanted region. The macro works in every channel. Repeat these two steps for all other unwanted regions.
  • Click in any channel and start Macro > CreateArithmetics - this reselects the portion between the start and end comments, finds the time points and builds up the arithmetics formula. When the chosen block is finished it writes the formula to a text file.
  • Repeat the procedure with other channels as needed.
  • Open the text file and copy and paste the formula into the arithmetics formula field. Note: this can be done in a separate channel or directly in the channel of the original data.

NB: as SampleTime is calculated new for each data block, but the arithmetics applies to the whole channel this approach has limited usefulness in channels with multiple blocks: if there is zero values from 5 to 6 seconds in block one, there will be also a zero from 5 to 6 seconds in block two.
c) remove artifacts, but replace NaNs or zeros by data that fill the gap:
Under certain condition a more sophisticated approach is possible, for example if you see stimulation artifacts, but setting these region to zero or to a NaN would impede your analysis. In case you do electrical stimulation on a subject artifacts will be visible on ECG or Skin Conductance Level (SCL) waveforms. For LabChart to detect this artifacts a stimulation marker would be essential. As described under a) the approach is to set the portion of the artifact zero. In a second calculation the original waveform will be filtered to remove the artifact, however, this also filters the good signal. Eventually, we end up with the original waveform but the small zero-portions are filled with the filtered waveform
servlet.ImageServer?id=015w00000038oOT&oid=00D20000000HncM
A detailed description of the applied arithmetics steps can be found in the attached file ArtifactRemoval_median.adicht(downloadhere).
For further advice please contact your ADInstruments Support Team.