Analog signal reconstruction from discrete samples.
sampled2continuous(xn, fs, t)
Arguments
xn: the sampled input signal, specified as a vector
fs: sampling frequency in Hz used in collecting x, specified as a positive scalar value. Default: 1
t: time points at which data is to be reconstructed, specified as a vector relative to x[0] (not real time).
Returns
Reconstructed signal x(t), returned as a vector.
Details
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.
Examples
# 'analog' signal: 3 Hz cosinet <- 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 aliasingfs <-4n <- 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 aliasingfs <-7n <- 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"))