1 Introduction

Electrocardiography (ECG) is currently the only diagnostic equipment which provides global monitoring and screening of cardiovascular system pathology of outpatients and studies the electrical activity of the heart [1, 2]. Electrocardiographs operate at low frequencies from 0.05 to 75, 100, 150, and 250 Hz, and contain surge and muscle tremor suppressors [3].

Along with electrocardiographs, various algorithms of the ECG interpretation are used for computer data processing and establishing diagnosis. However, any hardware/firmware malfunction of electrocardiograph may result in serious injury of a patient, wrong diagnosis and, consequently, wrong treatment.

Thus, Bogun et al. [4] noted that in the ECG analysis of 442 (19%) of 1085 patients, the obtained data were not interpreted correctly. For 92 patients (24%), the doctor was unable to correct the misinterpretation when analyzing the ECG, which led to an inadequate treatment.

It should be noted that a study of low amplitude potentials of the human heart in the frequency band over 250 Hz is of great importance for early diagnostics of cardiovascular system pathology [5,6,7,8,9,10,11]. According to Avdeeva, et al. [12], the spontaneous activity of myocardial cells registered on the surface of the thoracic cell in the frequency range from 0 to 10,000 Hz, is impulse in nature; the pulse amplitudes vary from 1 mkV to several tens of microvolts and the pulse duration ranges from 0.3 ms to tens of milliseconds.

Accordingly, the development of the existing models of the cardiac activity and the ECG interpretation algorithms based on the disease statistics obtained from typical electrocardiographs cannot be used, with a high degree of probability, for computer-aided diagnosis.

This work proposes a prototype test signal generator developed for high-resolution electrocardiography and algorithms for the ECG analysis.

2 ECG Test Signal Generator

For the development of advanced automated electrocardiographs, the test ECG signal generator must reproduce the following signals. DC voltage: –300 and 300 mV.

The root mean square (RMS) values 0.3 μV, 1.0 μV, 10 μV, 0.1 mV, 1 mV, 4 mV, 10 mV, 1 V and 5 V of sine-, triangle- and square-waveform alternating current can be varied within the frequency span of 0.5–500 MHz, 500 MHz–500 Hz, and 500–1000 Hz with increments of 0.5 MHz, 10 MHz and 0.1 Hz, respectively.

The output voltage of an artificial ECG: from ±500 μV to ±10 mV; amplitude discretization: 5 μV at a sampling frequency ranging from 30 to 360 pulses per minute; ST segment displacement: 10–2.05 mV; adjustment of the amplitude, width and position of electrocardiographic waves in the QRS complex.

The flowchart of the test ECG signal generator depicted in Fig. 1, meets the requirements indicated above.

Fig. 1
figure 1

Flowchart of the test ECG signal generator

As can be seen from Fig. 1, the test ECG signal generator consists of the following functional units:

  • secondary power source (SPS) is designed to supply DC to AC 220 V 50 Hz voltage power for the circuit elements of the generator (UVDD = 15 V, UVSS = –15 V, UVCC = 5 V);

  • the reference voltage source (RVS) is used to create the reference voltage for the digital-to-analog converter (DAC);

  • from the reference voltage, the DAC generates a unipolar, constant-amplitude signal of the specified frequency;

  • buffer operational amplifier (BOA 1) is designed for the test signal shift relative to zero;

  • multiplying digital-to-analog converter (MDAC) is used to attenuate the test signal by 1–100 times;

  • buffer operational amplifier (BOA 2) is designed to adapt the MDAC output to the inputs of the power amplifier (PA) and attenuator;

  • the switch is used for automated switching of the generator outputs;

  • the PA is designed to amplify the current test signal and adapt the generator output to low impedance loads;

  • the attenuator is used to attenuate the test signal and provide 0.3 V, 1.0 V, 10 V, 0.1 mV, 1 mV, 4 mV, 10 mV RMS values and the output voltage of the artificial ECG varying from ±500 μV to ±10 mV;

  • a myRIO-1900 (National Instruments, USA) device with Xilinx Zynq-7010 FPGA module functions as a logic software and logic hardware;

  • dynamic random-access memory is used as a RAM unit;

  • non-volatile memory is provided by electrically erasable programmable read-only memory (EEPROM);

  • a 40 MHz reference frequency generator (RFG) is used for clocking the microcontroller and the field programmable logic device (FPGA).

Based on the LabVIEW system-design platform, customized software is developed to generate test signals and control the generator operation. The LabVIEW consists of two parts: the top-level program based on a host computer, namely a Test Signal Generator virtual device, and the low-level program based on the NI myRIO 1900 target device. The application running on the host computer is responsible for the user interface, while the application running on the target device utilizes the DDS-based FPGA for the continuous test signal reproduction with a quick frequency agility. The model described in [13] is used to generate an ECG period of signal. Figure 2 illustrates the user interface for the generator control.

Fig. 2
figure 2

User interface for the generator control

Figures 37 present the output waveforms of the sampled signals of the prototype signal generator using the ECG recorder with nanoelectrodes [12].

Fig. 3
figure 3

Sine waveform. RMS: 1 μV. Frequency: 1 Hz

Fig. 4
figure 4

Sine waveform. RMS: 300 nV. Frequency: 1 Hz

Fig. 5
figure 5

Square waveform. RMS: 1 μV. Frequency: 1 Hz

Fig. 6
figure 6

One ECG period of signal

Fig. 7
figure 7

ECG signal

3 Conclusions

From the outcome of our investigation it is possible to conclude that the proposed test signal generator provided a reproduction of the following signals. DC voltage: –300 mV and 300 mV. The RMS values 0.3 μV, 1.0 μV, 10 μV, 0.1 mV, 1 mV, 4 mV, 10 mV, 1 V and 5 V of sine-, triangle- and square-waveform alternating current varied within the frequency span of 0.5–1000 Hz with increments. The output voltage of an artificial ECG: from ±500 μV to ±10 mV; amplitude discretization: 5 μV at a sampling frequency ranging from 30 to 360 pulses per minute. In our future research we intend to improve the accuracy of the signal reproduction.