Learn R Programming

seewave (version 1.0)

oscillo: Show a time wave as an oscillogram

Description

This graphical function displays a time wave as an oscillogram in a single or multi-frame plot. The envelope of the wave can also be shown.

Usage

oscillo(wave, f, from = FALSE, to = FALSE, zoom = FALSE,
k=1, j=1, byrow = TRUE, env = FALSE, smooth = 0,
identify = FALSE, plot = TRUE, colwave = "black", 
colbg = "white", coltitle = "black", collab = "black", 
cexlab = 1, fontlab = 1, colline = "black", 
colaxis = "black", coly0 = "grey47",
title = FALSE, bty = "l")

Arguments

wave
data describing a time wave.
f
sampling frequency of wave.
from
start of the oscillogram (in s).
to
end of the oscillogram (in s).
zoom
time zoom in with start and end points chosen on the oscillogram with a cursor.
k
number of horizontal sections (by default =1).
j
number of vertical sections (by default =1).
byrow
logical, if TRUE, the sections are filled by rows, otherwise the sections are filled by colmuns (by default TRUE).
env
logical, if TRUE plots the envelope of the time wave instead (by default FALSE).
smooth
if env is TRUE then smoothes the envelope by averaging the number of points selected.
identify
returns the time coordinate of points chosen on the oscillogram with a cursor.
plot
logical, if TRUE returns an oscillographic or envelope plot of wave(by default TRUE).
colwave
colour of the oscillogram or of the envelope.
colbg
background colour.
coltitle
if title is TRUE, colour of the title.
cexlab
character size for axes title.
fontlab
font for axes title.
collab
colour of axes title.
colline
colour of axes line.
colaxis
colour of the axes.
coly0
colour of the y=0 line.
title
logical, if TRUE plots the title with information on time and f (by default FALSE).
bty
the type of box to be drawn around the oscillogram.

Value

  • Data are returned as one-column matrix if plot is FALSE. identify returns a numeric object with the time coordinate of points successively chosen on the oscillogram.

See Also

cutw, pastew, timer.

Examples

Run this code
data(tico)
# a simple oscillogram of a bird song
oscillo(tico,f=22050)
# zoom in
op<-par(mfrow=c(4,1),mar=c(4.5,4,2,2))
oscillo(tico,22050,cexlab=0.75)
oscillo(tico,22050,from=0.5,to=0.9,cexlab=0.75)
oscillo(tico,22050,from=0.65,to=0.75,cexlab=0.75)
oscillo(tico,22050,from=0.68,to=0.70,cexlab=0.75)
par(op)
# the same divided in four lines
oscillo(tico,f=22050,k=4,j=1)
# the same divided in different numbers of lines and columns
oscillo(tico,f=22050,k=4,j=4)
oscillo(tico,f=22050,k=2,j=2,byrow=TRUE)
oscillo(tico,f=22050,k=2,j=2,byrow=FALSE)
# envelope representation without and with smoothing
oscillo(tico,f=22050,env=TRUE)
oscillo(tico,f=22050,env=TRUE,smooth=80)
# overplot of oscillographic and envelope representation
env<-oscillo(tico,f=22050,env=TRUE,plot=FALSE,smooth=40)
ticonorm<-tico/max(tico)
envnorm<-env/max(env)
oscillo(ticonorm,f=22050)
par(new=TRUE)
plot(envnorm,type="l",col="red",xaxs="i",yaxs="i",ann=FALSE,xaxt="n",yaxt="n",
    ylim=range(ticonorm),bty="l",lwd=2)
legend(x=4, y=1,"smoothed envelope", col="red",lty=1,lwd=2,bty="n",cex=0.75)
# full colour modifications in a two-frame oscillogram
oscillo(tico,f=22050,k=4,j=1,title=TRUE,colwave="black",colbg="grey",
    coltitle="yellow",collab="red",colline="white",
    colaxis="blue",coly0="grey50")
# change the title
data(orni)
oscillo(orni,f=22050,title=FALSE)
mtext("The song of a famous cicada",side=3,line=2,font=2,col="red",cex=1.5)

Run the code above in your browser using DataLab