Technical Guides · Signal Processing
Tutorials and Guides: Processing Raw Force-Plate Signals
At 1,000 Hz, a force plate records 1,000 samples per second on each channel; turning those samples into a trustworthy contact time or peak force takes more than pressing “filter.” Units, signs, offsets, cutoff frequency, and event thresholds all leave a fingerprint on the result.
This worked sequence follows vertical ground-reaction force from raw channel to analysis-ready signal. It uses a fourth-order, zero-lag Butterworth low-pass filter at 20 Hz and a 20 N contact threshold as examples—not universal settings. The correct choices depend on the movement, equipment, and question being asked.
1. Preserve the raw record
Before changing a value, keep an untouched copy of the acquisition file. Store the raw channels, sampling frequency, calibration information, channel labels, units, and any known plate coordinate convention alongside the processed data. A processing script should create new variables rather than overwrite the original measurements.
This simple discipline matters when a result looks surprising. If a take-off force appears negative, for example, the cause could be a sign convention, a force-plate orientation, or an incorrect conversion—not the athlete’s movement. With the original data intact, each possibility can be checked without reconstructing the measurement from memory.
Record processing decisions in machine-readable form where possible: filter family and order, cutoff frequency, whether filtering was applied forward and backward, contact threshold, event rule, and any excluded samples. “Filtered force” is not a reproducible method. “Vertical force, fourth-order Butterworth, 20 Hz cutoff, forward–backward application, 20 N onset threshold” is much closer.
2. Verify the sampling rate, units, and signs
Begin by checking the time base. At a sampling rate of 1,000 Hz, adjacent samples should be separated by 0.001 seconds. If a file contains 5,001 samples, its elapsed time from the first to the last sample is 5.000 seconds—not 5.001 seconds—because there are 5,000 intervals between those samples.
The sampling rate also sets the Nyquist frequency: half the sampling frequency. At 1,000 Hz, that limit is 500 Hz. It describes the highest frequency that can be represented without aliasing under ideal sampling conditions; it does not mean that every signal component below 500 Hz is useful or free of measurement noise. If acquisition settings or an analog anti-aliasing filter are unknown, digital processing cannot recover information that was already misrepresented during acquisition.
Check whether the exported values are in newtons, kilonewtons, volts, or digital counts. Some systems export already calibrated force; others provide voltage or counts that require a documented calibration transformation. A force near 700 N is plausible for a person standing on one leg, while a value of 0.7 may indicate kilonewtons—or an unconverted signal. Do not infer the units from the size of a number alone: confirm them in the acquisition software, file metadata, or system documentation.
Next, establish the sign convention. In a common laboratory convention, vertical ground-reaction force is positive upward, so a person standing still registers a positive vertical force. Other exported coordinate systems may use the opposite sign. Confirm the convention using a known loading condition and the plate’s axis definition. Check horizontal channels separately; their signs depend on the chosen coordinate frame, not on a universal “forward is positive” rule.
A useful sanity check is quiet standing. For a stationary person, the average vertical ground-reaction force should be broadly consistent with body weight, calculated as mass multiplied by gravitational acceleration. For a 70 kg person, that is approximately 70 × 9.81 = 687 N. Small deviations can reflect movement, scale or calibration uncertainty, and the duration of the averaging window; a value near zero or several thousand newtons calls for an immediate unit, sign, and channel check.
3. Estimate and correct the unloaded offset
A force channel can report a small nonzero value when the plate is unloaded. This baseline offset may arise from the measurement chain, thermal changes, or a particular acquisition setup. For vertical force, estimate it from a period when the plate is known to be unloaded, ideally before the subject contacts the surface and after any settling period.
For an unloaded segment containing N samples, calculate its mean:
Offset: b = (1/N) Σ Fi
Then subtract that offset from the channel: Fcorrected = Fraw − b. For example, if the unloaded baseline averages 3.2 N, subtract 3.2 N from every sample in that record. Save the estimated offset with the processed trial so the correction remains traceable.
Use a window that is genuinely unloaded. If the person is still standing on the plate, the mean is not an electronic zero; it includes the person’s load. Likewise, an interval during movement may contain small real forces. Inspect the baseline rather than selecting a long window automatically. A large or steadily changing offset should trigger investigation of setup, settling, or equipment condition—not an aggressive correction that makes the trace look tidy.
Subtracting one constant offset is appropriate only when the baseline is reasonably stable. A slope across an unloaded interval suggests drift. Removing that drift with a fitted trend can be defensible in some analyses, but it can also erase genuine low-frequency signal. State the method and apply it only when the experimental design supports it. Avoid using the loaded portion of a trial to force the mean toward an expected value; that risks building the desired answer into the data.
4. Apply a filter that matches the question
Force records contain the movement of interest alongside vibration, mechanical noise, and other frequency components. A low-pass filter reduces higher-frequency content, but it also changes the signal. A cutoff that is suitable for estimating a broad force-time profile may be unsuitable for studying impact transients or calculating a rapid rate of force development.
A fourth-order Butterworth low-pass filter with a 20 Hz cutoff is a practical worked example for a smooth force-time signal. A Butterworth filter has a maximally flat magnitude response in its passband. At 1,000 Hz, a 20 Hz cutoff is far below the 500 Hz Nyquist frequency, and it suppresses substantial higher-frequency content. That does not make 20 Hz a default for every movement: the defensible cutoff depends on the task, the features being measured, and the noise present in the recording.
For offline analysis, a forward–backward application—often called zero-phase or zero-lag filtering—filters the signal in both temporal directions. It avoids the phase delay associated with a one-pass causal filter, which can be useful when comparing the apparent timing of force events. It does not leave the signal untouched: the effective magnitude response is altered because the filtering is applied twice, and edge behaviour can be distorted. In common implementations, the apparent attenuation at the nominal one-pass cutoff is therefore stronger after forward–backward filtering.
“Zero phase” describes the processing effect in the interior of the record, not a guarantee that every sample is accurate. Near the beginning and end, the algorithm must handle missing data beyond the recorded window. Its padding or initial-condition strategy can create edge artifacts. If the analysis concerns onset near a file boundary, record extra data before and after the event when possible, inspect the filtered trace, and avoid treating unreliable edge samples as evidence.
Filtering also depends on implementation details. A digital filter must be designed for the actual sampling rate and cutoff, with frequencies expressed correctly by the software. Use a stable implementation, such as second-order sections where available, particularly for higher-order filters. Document the software or code version and whether the stated order refers to the one-pass filter or the final forward–backward operation.
Compare the raw and filtered traces on the same time axis before extracting outcomes. A useful filter should reduce unwanted high-frequency fluctuation without flattening meaningful peaks, shifting an event in an unexpected way, or creating an implausibly smooth curve. If two reasonable cutoff choices materially change peak force or event timing, report that sensitivity rather than hiding it behind a single polished trace.
5. Detect contact with an explicit rule
Contact is not a mysterious instant contained in the waveform; it is an event defined by an operational rule. One straightforward rule for vertical force is the first sample at which force exceeds 20 N. At 1,000 Hz, each sample represents 1 ms, so the reported event time is quantized to the sampling interval, before considering filtering and other sources of uncertainty.
For a threshold rule, specify at least the channel, direction of crossing, threshold, and any requirement that the force remain above threshold. For example: “Initial contact was the first upward crossing of 20 N in baseline-corrected vertical force, sustained for at least 10 consecutive samples.” The sustained period in this example is 10 ms at 1,000 Hz. It helps reject brief noise spikes, but it also means the detection rule must be applied consistently and its timing convention explained.
Threshold choice changes the detected event. A higher threshold generally identifies contact later than a lower threshold on a rising force trace. A 20 N rule may be practical for a clear loading event, but it is not interchangeable with 5 N, 50 N, or a percentage of body weight. For an individual near 70 kg, 20 N is roughly 2.9% of body weight; that comparison makes the scale of the rule clear without implying that the threshold is biologically universal.
Noise near the baseline can cause repeated crossings. One remedy is hysteresis: use a higher threshold to declare contact and a lower threshold to declare loss of contact. For instance, an analysis might declare contact above 20 N and end contact below 10 N. This creates a gap that prevents a small fluctuation around one boundary from repeatedly switching the state. The values are examples and must be selected and justified for the measurement context.
Thresholding is not the only possible event definition. Some protocols use a percentage of body weight, a force-plate-specific criterion, synchronized video, or another signal. When comparing studies or laboratories, use the same event definition if possible. If methods differ, do not treat their contact times as directly equivalent without considering the rule, sampling rate, filtering, and any synchronization delay.
6. Worked sequence: from samples to contact time
Imagine a vertical force record sampled at 1,000 Hz. The raw channel is in newtons, upward is positive, and the plate is unloaded for the first 0.5 seconds. The unloaded interval contains 500 samples if it is indexed from 0.000 through 0.499 seconds. Suppose its mean is 3.2 N.
- Confirm the channel label, units, sign, and sample interval of 0.001 seconds. Retain the raw vector unchanged.
- Calculate the mean of the confirmed unloaded segment and subtract 3.2 N from the full record.
- Apply the documented fourth-order, 20 Hz Butterworth low-pass filter forward and backward, noting the software’s filtering convention and edge handling.
- Find the first upward crossing of 20 N in the corrected, filtered vertical-force signal. If the protocol requires persistence, confirm the threshold is exceeded for the specified number of samples.
- Convert the detected sample index to time using the recorded sampling interval, then save the event rule and processing parameters with the result.
Suppose the crossing occurs at sample index 2,350 when indexing begins at zero. Its time relative to the first sample is 2.350 seconds. If software uses one-based indexing, the same physical sample may be displayed as index 2,351; calculate time from the indexing convention rather than copying the label blindly. Also distinguish the sample’s recorded time from any correction for hardware synchronization or acquisition-system delay.
This sequence produces a defined event time, not an inherently exact one. Its interpretation depends on the threshold, filter, baseline estimate, sampling interval, and recording system. Keeping those choices visible is what makes the number useful to another analyst.
7. Common failure modes—and what they reveal
Baseline drift
If a supposedly unloaded trace slowly rises or falls, first inspect the recording and setup. Check whether the plate was disturbed, whether the acquisition began before the signal settled, and whether the apparent trend occurs in all channels. A moving baseline can make a low threshold trigger too early or can conceal light contact. Plot the unloaded region and quantify its mean and spread; do not dismiss drift because the later peak looks plausible.
Clipped peaks
A flat-topped peak may indicate that the analog input or digital range reached its limit. Look for repeated maximum or minimum values, an abrupt plateau, or a trace pinned to the same boundary across several samples. Filtering cannot reconstruct the force above a clipped ceiling. Flag the trial, inspect the acquisition range and system status, and exclude or qualify the affected outcome according to the study protocol.
A contact event that moves after filtering
A forward–backward filter avoids the ordinary phase delay of a one-pass filter, but a threshold crossing can still move because filtering changes the shape and amplitude of the rising edge. Compare the event on raw and processed traces, and use the same processing procedure for every trial. If event time is a primary outcome, test whether reasonable filter settings change it materially and report the chosen rule.
Filtering before differentiation
Rate of force development is commonly calculated from the time derivative of force, often as Δforce/Δtime or through a fitted slope over a specified window. Differentiation amplifies high-frequency fluctuations, so analysts often filter force before calculating a derivative. But the order matters: filtering the force and then differentiating is not generally identical to differentiating raw force and filtering the derivative. The filter, sample spacing, derivative method, and time window all shape the result.
For a simple finite difference at 1,000 Hz, the interval is 0.001 seconds, so a change of 100 N between adjacent samples corresponds to 100,000 N/s for that single-sample estimate. Such a number can be extremely sensitive to noise. A slope fitted over 20 ms uses a different definition and may be more stable, but it answers a different measurement question. State the calculation window and method rather than reporting “RFD” as if there were only one.
8. Quality checks before reporting
Before extracting outcomes, review a compact set of diagnostics for every trial or batch:
- Confirm the sampling rate, units, channel mapping, and coordinate signs.
- Inspect unloaded data for offset, drift, spikes, and evidence of contact.
- Check for clipping, missing samples, duplicated time stamps, and unexpected gaps.
- Overlay raw and processed force, with the cutoff and event threshold documented.
- Verify that detected events occur inside the record and correspond to the intended movement.
- Check whether key outcomes change meaningfully under plausible processing choices.
For a reported peak, retain the peak value, its sample or time, the signal version used, and the filter parameters. For a contact time, retain the detected index and the rule that produced it. These details make it possible to distinguish a measurement change from an analysis change when results are revisited months later.
9. What to report
A methods description should allow another researcher to reproduce the transformation from sampled channel to outcome. At minimum, report the sampling frequency; force units and sign convention; baseline interval and offset correction; filter family, order, cutoff, and direction of application; event threshold and crossing rule; and any persistence or hysteresis requirement. For rate-of-force outcomes, add the derivative method and analysis window.
For example: “Vertical force was sampled at 1,000 Hz and expressed in newtons. The mean of the 0.000–0.499 s unloaded interval was subtracted from each trial. Force was low-pass filtered using a fourth-order Butterworth filter at 20 Hz with forward–backward application. Initial contact was the first upward crossing of 20 N sustained for 10 samples.” Add the software implementation and relevant synchronization details when they affect reproducibility.
That level of specificity does not make one processing pipeline universally correct. It makes the analysis inspectable. In force-plate work, a clean curve is only the beginning; confidence comes from knowing exactly which transformations shaped it.