View source: R/sampled2continuous.R
sampled2continuous | R Documentation |
Analog signal reconstruction from discrete samples.
sampled2continuous(xn, fs, t)
xn |
the sampled input signal, specified as a vector |
fs |
sampling frequency in Hz used in collecting |
t |
time points at which data is to be reconstructed, specified as a
vector relative to |
Given a discrete signal x[n] sampled with a frequency of fs
Hz, this
function reconstruct the original analog signal x(t) at time points t
.
The function can be used, for instance, to calculate sampling rate effects on
aliasing.
Reconstructed signal x(t), returned as a vector.
Muthiah Annamalai, muthiah.annamalai@uta.edu. Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.
# 'analog' signal: 3 Hz cosine
t <- seq(0, 1, length.out = 100)
xt <- cos(3 * 2 * pi * t)
plot(t, xt, type = "l", xlab = "", ylab = "", ylim = c(-1, 1.2))
# 'sample' it at 4 Hz to simulate aliasing
fs <- 4
n <- ceiling(length(t) / fs)
xn <- xt[seq(ceiling(n / 2), length(t), n)]
s4 <- sampled2continuous(xn, fs, t)
lines(t, s4, col = "red")
# 'sample' it > 6 Hz to avoid aliasing
fs <- 7
n <- ceiling(length(t) / fs)
xn <- xt[seq(ceiling(n / 2), length(t), n)]
s7 <- sampled2continuous(xn, fs, t)
lines(t, s7, col = "green")
legend("topright", legend = c("original", "aliased", "non-aliased"),
lty = 1, col = c("black", "red", "green"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.