Wireless Musical ElectrocardiogramAmy Tang and Sinit VitavasiriMotivation• Wireless communication for medical applications is able to solve clinical needs and risks, while providing the patient with the freedom of movement.Objectives• Obtain EKG from patient• Intelligently analyze, store, and transfer data to end user• Ability to detect varying conditions of patient.EKG sensor MicrocontrollerRF TransceiverFPGARF TransceiverSensor ModuleReceiver ModulePatientOscilloscopeLEDDisplayAudioModes of OperationMode 1: • EKG Wireless Monitor• Bright LED “Beat” Indicator• Digital Heart Rate DisplayMode 2:• Detecting Abnormality from Heart Rate• Detecting Abnormality from EKGMode 3:• Heart-Rate-Controlled MusicEKG Gain A/D Transmitter Receiver88BPF1 BPF2×D/AoscilloscopeResetClockSynchronizerSW3Heart Beat Detector# posedge in 10 secs × 6LEDDisplayAbnormality DetectorLEDsTempo ControllerMusic DataAudioheart_rateNoise FilteringTypical EKG WaveformWireless TransceiverCC1010 (ChipCon) -8051 Compatible Microcontroller-300-1000 MHz RF Transmission-32 kB Flash Memory-A/D Converter (10 bit)Wireless – Calibration AlgorithmStart single calibrationWrite CURRENT.VCO_CURRENT = RX currentWrite PLLREFDIV = RX reference dividerWrite FRMAIN:RXTX = 0; F_REG = 0; RX_PD = 0;FS_BD = 0 Write FREQ_A, FREQ_BEnd of CalibrationWrite CAL.CAL_START = 0Write FRMAIN:RXTX = 0; F_REG = 0; RX_PD = 0;FS_BD = 0 Write CAL.CAL_START = 1Write CURRENT.VCO_CURRENT = TX currentWrite PLL.REFDIV = TX reference dividerWrite RFMAIN:RXTX = 1; F_REG = 1RX_PD = 1; TX_PD=0; FS_PD = 0RESET_N =1Write CAL.CAL_START = 1Wait for 38 msm or Read CAL or wait until CAL.CAL_COMPLETE = 1Frequency register A is used forRX mode, register B for TXfrequency register A is calibrated first‘RX current’ is the VCO current to be used in RX modeCalibration is performed in RX mode, Result is stored in TEST0 and TEST2, RX registerMode 1: Noise Filtering3 Hz 22.5 Hz3 Hz 10 HzNoisy signal from wireless receiverUse Matlab to determine the impulse response for each filter×Attenuate peaks, preserve signal featuresSmooth out peaksFiltered datacs ce D/AAD 558majorFSMAUmultiplieranalogSRAMdividersynchronizerreset_sync(global)sampleAU_startAU_busyDAC_startanalog_busy8 int_data8read_data12 rom_addr 16 rom_qsram_we6 sram_addr8 sram_qresetCLK(global)cs_bar_DAext_data8Received SignalROM1ROM2Mode 1: Noise FilteringMode 1: Heart Beat DetectorthresholdenableMode 1: Heart Rateenable10 seconds• Count number of positive edges in 10 seconds• Heart rate = # count × 6Mode 2: Detecting Abnormality• Normal heart rate range = [50, 200]• If heart rate is out of this range, the LED will illuminate.• Normally, T > P• Compare the two peaks from stored data in SRAM• If T < P, the LED will illuminate.Mode 3: Music from the Heart- Music tempo is controlled by the heart rate- Change tempo without changing pitchLocation 10Location 9Location 8Location 7Location 6Location 5Location 4Location 3Location 2Location 1Mode 3: Algorithmfunction output = timescale(sig, compression, maxfreq) % takes in a signal in the time domain and scales its length, thus increasing its tempo. % It scales the signal by compression, where compression is less than 1. % It takes in maxfreq in order to compute how often to remove samples. if nargin < 3, maxfreq = 4096; end n = length(sig); % Computes how often to remove samplesTimediv = floor(.08*maxfreq*2) % Computes how many samples to removeremove = floor((1-compression)*timediv) output = 0; % Remove samples, and recombine signals for i = remove+1:(timediv±remove):(n-timediv) output = [output; sig((i-remove):(i+timediv-remove))];end + faster-slowerMode 3: Music of the HeartHeart Rate Range• 51-80• 81-110• 111-140• 141-170•
View Full Document