ECG denoising and fiducial point extraction using an extended Kalman filtering framework with linear and nonlinear phase observations