04-26-2020 11:51 AM
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?
04-26-2020 12:02 PM - edited 04-27-2020 02:52 AM
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?
04-27-2020 01:43 AM - edited 04-27-2020 01:44 AM
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":
04-27-2020 02:25 AM
@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. 🙂
04-27-2020 11:12 AM
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.
04-28-2020 01:32 AM - edited 04-28-2020 01:36 AM
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")
04-28-2020 07:58 AM
Of course. I even thought it was good to have sent data. Sorry.
04-28-2020 09:59 AM
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.
04-29-2020 09:00 AM
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.