killDC: Kill DC

View source: R/amplitude.R

killDCR Documentation

Kill DC

Description

Removes DC offset or similar disbalance in a waveform dynamically, by subtracting a smoothed ~moving average. Simplified compared to a true moving average, but very fast (a few ms per second of 44100 audio).

Usage

killDC(
  sound,
  windowLength = 200,
  samplingRate = 16000,
  windowLength_points = NULL,
  plot = FALSE
)

Arguments

windowLength

the length of smoothing window, ms

samplingRate

sampling rate of x (only needed if x is a numeric vector)

windowLength_points

the length of smoothing window, points. If specified, overrides windowLength

plot

if TRUE, plots the original sound, smoothed moving average, and modified sound

Examples

# remove static DC offset
a = rnorm(500) + .3
b = soundgen:::killDC(a, windowLength_points = 500, plot = TRUE)

# remove trend
a = rnorm(500) + seq(0, 1, length.out = 500)
b = soundgen:::killDC(a, windowLength_points = 100, plot = TRUE)

# can also be used as a high-pass filter
a = rnorm(500) + sin(1:500 / 50)
b = soundgen:::killDC(a, windowLength_points = 25, plot = TRUE)

soundgen documentation built on Sept. 29, 2023, 5:09 p.m.