Dear Gyusung Lee,
First you must determine what is causing the data to be processed slowly.
The Vicon system uses a file format called C3D so I assume that you are using MATLAB to read the data from the C3D file, then smoothing the stored data and finally, writing the smoothed data out, either to the C3D file or some other format. You need to see if one of these three operations is running slowly - once you've identified the processing bottleneck, you can see what can be done to speed it up. Often simple techniques like reading and writing blocks of data instead of individual samples one at a time can produce huge improvements in efficiency.
We made a product available called C3Dserver that is compatible with MATLAB and allows MATLAB to read and write C3D files - this product is available is a free version and can also be purchased quite inexpensively. The only difference between the free version and the paid for version is speed - if you are using the C3Dserver to read the data into MATLAB then purchasing a license would *dramatically* improve the processing speed.
It's worth noting that the C3Dserver incorporates the blocking technique that I mentioned about - users can read either individual samples of data or entire channels of data in a single function call.
One final comment - you are sampling the EMG data at 1500Hz which suggests that you're expecting the data to contain signals up to 750Hz ... the specification for the Delsys system on their website suggests that their system only goes up to 450Hz. Since you're sampling the raw data and then smoothing it, it's quite possible that you could lower the analog sample rate of the Vicon system by a third - this would reduce the size of the file which would reduce your processing time.
Regards,
Edmund Cramp
--
Sales Support
Motion Lab Systems, Inc.
15045 Old Hammond Highway, Baton Rouge, LA 70816 USA
Tel: +1 (225) 272-7364
Fax: +1 (225) 272-7336
Web: http://www.motion-labs.com
-----Original Message-----
From: * Biomechanics and Movement Science listserver [mailto:BIOMCH-L@NIC.SURFNET.NL] On Behalf Of Gyusung Lee
Sent: Thursday, June 21, 2007 8:50 AM
To: BIOMCH-L@NIC.SURFNET.NL
Subject: [BIOMCH-L] EMG data smoothing
Dear all,
I have collected EMG data from subjects at 1500Hz using a 16 channel Delsys EMG system though Vicon. Because each trial took 12 minutes, I ended up with more than a million samples at each channel. I had the analog data imported to Matlab and smoothed it by using RMS calculation. The only problem is that it took longer than 10 hours. Is there any alternative smoothing technique which would work faster in Matlab environment? You suggestions will be very appreciated.
Sincerely,
Gyusung Lee, Ph.D.
------------------------------------------------
Faculty Research Associate
Surgical Ergonomics Laboratory
University of Maryland
School of Medicine
Department of Surgery
22 South Greene St. Room S7B15
Baltimore, MD 21201
Phone: (410) 328-0185
Fax: (410) 328-4084
------------------------------------------------
First you must determine what is causing the data to be processed slowly.
The Vicon system uses a file format called C3D so I assume that you are using MATLAB to read the data from the C3D file, then smoothing the stored data and finally, writing the smoothed data out, either to the C3D file or some other format. You need to see if one of these three operations is running slowly - once you've identified the processing bottleneck, you can see what can be done to speed it up. Often simple techniques like reading and writing blocks of data instead of individual samples one at a time can produce huge improvements in efficiency.
We made a product available called C3Dserver that is compatible with MATLAB and allows MATLAB to read and write C3D files - this product is available is a free version and can also be purchased quite inexpensively. The only difference between the free version and the paid for version is speed - if you are using the C3Dserver to read the data into MATLAB then purchasing a license would *dramatically* improve the processing speed.
It's worth noting that the C3Dserver incorporates the blocking technique that I mentioned about - users can read either individual samples of data or entire channels of data in a single function call.
One final comment - you are sampling the EMG data at 1500Hz which suggests that you're expecting the data to contain signals up to 750Hz ... the specification for the Delsys system on their website suggests that their system only goes up to 450Hz. Since you're sampling the raw data and then smoothing it, it's quite possible that you could lower the analog sample rate of the Vicon system by a third - this would reduce the size of the file which would reduce your processing time.
Regards,
Edmund Cramp
--
Sales Support
Motion Lab Systems, Inc.
15045 Old Hammond Highway, Baton Rouge, LA 70816 USA
Tel: +1 (225) 272-7364
Fax: +1 (225) 272-7336
Web: http://www.motion-labs.com
-----Original Message-----
From: * Biomechanics and Movement Science listserver [mailto:BIOMCH-L@NIC.SURFNET.NL] On Behalf Of Gyusung Lee
Sent: Thursday, June 21, 2007 8:50 AM
To: BIOMCH-L@NIC.SURFNET.NL
Subject: [BIOMCH-L] EMG data smoothing
Dear all,
I have collected EMG data from subjects at 1500Hz using a 16 channel Delsys EMG system though Vicon. Because each trial took 12 minutes, I ended up with more than a million samples at each channel. I had the analog data imported to Matlab and smoothed it by using RMS calculation. The only problem is that it took longer than 10 hours. Is there any alternative smoothing technique which would work faster in Matlab environment? You suggestions will be very appreciated.
Sincerely,
Gyusung Lee, Ph.D.
------------------------------------------------
Faculty Research Associate
Surgical Ergonomics Laboratory
University of Maryland
School of Medicine
Department of Surgery
22 South Greene St. Room S7B15
Baltimore, MD 21201
Phone: (410) 328-0185
Fax: (410) 328-4084
------------------------------------------------