Switch to side-by-side view

--- a
+++ b/2-Generating Synthetic ECG Data/README.md
@@ -0,0 +1,49 @@
+# Generating Synthetic ECG Data
+
+Each of our ECG data consists of 12 leads, with a duration of 10 seconds and a frequency of 250 Hz. Therefore, each sample is a data matrix of 12 by 2500. In our case, we worked on 2 sets
+of data, one was synthetic, one was real clinical data. Although we cannot share our real clinical data, the simulation code is accessible. 
+
+***Simulation Code***
+
+The simlation part includes two files: **'ecg_simulation_multichannel.py'** and **'parameters. py'**.
+
+**Instruction**:
+ - Install package **neurokit2**
+ - Open **sample_code_for_simulation.ipynb** which is a short sample notebook to show the way to output synthetic data.
+ - Function **simulation** is all you need.
+    1.  Input:\
+    **normal_N**: the number of normal ECG data;\
+   **abnormal_N**: the number of abnormal ECG data;\
+   **save_params**: whether save parameters for each ecg sample, default value is *False*.
+    2. Output:\
+        **sim_ecg_data.npy**: output file, `shape = (normal_N + abnormal_N, 12, sampling_rate*duration)`;\
+        **sim_ecg_labels.npy**: output file to save labels, `shape = (normal_N + abnormal_N, )`;\
+        **sim_ecg_params.npy**: depend on **save_params**, file to save parameters for each ecg sample, `shape = (normal_N + abnormal_N, )`.
+The saved data is already **shuffled**.
+ - If you want more customized ECG data, please check **parameters. py** file. All the parameters' definitions are in the following table (_1 stands for normal, _2 stands for abnormal):
+ 
+|                |Parameter                           |Meaning                          |
+|----------------|-------------------------------|-----------------------------|
+|1|sampling_rate          |sampling rate, default 250 Hz          |
+|2          |duration|default 10s|
+ |3         |gamma|a (12,5) matrix to modify each lead's five spikes' amplitudes|
+ |4          |mu_hr_1          |the mean of heart rate        |
+|5          |sigma_hr_1          |the variance of heart rate        |
+|6         |min_noise_1, max_noise_1        |the max value and min value of noise        |
+|7|t           |the starting position along the circle of each interval in radius         |
+|8          |a          |the amplitude of each spike; b, the width of each spike         |
+|9          |b|the width of each spike|
+
+For a better understanding of the above parameters, please read the following.
+[<img src="./3D.png" width="500"/>]
+[<img src="./table.png" width="500"/>](table)
+
+ We can see from the above table that each interval in the 3D trajectory can be fixed by 3 parameters: the starting position 
+<img src="https://render.githubusercontent.com/render/math?math=\theta_i/t_i "> along the circle of each interval in radius, The amplitude of each spike a and the width of each wave b. By altering these 3 parameters we can change the shape of the 3D trajectory and thus change the waveform of the resulting ECG. 
+
+
+**Prebuilt Synthetic Data**
+Prebuilt synthetic data can be found at the following link 
+https://drive.google.com/drive/folders/1iqyAlyHAvNWdOvjEGn8Y6C8kItsdZ_GC?usp=sharing
+
+