sampled2continuous: Signal reconstruction

View source: R/sampled2continuous.R

sampled2continuousR Documentation

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

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.

Value

Reconstructed signal x(t), returned as a vector.

Author(s)

Muthiah Annamalai, muthiah.annamalai@uta.edu. Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.

Examples

# '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"))



gjmvanboxtel/gsignal documentation built on Nov. 22, 2023, 8:19 p.m.