# 1-D Convoltional Neural network for ECG signal processing

287 views (last 30 days)
shahram taheri on 11 Oct 2017
Answered: Kaouter Karboub on 13 Sep 2019
Dear Sir, I read the useful comment in https://www.mathworks.com/matlabcentral/answers/331164-convolutional-1d-net by Joss Knight. I want to use 1-D for ECG classification. I have 5 classes of signal,each one has 651 samples, I want to simulate the proposed method of the following article: "Application of Deep Convolutional Neural Network for Automated Detection of Myocardial Infarction Using ECG Signals" by Prof. Rajendra Acharya. In their paper, they mentioned the CNN structure as follow:
I worte the following code in order to define my CNN layers:(assumed that input signal has 651 samples)
layers = [imageInputLayer([1 651])
convolution2dLayer([1 102],3,'stride',1)
maxPooling2dLayer([1 2],'stride',2)
convolution2dLayer([1 24],10,'numChannels',3)
maxPooling2dLayer([1 2],'stride',2)
convolution2dLayer([1 11],10,'stride',1,'numChannels',10)
maxPooling2dLayer([1 2],'stride',2)
convolution2dLayer([1 9],10,'numChannels',10)
maxPooling2dLayer([1 2],'stride',2)
fullyConnectedLayer(30)
fullyConnectedLayer(10)
fullyConnectedLayer(2)
softmaxLayer
classificationLayer];
is it correct? I train my CNN with these layers, but the predicted labels are fixed to one of the classes! But when I use ony the 4 first layers, the accuracy is very good(98.35%). what happend when I insert the remaining layers?

#### 1 Comment

Conor Daly on 16 Oct 2017
Hi Shahram,
The network architecture looks correct. However, I'm not sure what's happening during training. In the paper you linked, the authors say that they applied Z-score normalization to all of the signals. If you've done this, you could turn off the default zero-centering normalization in the image input layer by writing:
layer = imageInputLayer([1 651 1], 'Normalization', 'none')

Pavithra R on 12 Dec 2017
I have completed the feature extraction of ECG. Now I have to classify those using CNN. Kindly give a sample code for reference.

shahram taheri on 12 Dec 2017
I think there is a misunderstood here, we use CNN in order to automatically extract the features and classifying them. if you extract the features(hand-crafted features)you need to use a classifier like SVM or KNN
Abdul Rahman Ya'akub on 11 Apr 2018
hi shahram, how to use CNN to automatically extract the feature and classifying the image? do you have some demo?
hilal duran on 25 Mar 2019
I agree with shahram taheri , and also you can use LSTM to claffify ECG signal.

shefali saxena on 6 Nov 2018
hi shahram, as i am new to Deep Learning can you help me on how we can give 1d (ECG) signal as a input to CNN

#### 1 Comment

Mahak Parwana on 31 Jan 2019
Hey, were you able to figure it out? I need some help.

Kaouter Karboub on 13 Sep 2019
Dear friends ,
first of all, for those who asked about how CNN extract features, well ... its too simple , if u ve got a simple look in any CNN architecture u can figure it out that in any CNN layer the main objective is to extract features and that the classification is not done til the last layer which is obviously the output layer
second , about the 1 d signals , yes u can for sure use CNN .. by using those samples, plot them and use CWT and then fit them into ur CNN .....
main rule in here : every classification task needs a preprocessing of ur data that can be 1 d or 2 d or 3d ... it doesn t matter !!