Signal reconstruction
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"))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.