[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