C5505 evm ecg interface in simulink

2 ビュー (過去 30 日間)
Talha
Talha 2011 年 5 月 31 日
回答済み: mak carlos 2018 年 1 月 15 日
hi, I have C5505 EVM, and I am doing ECG implementation on it. So far I have successfully got the results of ECGs. Now I am trying to interface the Kit with the Matlab/Simulink. i achieved signals Simulink using Instrument Toolbox in simulink but the output is all noisy. i also have to differentiate between ecg leads signals for further analysis. i have applied the DeMux but the scope is showing all output of different leads of ECG together...
i used 9 scopes cause i thought serial data is comprise of 9 channels. but all scopes have output with some changes and amplitude is very much...
(One thing more i dont understand the DATA SIZE option in SERIAL RECIEVE BLOCK PROPERTIES...And is there any S function that i can use for dsp serial communication??)
Regards,
Talha

回答 (3 件)

Shankar Subramanian
Shankar Subramanian 2011 年 5 月 31 日
Data Size field refers to the number of values to read (of the type specified by Data Type field) from the Serial port at every simulation time step.
For example - If you specify 5 as data size and uint8 as data type, the Serial Receive block reads 5 uint8 values at every time step. Optionally you can also specify the size as a matrix, say [2 3]. In this case, the block reads 6 values from the serial port and outputs it in the matrix format specified.
The Serial Receive block currently supports only fixed size outputs specified by the data size field.
Thanks
Shankar
  3 件のコメント
Walter Roberson
Walter Roberson 2011 年 6 月 1 日
It's just going to come out as an array so index it or whatever you need.
The problem you have, according to your other posts, seems to be that you do not know what order the data is in. Or do you know the serial order but just do not know the signal order?
Talha
Talha 2011 年 6 月 1 日
Answers to both of your post...
1)Yes the maximum amplitude is about 3 x 10^4 but sometimes exceeds also. and i have selected signed 16 bit integer.
2)Yes i am not sure about the orders of both.
I was hoping that there exist a toolbox or a component in simulink for separation?? and can you tell me how can i achieve original amplitude???

サインインしてコメントする。


Walter Roberson
Walter Roberson 2011 年 6 月 1 日
Reference material: here. See pdf page 16 for information about the serial data transmission. Note that there is a periodic header (every 1 second) that is in a different format.
The data itself is repetitions of sets of samples from each of the 8 leads, 16 bits per channel, low (less significant) byte first. After the header mentioned earlier, the samples repeat in the order shown in section 2.4, pdf page 8.
I am a bit uncertain as to the serial data format: I don't see how a simple 8 bit packet number would work if it is incremented for each sample sent.
  2 件のコメント
Talha
Talha 2011 年 6 月 2 日
Now i know everything that is to know about the serial data order and signal order. But i am afraid simulink implementation is a unattainable dream. Cause the i have to separate the serial data in real time with respect to time, as the data's order include header, leads off detection, heart rate etc all in a single packet. Then restarts it again from zero-zero for the next packet. so any advice on this front...
Walter Roberson
Walter Roberson 2011 年 6 月 2 日
It doesn't restart it at zero-zero for the next packet as far as I could see. If you do not need the heart rate or lead on/off information, then the header and following status information sent out periodically become noise to be skipped.
One thing I noticed about the synchronization header was that the first two words of it are equivalent to having two words each of which are the maximum negative value -- the pair 00 80, because the less significant byte is first for the data, is equivalent to hex '8000' which in signed format is the minimum integer (a number that has no equivalent maximum). Once you have gotten yourself synchronized with the data stream and are reading a bunch of data, use a comparator block to detect the -32768 and when found, handle the five bytes that follow distinctly and then return to the data gathering.

サインインしてコメントする。


mak carlos
mak carlos 2018 年 1 月 15 日
Hi
I not so familiar with the Matlab software, recently I am doing my project relate Real time Signal processing ECG, I facing the problem is come out too much noise, even the lead electrode do not touch skin, the output automatically detected. Can I know how to solve the problem, even I use Matlab m code method or Simulink method connect with the arduino and ECG lead electrode get same problem ?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by