Physiological data analysis is often introduced through applications: ECG interpretation, EEG analysis, pulse detection, respiratory monitoring, electromyographic burst analysis, or multimodal patient monitoring. That application-driven framing is necessary, but it can obscure a deeper point. Before physiological data are clinical, cognitive, or behavioral, they are signals.
They are acquired, sampled, filtered, transformed, represented, and interpreted under the constraints of instrumentation and the assumptions of signal processing. For that reason, the classical language of signal and system theory remains foundational in physiological data science. Contemporary machine learning does not remove that need. It depends on it.
Classical signal processing is the foundation of physiological inference
At the most general level, signal processing is concerned with representation and transformation of information-bearing physical quantities. In the discrete-time setting, the central objects are signals \(x[n]\), systems \(H\), transforms \(X(\omega)\), and estimators or detectors defined over finite observations.
Those questions transfer directly to physiological data, but with sharper stakes. A physiological signal is not simply a numerical sequence. It is a recorded manifestation of a biological process observed through a sensor, filtered by hardware, corrupted by disturbances, and interpreted through task-specific assumptions. A useful abstraction is
where \(x(t)\) denotes the latent physiological process, \(s(t)\) its measurable physical manifestation, \(y(t)\) the analog signal after sensor and front-end effects, and \(y[n]\) the sampled discrete-time sequence used for computation.
Why physiological data are an especially demanding signal-processing domain
Physiological signals make classical concepts operationally difficult because they combine several challenging properties. They are often nonstationary. They are multiscale. They are measured indirectly. And their interpretation depends heavily on the coupling between instrumentation, morphology, and downstream use.
An ECG is not the heart itself. It is an electrical projection of cardiac activity filtered through the body and the instrument. A PPG is not blood flow itself. It is an optical surrogate coupled to perfusion, compliance, motion, and sensor placement. EEG is not cognition. It is a superposition of neural population activity, volume conduction, reference choice, and noise.
That is why physiological signals are not merely a biomedical application of signal processing. They are a demanding testbed for the field itself.
Sampling and discretization
Sampling is among the most fundamental classical concepts. In its idealized form, a band-limited continuous-time signal can be reconstructed from samples if the sampling rate satisfies
where \(f_{\max}\) is the highest retained frequency component after anti-alias filtering. In practice, however, physiological acquisition rarely conforms to the textbook case.
This matters because physiological signals are often interpreted morphologically as well as spectrally. A rate that is theoretically sufficient for reconstruction may still be inadequate for reliable measurement of peak timing, interval duration, onset slope, or waveform curvature. In biomedical work, one should distinguish minimum sampling for avoiding catastrophic aliasing, sufficient sampling for preserving diagnostic morphology, and practical sampling chosen for robust downstream processing.
| Modality | Typical Target | Signal-Processing Concern | Why It Matters |
|---|---|---|---|
| ECG | QRS timing, intervals, morphology, HRV | Baseline drift, mains noise, phase distortion | Timing and morphology can change under poor filtering |
| EEG | Rhythms, transients, spectral content | Line noise, nonstationarity, reference dependence | Narrow-band and transient interpretations are sensitive to preprocessing |
| EMG | Bursts, fatigue, envelope structure | Motion artifact, rectification, bandwidth choice | Preprocessing changes both envelope and spectral conclusions |
| PPG and respiration | Pulse timing, morphology, modulation, trend | Motion, clipping, drift, delayed sensing | Apparent variation may be sensor-induced rather than physiological |
Convolution, systems, and filtering
In classical signal processing, a linear time-invariant system is described in discrete time by
or equivalently in the transform domain by
These equations are elementary, but their physiological consequences are substantial. Every filtering operation is a design decision that modifies amplitude, phase, timing, and potentially morphology. In settings such as ECG analysis, filtering is not simply a denoising stage. It becomes part of the measurement model.
A band-pass filter useful for QRS enhancement may be inappropriate for ST-segment analysis. A notch filter that suppresses mains interference may also distort nearby spectral content if bandwidth and phase are handled carelessly. Physiological filtering is never only about noise attenuation. It is about preserving the structure that downstream inference depends on.
Frequency-domain representation and spectral estimation
The Fourier transform and its discrete approximations remain indispensable because many physiological signals exhibit rhythm, periodic modulation, or oscillatory structure. For a finite record \(x[n]\), the discrete Fourier transform is
In principle this is straightforward. In practice, the DFT of a finite physiological record is never the spectrum of an infinite stationary process. It is the transform of a finite, windowed, often nonstationary observation.
Welch's method remains widely used for power spectral density estimation because it reduces estimator variance by averaging modified periodograms over overlapping segments. The price paid is reduced spectral resolution. That tradeoff is often appropriate for physiological data, but it must be understood rather than applied mechanically.
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
fs = 250.0
t = np.arange(0, 60, 1 / fs)
x = (
0.7 * np.sin(2 * np.pi * 1.2 * t) +
0.2 * np.sin(2 * np.pi * 0.25 * t) +
0.05 * np.random.randn(len(t))
)
f, pxx = signal.welch(
x,
fs=fs,
window="hann",
nperseg=2048,
noverlap=1024,
detrend="constant"
)
plt.semilogy(f, pxx)
plt.xlabel("Frequency (Hz)")
plt.ylabel("PSD")
plt.title("Welch Power Spectral Density")
plt.xlim(0, 10)
plt.show()
The code is simple. The engineering questions are not: whether the segment length supports the needed resolution, whether the signal is stationary enough over each segment, whether detrending removes drift or erases physiology, and whether the window balances leakage against resolution in a way the task can tolerate.
Time-frequency analysis for nonstationary biosignals
Many physiological signals are not adequately represented by one global spectrum. EEG rhythms change over time, EMG bursts are transient, cardiorespiratory coupling varies across state, and pulse signals can be intermittently corrupted by motion. In such cases, classical time-frequency methods become essential.
The short-time Fourier transform is defined as
where \(w[n]\) is a local analysis window. The STFT makes the classical time-frequency tradeoff explicit: shorter windows improve time localization and degrade frequency resolution, whereas longer windows do the opposite.
Wavelet methods address similar problems from a multiresolution perspective and are especially useful when abrupt transients and scale-varying structure matter more than one fixed-resolution spectrum.
Detection and morphology-aware processing
Detection is the point at which classical concepts become operational. The Pan-Tompkins algorithm remains canonical because it translates signal-processing ideas into a concrete detection pipeline: band-pass filtering, slope enhancement, nonlinear transformation, moving integration, and adaptive thresholding.
Its importance lies not only in historical influence, but in the structure of the design. The method works because it encodes assumptions about morphology and slope characteristics of the QRS complex. In that sense it is not simply a detector. It is an explicit signal model operationalized through classical processing stages.
import numpy as np
from scipy import signal
fs = 250
t = np.arange(0, 20, 1 / fs)
ecg_like = 0.03 * np.random.randn(len(t))
ecg_like += 0.3 * np.sin(2 * np.pi * 0.25 * t)
for beat in np.arange(1, 20, 1.0):
idx = np.argmin(np.abs(t - beat))
ecg_like[idx:idx + 3] += [0.5, 1.0, 0.4]
b, a = signal.butter(2, [5 / (fs / 2), 20 / (fs / 2)], btype="bandpass")
filtered = signal.filtfilt(b, a, ecg_like)
peaks, _ = signal.find_peaks(filtered, distance=int(0.4 * fs), height=0.2)
The detector and the preprocessing are not independent. Evaluating one without the other means evaluating the wrong abstraction.
A research-grade workflow for physiological signal processing
The most useful workflow is not to apply every transform in sequence. It is to pose the right signal-processing questions in the right order.
- Measurement: what physiological quantity is actually being sensed, and what part of the waveform comes from instrumentation rather than biology?
- Acquisition: is the sampling rate sufficient for analysis as well as display and timing, and is anti-alias protection explicit?
- Processing: does filtering preserve the morphology and timing relevant to the claim, and does the chosen representation match the signal assumptions?
- Validation: is the method tested on public data with trusted protocols, and does preprocessing inflate apparent performance?
Broader relevance of classical signal processing
It is tempting to regard classical signal processing as preparatory material superseded by data-driven models. That view is mistaken. Classical methods remain relevant not because they are old, but because they answer unavoidable questions: what has been measured, what has been distorted, what survives discretization, what assumptions support the transform being used, and what exactly is being detected or estimated.
Closing perspective
The deepest lesson of classical signal processing in physiology is that mathematics and the measurement chain cannot be separated. Sampling theory is not abstract when aliasing changes clinical interpretation. Filtering is not neutral when phase distortion deforms a diagnostic interval. Spectral estimation is not generic when the signal is nonstationary and the biological conclusion depends on band structure.
For engineers and researchers, that is exactly why classical concepts still matter. They remain the most reliable vocabulary for stating what was measured, what was preserved, what was distorted, and what can be defended analytically. In physiological data analysis, that is not peripheral knowledge. It is foundational knowledge.