[R] Newbie error or bug?

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


Your error:
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
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html




More information about the R-help mailing list