You are provided with .wav file which contains a simulated electrocardiogram signal (ECG) with a low frequency (drift) signal, an interfering tone and white Gaussian noise added. Using MATLAB you will analyse this signal in the time and frequency domain to quantify the interference/noise. You will then design and implement digital filters to remove as much of the interference/noise as possible while preserving the underlying ECG signal.
Link to the noised ECG signal and desired output is given below:-
First read the provided signal (ECG.wav) into MATLAB then plot and inspect the signal in the time domain, recording your observations on the nature of the interference. Next, view the signal in the frequency domain and extract the key parameters of interest e.g. the frequency of tonal interference and the level and spectral distribution of noise. These parameters are required for the filter design tasks to follow.
Design an infinite impulse response (IIR) highpass filter based on a 2nd order Butterworth prototype using the bilinear z-transform method. This should have a cut off frequency of 0.1 Hz to remove the low frequency drift on the signal. Verify the response of this filter in MATLAB and then apply to the ECG signal, observing the result in the time domain.
Using the impulse response truncation method, design a finite impulse response (FIR) lowpass filter with a passband edge at 10 Hz and at least 50 dB attenuation at the frequency of the tonal interference identified in problem 1. Verify the response of this filter, then apply this to the highpass filtered ECG signal and inspect the output signal in the time and frequency domain.
Increase the cut-off frequency of the FIR lowpass filter applied in problem 3 to 50 Hz to preserve more of the ECG signal spectrum. Now remove the tonal interference signal using an adaptive filter in the noise cancelling configuration (direct model) and compare the output signal with that produced in problem 3. (The reference interference signal may be obtained by generating a sine wave at the interference frequency identified in problem 1).
The ECG signal is significantly oversampled and hence the above operations could be carried with fewer operations by using a multirate DSP approach. Analyse the computations required to achieve the output of problem 3 and propose an alternative approach using a two stage filter to reduce computation. Verify that this produces a similar output with fewer computations and faster execution time in MATLAB.