writeAMWave | R Documentation |
Write a wave file for a synthesized amplitude modulated call
writeAMWave(
fileName,
outDir,
signalLength,
modFrequency,
frequency,
sampleRate,
window = c(0.55, 0.45),
silence = c(0, 0),
gainFactor = 0.1
)
createAMWave(
signalLength,
modFrequency,
frequency,
sampleRate,
window = c(0.55, 0.45),
silence = c(0, 0),
gainFactor = 0.1
)
fileName |
name of the file to write. If missing, the file be named usign signalLength, modFrequency, frequency, and sampleRate |
outDir |
directory to write wave files to |
signalLength |
length of signal to create in seconds |
modFrequency |
modulation frequency in Hz of the amplitude modulation |
frequency |
frequency of the AM call |
sampleRate |
sample rate for the wave file to create |
window |
window constants for applying the amplitude modulation. See details. |
silence |
silence to pad before and after signal in seconds |
gainFactor |
scaling factor between 0 and 1. Low numbers are recommended (default 0.1) |
Amplitude modulated signals are modelled as an ideal sinusoid multiplied by a window function. The window function is an offset sinusoid with frequency equal to the modulation frequency:
W = .5 + .45 * sin(2 \pi mf t)
See example(writeAMWave)
for a plot showing how this works.
writeAMWave
invisibly returns the file name, createAMWave
returns a Wave class object
Taiki Sakai taiki.sakai@noaa.gov
# Visualisation of modelled AM wave
signal <- sin(2*pi*100*(1:1000)/1000)
window <- .55 + .45 * sin(2*pi*15*(1:1000)/1000)
oldMf <- par()$mfrow
par(mfrow=c(3,1))
plot(signal, type='l')
plot(window, type='l')
plot(window*signal, type='l')
tmpFile <- file.path(tempdir(), 'tempWav.wav')
writeAMWave(tmpFile, signalLength = 1, modFrequency = 1000,
frequency = 30000, sampleRate = 100000)
file.remove(tmpFile)
amWave <- createAMWave(signalLength = 1, modFrequency = 1000,
frequency = 30e3, sampleRate = 100e3)
par(mfrow=oldMf)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.