soundgen (version 2.6.2)

gaussianSmooth2D: Gaussian smoothing in 2D

Description

Takes a matrix of numeric values and smoothes it by convolution with a symmetric Gaussian window function.

Usage

gaussianSmooth2D(
  m,
  kernelSize = 5,
  kernelSD = 0.5,
  action = c("blur", "unblur")[1],
  plotKernel = FALSE
)

Value

Returns a numeric matrix of the same dimensions as input.

Arguments

m

input matrix (numeric, on any scale, doesn't have to be square)

kernelSize

the size of the Gaussian kernel, in points

kernelSD

the SD of the Gaussian kernel relative to its size (.5 = the edge is two SD's away)

action

'blur' = kernel-weighted average, 'unblur' = subtract kernel-weighted average

plotKernel

if TRUE, plots the kernel

See Also

modulationSpectrum

Examples

Run this code
s = spectrogram(soundgen(), samplingRate = 16000, windowLength = 10,
  output = 'original', plot = FALSE)
s = log(s + .001)
# image(s)
s1 = gaussianSmooth2D(s, kernelSize = 5, plotKernel = TRUE)
# image(s1)

if (FALSE) {
# more smoothing in time than in frequency
s2 = gaussianSmooth2D(s, kernelSize = c(5, 15))
image(s2)

# vice versa - more smoothing in frequency
s3 = gaussianSmooth2D(s, kernelSize = c(25, 3))
image(s3)

# sharpen the image by deconvolution with the kernel
s4 = gaussianSmooth2D(s1, kernelSize = 5, action = 'unblur')
image(s4)

s5 = gaussianSmooth2D(s, kernelSize = c(15, 1), action = 'unblur')
image(s5)
}

Run the code above in your browser using DataLab