Learn R Programming

gsignal (version 0.3-1)

sampled2continuous: Signal reconstruction

Description

Analog signal reconstruction from discrete samples.

Usage

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).

Value

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

Run this code
# NOT RUN {
# '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"))


# }

Run the code above in your browser using DataLab