LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

EMG signal Capture

Hey

 

Thanks for the interest. The data file is just for test and has 3 channels...I will be using 4 when done.

 

The program does what I need. I would like to get a basic architecture for updating the integral calc if the graph is zoomed in.

 

I have the code to do that in a sub vi - I just do not know how to hook up the top level vi to the sub vi - the graph and array.

 

Thanks!

 

Ned

Download All
0 Kudos
Message 11 of 27
(1,757 Views)

Ned,

 

I have your data and have it connected to your VI. Posting data as .pdf is not the easiest way to make data accessible. Attaching the .lvm file would have been better.  You might need to zip it or change the extension to .txt.

 

You are asking about zooming but I do not see any zoom code. What do you mean by zoom and how are you trying to do it?

 

Lynn

0 Kudos
Message 12 of 27
(1,745 Views)

Hey Lynn

 

Thanks!

 

It would not let me upload the .lvm version - sorry. This program is very basic, the student/subject is going to do a leg squat and an abdominal curl. 2 reps for each - one stable, the other unstable. They will notice a diff in the emg output from their body.

 

So I just have the one simple calculation for each of the 4 muscles wired. I will get the students to record this in real time as we go - reason for such a basic program.


I will have a 2 event data stream per channel - e.g. 2 reps/for 4 muscles for stable squat. The resultant waveform for say the quadricep will be captured showing two emg events in a certain time period - say 10-15 seconds. Then 2 reps for unstable. I am just going to overhead project the program to the class, the students will record the rectified integral for each muscle etc....then we move on - quick and dirty.

 

What I would like to do - let's say I zoom in on the analysis graph for the quadricep for stable - I will have a waveform for say 10 - 15 seconds. It will have 2 emg events displayed. If I use the graph pallette tool to zoom in let's say to the second rep within the 10-15 second outcome, I want the rectified integral to update reflecting the new XY parameters from my zooming in. So Autoscaling X and Y would be off.

 

 I understand the existing vi can be the top level vi, then calling a sub vi etc...to do this but I have never done it. That is what  I was trying to ask.

 

I attached the vi with filter, the txt file and a rough vi for updating the data array after zoom. I just am not clear on what I have to do to make this work.

 

Thanks!

 

Ned

Download All
0 Kudos
Message 13 of 27
(1,737 Views)

Ned,

 

This sounds like a really interesting project, but I am a bit confused.

 

Let me see if I can clarify what you are asking...

 

So you want to zoom in on a graph, and based on how far you are zoomed in you want to find the integral of ONLY the data visible in the window? And is that a set level to zoom in to?

 

If you are trying to zoom into a specific point, you can simply change XScale.Minimum and XScale.Maximum to whatever values you need, then take your integral values from that graph.

 

 

Nick

Applications Engineer
National Instruments
0 Kudos
Message 14 of 27
(1,717 Views)

Hey Nick

 

This is exactly what I would like to do. I can use the program as it is now. But if I have two EMG events/bursts (two reps resulting in two waveforms bursts in one lvm file read for say the hamstring) in one graph for say 12-15 seconds, let's say I want to just zoom in on one of them.

 

So you want to zoom in on a graph, and based on how far you are zoomed in you want to find the integral of ONLY the data visible in the window?

 

The other vi I sent earlier was just to get the positon in the new array. I am not sure how to tie the sub vi to my top level??

 

I attached images to explain what I would like to do. Just pretend there are two events...that is one rep...then a few seconds later another rep. This sample lvm to test only shows one emg event in the 8 -10 seconds.

 

 

 

Download All
0 Kudos
Message 15 of 27
(1,708 Views)

This is what I kind of want to do (see image) in my top level vi I think...I would want the graph as a reference and the inital array as a reference - I would need the initial array to pick out the new coordinates. I am not sure how to do this part or where the code goes.

 

 

Thanks everyone for responding!!

0 Kudos
Message 16 of 27
(1,707 Views)

Hi Ned,

 

It seems you just want to run a subVI from your main VI, correct?

 

If you look at Control References.vi in the LabVIEW examples, it shows you how to pass a reference to a SubVI where you can change the minimum and maximum of the Graph.  You can then do your calculations on that segment of the graph.

 

To find examples, go to Help->Find Examples...

 

Let me know if that is what you are looking to do.

 

Nick

 

Applications Engineer
National Instruments
0 Kudos
Message 17 of 27
(1,691 Views)

Will do!

 

Thanks Nick!

0 Kudos
Message 18 of 27
(1,674 Views)

Hi Guys,

will u plz share some Sample Aquired emg signal for upward,rest,downward movement of right arm?

 

0 Kudos
Message 19 of 27
(1,614 Views)

Hey

 

I have a screen shot of my EMG analysis program (I have another vi that captures the data). I added the .lvm file and as a text file.

Download All
0 Kudos
Message 20 of 27
(1,610 Views)