6

Let's look at the case $x[n] \in \mathbb{R}$, where $x[n]$ is real. Autocorrelation is basically convolution of the signal with it's time inverse. This can be easily expressed in the frequency domain. $$ \mathscr{F}\Big\{ r_{xx}[n] \Big\} = \mathscr{F}\Big\{ x[n] \Big\} \cdot \mathscr{F}\Big\{ x[-n] \Big\} $$ $$R_{xx}(\omega) = X(\omega)\cdot X^*(\...


4

There is a book by Basseville and Nikiforov called "Detection of Abrupt Changes : Theory and Application" that they released to the public as a PDF several years ago (it's out of print, now, I believe). That book looks at the basic CUSUM (cumulative sum) algorithm and how to choose appropriate thresholds for it.


4

Since the bulk of R’s DSP capability comes from the signal package which was ported over from the open source project Octave (itself influenced by MATLAB), there's no intrinsic limitation of R. What you have picked up on, are ecosystem preferences. We learned MATLAB in university, picked up numpy/scipy/sklearn at work, so R isn't the first weapon of choice. ...


4

I would try a median filter. Let your original signal be $f[n]$. Median filter $f[n]$ using $N$ pixels, where $N > 2 \times S + 1$, where $S$ is the maximum number of samples in the spike. The resulting signal, lets call it $g[n]$ should have all the spikes removed. Find the absolute of the difference between the two signals, $h[n] = |f[n] - g[n]|$. This ...


4

Types of signals: According to their range set (values): Real Valued, Complex valued ; According to their dimensions: Scalar, Vector ; According to their values: Continuous Amplitude, Quantized ; According to their domain set (arguments): Continuous-time, Discrete-time : According to their mappings: Deterministic, Stochastic (Random) ; According to their ...


4

This a very complicated question, and I would say a still open topic. The concept of stationarity is manifold, from pure statistics to applied DSP (strict, strong, wide-sense, quasi-stationarity, cyclo-stationarity, to refer to a recently closed question). The lack of access to sound models and faithful realizations renders the quest quite difficult. Non-...


4

There is in general, as @Hilmar's answer points out, no unique solution to the question of a sequence that has the given perodic autocorrelation function. In the simplest case, that a shifted version $y$ of any sequence $x$ (e.g. $y[n] = x[n-3]$ for all $n$) has the same autocorrelation function as $x$. Similarly, $y[n] = x[-n]$ for all $n$ has the same ...


3

The default parameters of signal.spectrogram are: nperseg = 256 noverlap = nperseg/8 = 32 This means that: The length of analysis window is $256$ samples ($256/250 = 1.024$ second) The overlap between consecutive windows is $32$ samples ($32/250 = 0.128$ second) The timestamps returned by signal.spectrogram correspond to the centres of a window. So in ...


3

Q1: should the model generate a time series of length 'N=16` i.e, would the output of the above model $\mathbf{y} = [y_1,y_2,\ldots,y_N]$ contain 16 elements where $n = 1,2,\ldots,16$? If one thinks about your question in terms of FIR filtering, then an input signal, $x$ of length $N$ filtered with an FIR filter of length $p$ ($p$ coefficients) will have an ...


3

A centered moving average filter is a finite impulse response (FIR) filter that affects the same weight to all the samples in the window. If you only care about time domain properties, and do not care about its relatively poor performance in the spectral domain, for a signal $s$ that is quite stationary across the window, you can use it. It has extremely ...


3

Suppose you are given a system with transfer function $$H(z)=\frac{(1-3z^{-1})(1-7z^{-1})}{(1-4z^{-1})(1-6z^{-1})} $$ Poles Poles are the values of $z$ for which the entire function will be infinity or undefined. So, they will be the roots of the denominators, right? Look here, what values of $z$ will turn the transfer function tend to infinity? ...


3

...best results come from a weighted ensemble of techniques... Maybe they do, depending on the application. But each one of the similarities mentioned, is equivalent to the other at least when we are talking about signals originating from linear systems. Cross correlation provides very good results especially if you are trying to figure out if a signal is ...


3

The product $x(t)y(t)$ of two periodic signals with fundamental periods $T_x$ and $T_y$ is not a periodic signal unless $T_x$ and $T_y$ are rational multiples of one another; that is, $T_x = aT_y$ where $a$ is a rational number. Thus, except when such a relationship holds, $x(t)y(t)$ does not have a Fourier series. When $T_x$ is a rational multiple of $T_y$,...


3

To be honest, I don't think CNNs, RNNs and LSTM are useful for this kind of problem – a bandpass filter followed by a threshold would be. Now, that would have three parameters: Lower cutoff frequency Upper cutoff frequency threshold value and what is usually called "Machine Learning" is nothing but finding local minima over some (loss) function with real ...


2

Mathematically, shifting the frequency of a signal is pretty easy: Following @OlliNiemitalo's answer, the 0.003 frequency shift can either be done in time domain, or frequency domain. I recommend doing it in time domain, by multiplying the signal with a complex sinusoid, $$e^{j 2 \pi f_\text{shift} n},\, n \in\{1,2,\ldots\}$$ that way you can get ...


2

If the signals are as you've drawn them (flat, with abrupt changes), then perhaps this approach might work: Take the absolute value of the differences between successive time samples. The non-zero entries are the transition times. Find these times for both signals. Subtract the two. I've made an attempt to do this in the R code below. Example output: &...


2

Yes indeed, there is a huge body of works on the topic of variational methods for signal restoration (more general than denoising), one example being total variation denoising, or proximal methods. If you can be more specific, you could get more accurate and precise answers.


2

Well, any input-output representation obviously admits a state-sapce form. for your equation in $y[k]$ you can easily construct one as follows. Create a "shift" system (an integrator chain) as $$ \begin{aligned} x_1[k+1] &= x_2[k],\\ x_2[k+1] &= x_3[k],\\ &\vdots\\ x_n[k+1] &= y[k] \end{aligned} $$ In this way indeed you have $x_n[k] = y[k-1]$...


2

Given the strong correlation of the downward trend in each cycle, I offer the following that would offer an improved prediction over one linear regression, but not be significantly more complicated (but still would like to see what a precise "best estimator" would be): Do a linear regression to determine the general upward trend. This would be the Income - ...


2

Since you have the x/y position for each object it should be fairly straightforward. Call the position of each $p_1(t)$ through $p_4(t)$. Subtract the mean from all of them since it sounds like you only care about their movement, not their position. Once you have done that it should be a fairly simple matter of cross-correlating the position functions. ...


2

First remove the DC offset (C2) from each signal by subtracting the average level from each sample, then removing the arbitrary scaling (C1) of each signal by dividing each sample by the average sample magnitude.


2

Assuming your time series are the same length, take your data and produce spectrograms, $S_k$, for each row of the $4 \times 3000$ data matrix $D$ that you have. Since these individual time series should be similar, this means you can try to extract features by stacking these spectrograms next to each other horizontally into a large matrix. So if you have $...


2

This is an interesting problem. I've downloaded your data and written a small program to process it. There are missing data points that don't seem to be correlated with the jumps. It seems to me the best approach is to look for matching jump values and adjust the values in between. The first step was to measure the RMS of the jumps from point to point ...


2

In addition to what others have already said, I'll try to answer it from a purely practical point of view (this is also a variant of the overlap-add technique). If your FFT length is 2048, then an overlap of 1024 (50%) means that you have twice as many analysis (FFT) frames (as compared to the number of frames without any overlapping). A 512 samples overlap ...


2

Technically, the most reactive filter is the all-pass filter with a gain of 1, this filter has no phase shift at all. But it is not a really useful filter. Here's what you need to take in account : 1 - IIR versur FIR An IIR filter will have less phase shift than a FIR filter for the same cut-off frequency 2 - Cut-off frequency For an IIR low-pass ...


2

LPC reduces to AR modelling only if the stochastic time process is stationary (does not change distribution parameters over time) and ergodic (average over time is equivalent to mean of ensemble average). This connection between auto-regressive coefficients and the autocovariance of the process is described by the Yule-Walker-Equations (mentioned in the ...


2

A signal is just a 1D image. So if you can make it work for images, why not for signals? Pun aside, discrete wavelets combine multiscale smoother and differential operators, so they are been used as trend and singularity detectors for a while. Wavelet coefficients can be turned into feature vectors, directly or by condensating them across subband. For ...


2

Correlation is a multiply and accumulate process. So to do what you describe, simply multiply the two signals and accumulate (integrate) the resulting output. The integration time is set based on your knowledge of how long the waveforms could be correlated; a longer integration time will give you more processing gain against background noise but will also ...


2

From further research I've discovered that the frequency is given by the index of the FFT multiplied by the sampling rate and divided by the size of the array. And the amplitude is the magnitude of the complex number. So the full code for such a plot would be as follows # Load ggplot library library(ggplot) # X is some set of Wait times between spikes, ...


1

I'm not sure why you oppose statistical signal processing to digital signal processing, they are not mutually exclusive. If you perform statistical signal processing with non-continuous quantized samples, you perform digital signal processing. Second of all, if you are using a microcontroller, you are likely to have limited RAM resources. Can you clarify ...


Only top voted, non community-wiki answers of a minimum length are eligible