[R] Newbie error or bug?

Uwe Ligges ligges at statistik.uni-dortmund.de
Mon Mar 13 17:57:48 CET 2006

If you use plot(), the coordinate system of user coordinates is set up
each time, but you do want to plot in the coordinate system of your
first plot, hence use:

plot(time, signal, type = "l", col = "blue", xaxs = "r", yaxs = "r",
xlab = "Time (msec)", ylab = "Signal", main = "Aliasing",
sub = "Sampling 5KHz source(blue) at 8KHz (dots)
gives 2.5KHz alias(red)")
lines(time, alias, lty=2, col="red")
points(undersamplingtimes, undersampled, pch=16)
abline(h=0)

Uwe Ligges

Paul Vickers wrote:
> Hi
>
> I used R for the first time yesterday. I wanted to plot the aliasing
> effect of sampling a 5.5KHz sinusoid at only 8KHz (below the Nyquist
> limit). So I wrote a small R script that a) plots 1msec worth of a
> 5.5KHz sin wave b) plots 1msec of the resulting 2.5KHz alias and c)
> plots the 8 sampling points on the 5.5KHz source wave. I think I have
> found a bug. The script is as follows:
>
> #truesamplingfreq <- 1000*5.5
> freqin1msec = 5.5
> #aliassamplingfreq <- 1000*2.5
> aliasfreqin1msec = 2.5
>
> drawingpoints = 10000
> time = (0:drawingpoints)/drawingpoints
>
> signal = sin(freqin1msec*2*pi*(time))
> alias = -sin(aliasfreqin1msec*2*pi*(time))
>
>
> undersamplinginterval = max(time)/8
> seq (0, max(time), by=undersamplinginterval) -> undersamplingtimes
> undersampled = sin(freqin1msec*2*pi*undersamplingtimes)
>
> plot(time,signal,type="l", col="blue", xaxs="r", yaxs="r", xlab="Time
> (msec)", ylab="Signal", main="Aliasing", sub="Sampling 5KHz source
> (blue) at 8KHz (dots) gives 2.5KHz alias(red)")
> par(new=TRUE)
> plot (time, alias, xaxs="r",  yaxs="r", type="l", lty=2, col="red",
> axes=FALSE, xlab="", ylab="")
> par(new=TRUE)
> plot(undersamplingtimes, undersampled, pch=16,  xaxs="r", yaxs="r",
> axes=FALSE, xlab="", ylab="", abline(h=0))
>
> The output is given as attachment alias.jpg in which the line through
> y=0 is offset and all the positive sampling points (black dots) are also
> offset (interestingly, all the negative points seem to be correct). All
> the black dots should line up with 8 intersections of the red and blue
> lines. I don't think the script is wrong because if I double everything
> up and plot an 11KHz source, its 5KHz alias and 16 sampling points (for
> 16KHz sampling) everything works as expected (see attachment alias2.jpg)
> - ie, the line through y=0 is in the right place as are the 16 sampling
> points.
>
> Here's my sessionInfo:
> R version 2.2.1, 2005-12-20, powerpc-apple-darwin7.9.0
>
> attached base packages:
> [1] "methods"   "stats"     "graphics"  "grDevices" "utils"
> [6] "datasets"  "base
>
> I'm running OS X 10.4.5
>
> Can anyone enlighten me?
>
> Cheers
>
> Paul
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help