LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

remove values from a signal

I would like to eliminate the values higher than a certain threshold at the output of the filter and I don't know how to proceed. I'm attaching my vi. I tried with min and max function but it didn't work. I would like to make all values that exceed 25 microV equal to 25 and the lowest of -25microV equal to -25. Can you give me some advice?

0 Kudos
Message 1 of 9
(3,396 Views)

There is nothing attached yet.

 

What is the datatype of the "signal" (1D array, waveform, dynamic data, etc.)?

 

"Eliminate" is probably not the correct word. How about "in range and coerce" using your limits and use the coerced output?

 

altenbach_0-1587973940438.png

 

0 Kudos
Message 2 of 9
(3,381 Views)

Hi 75,

 


@AncD wrote:

I would like to make all values that exceed 25 microV equal to 25 and the lowest of -25microV equal to -25.


I took your requirement "word for word":

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
Message 3 of 9
(3,311 Views)

@GerdW wrote:

Hi 75,

 


@AncD wrote:

I would like to make all values that exceed 25 microV equal to 25 and the lowest of -25microV equal to -25.


I took your requirement "word for word":


Hehe, though if you interpret the meaning i would assume there's two omitted 'micro' in that sentence. In which case the In Range and Coerce is enough. 🙂

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 4 of 9
(3,303 Views)

Thank you for your answer. I also tried these variants, your and the one below, but the shape of the signal changes and it looks like a cut off peak. In fact, I would like to clean the signal of very high values that are artifacts. In EEGLAB I used ICA,  but in LV I don't know what I can do for a similar result. I tried TSA ICA from LV but from the examples I found, it seems that the result is more statistical than physical. This time I attached the VI.

Thanks.

 

0 Kudos
Message 5 of 9
(3,284 Views)

A VI without data is pretty useless to us. Do you have some data?

 

(A large part of your code makes no sense at all, for example all your shift registers have no purpose. What's typical data for "model")

0 Kudos
Message 6 of 9
(3,264 Views)

Of course. I even thought it was good to have sent data. Sorry.

Download All
0 Kudos
Message 7 of 9
(3,252 Views)

As a first step, you need to simplify your code. Why would you use charts for static array data? Why use a complicated while loop to read  tabulated values? (attached is the same code simplified)

 

Please explain what you want to see instead of the current data. It is not clear at all.

0 Kudos
Message 8 of 9
(3,240 Views)

Many thanks for your approachability. The sent data is cut from a real recording of EEG signals. VI does not yet contain the part of direct communication with the headset that records the waves, but in the end, the headset and Labview will communicate online. For this, I built an ERP signal model (one of the data sets) with which to discover in the current testing signal (the second data set), the presence of a similar ERP signal (the data are from the same subject). The model signal was processed by filtering and ICA in EEGLAB. The current/testing one will enter Labview unprocessed. The VI I want to design must perform the operations as in EEGLAB. Filtering is not a problem in Labview but it is not enough. I would like to remove from the signal only those values between 25 and -25 microV in order to eliminate artifacts and noise. EEGLAB does this operation using signal fragmentation in epochs. But my test signal will no longer be fragmented into epochs.

 
 
 
 
 
0 Kudos
Message 9 of 9
(3,222 Views)