# Tag Info

6

Though the Matched Filter is the best tool detection of a known signals under AWGN it should work well here as well. To say something about the probabilities the question is, do you know something about the energy of the received signals? If you do, you should easily say something about the probabilities. Pay attention that if the assumption is a signal ...

5

For any single chunk (window) of data the coherence will, as you observed, be 1. In order to properly estimate coherence you must average the spectra and cross-spectra for multiple windows, and THEN calculate coherence. The auto-spectra XX and YY can be averaged the conventional way. For the cross-spectrum XY you must average the real and imaginary ...

4

This is, as always, a question of what you define something to be. So, context of the different formulas to be key. For example, the formulas that only differ by a factor of 2 will be taken from two different publications, one understanding bandwidths as double-sided, the other as only single-sided. The definitions of $f_d$ will definitely also differ ...

4

Is it sufficient to identify the «most sinuoidal» of those 3, or would you also want linear projections of those (consistent with a IMU sensor tilted vs the plane of motion)? A simple solution might be to do a windowed fft and pick the direction where the «crest factor» of the fft magnitude was largest (best explained by a single sinoid). Edit: It appears ...

3

This is very late, but maybe it's worth it anyway... The time-scale plane is not the same as the time-frequency plane, although it might be useful as well. Signals at different places in the time scale plane are related by $x(t) \rightarrow x(\Delta s(t-\Delta t))$, where $\Delta s$ moves you up (or down) in scale and $\Delta t$ shifts you in time. The ...

3

Why not just take the FFT and see which one has the highest peak? The code below generates example data: and then takes the FFT of it: which yields: X sum: 0.9999999999999987 Y sum:0.9999999999999994 Z sum:0.9999999999999989 X max: 0.17213933316891214 Y max:0.2080419608439683 Z max:0.7112824350827284 Depending on your data, that might be enough to pick the ...

2

Great question! I've been grappling to determine how to calculate statistical significance of coherence for several days. This question helped me find some key references I hadn't previously located! One detail regards whether you're talking about "coherence" or "magnitude-squared coherence". The first resource uses the former and the second uses the latter....

2

One way to check for similarity between time series is to use the cross-correlation: $$\rho_{xy}(\tau) = \frac{1}{\sigma_x \sigma_y} E[ (x[n] - \mu_x)(y[n] - \mu_y) ]$$ where $\mu_{x,y}$ is the mean of $x$ or $y$ and $\sigma_{x,y}$ is the standard deviation of $x$ or $y$. This gives us a value between -1 (completely anti-correlated) and +1 (completely ...

2

If you look at the documentation of mscohere which contains the definition of magnitude squared coherence, you will see that it is the absolute squared of the cross spectral density, divided by the product of the two separate spectral densities. Since power densities enter numerator and denominator of the expression, the MSC estimate from a full time series ...

2

There can be several ways to calculate the Phase locking value (PLV). For relatively mono-component and high SNR (well filtered)-Time domain signal can be converted into analytical signal using Hilbert transform to calculate the phase difference. For the right signal it is a very powerful technique as is shown in the tutorial you have referenced. Here is a ...

2

To elaborate on @user28715's answer: Even with a minuscule amount of noise say An = 0.0000001 you will get a clean graph like your first graph. Python's implementation of the Welch method certainly uses finite-precision floating point numbers and quantization errors in the input and from the calculation steps such as windowing and Fast Fourier Transform (FFT)...

2

From the definition of the (magnitude-squared) coherence $$C_{xy}(f)=\frac{|G_{xy}(f)|^2}{G_{xx}(f)G_{yy}(f)}$$ with the cross-spectral density $G_{xy}(f)$, and the power spectra $G_{xx}(f)$ and $G_{yy}(f)$, respectively, it is clear that scaling of $x(t)$ or $y(t)$ does not change the value of $C_{xy}(f)$, because the scaling constants appear in the ...

2

You are right, coherence bandwidth is the frequency domain counterpart of delay spread. However, to achieve diversity across antennas the spacing between the antennas is important "relative to the environment".Let me explain that a bit more. In a user mobile phone you would typically find the order of wavelengths seperation between antennas sufficient to ...

1

Looking at the equation you have posted, it seems $l$ is the variable for $N_p$ multipaths and for each path, there will be a constant delay $\tau_l$, an attenuation $\alpha_l$, a doppler shift in the carrier $\nu_l$ , angle of arrival at the receiver $\mathbb a_{\mathbf R}$ and angle of departure at transmission $\mathbb a_{\mathbf T}$. And both of these ...

1

It feels like any wave at a particular frequency will have a constant phase difference relative to all waves with the same frequency, but from the explanation in the paragraph above that would mean that coherence should be 1 across every frequency for every signal. I think you're falling into the frequency-domain trap. The frequency domain is nice, but it ...

1

In the context of wireless systems, coherent detection has the definition of detection when the wireless channel is known at the receiver and thus matched filtering is possible and infact optimal at low SNR. The signals from different antennas at the radar receiver are coherently combined using maximum ratio combining. The MRC is nothing but the matched ...

1

The coherence function, as used in signal processing, measures the normalized correlation between to power spectra: $$C_{xy}(f) = \frac{|G_{xy}(f)|^2}{G_{xx}(f) G_{yy}(f)}$$ where $G_{xx}$ is the power spectral density (PSD) of the signal $x(t)$, $G_{yy}$ is the PSD of $y(t)$, and $G_{xy}$ is the cross-spectral density (CSD) of $x(t)$ and $y(t)$. The ...

1

As a starting-point, you might try something like this: Step 1: create random (complex-valued) matrices rows = 32; %number of output samples from compression matrix cols = 2048; %number of input samples supplied to compression matrix matrixA = randn(rows, cols) + 1i*randn(rows, cols); matrixB = randn(rows, cols)+ 1i*randn(rows, cols); Step 2: Compute ...

1

For any estimate of the coherence, the cross spectra and spectra need to be averaged before forming the estimate of the coherence. If there is no averaging, the squared coherence will always be 1. You can see this by plugging in a single Fourier coefficient for X and Y: $C_{xy}^2=(\alpha_x\alpha_y)^2/(\alpha_x^2\alpha_y^2)=1$. If you instead use a sum or ...

1

Perhaps the built-in 'mscohere' and 'cpsd' functions may help you. The mscohere function returns a value between 0 and 1 that measures the correlation between the signals, and the phase delay can be computed using the cpsd function, as per this example from the Mathworks website. It suggests that the relative phase between the correlated components can be ...

1

If you have two numpy arrays of phase data theta1 and theta2 (in radians), you can calculate phase locking value in numpy without too much effort: import numpy as np def phase_locking_value(theta1, theta2): complex_phase_diff = np.exp(np.complex(0,1)*(theta1 - theta2)) plv = np.abs(np.sum(complex_phase_diff))/len(theta1) return plv I would ...

1

Using cross-correlation and finding the peak is one way of finding the time delay between two signals. This assumes that the two signals are periodic and have the same fundamental frequency. When the two signals have close, but not equal fundamental frequency, the lag position of the maximum cross correlation value will change in time. If the lag of the ...

1

I'm not sure if I can help you with a perfect solution, but hopefully at least with some hints. As far as I can tell the kernel for the smoothing filter of the wavelet (power/amplitude) spectrum has to scale with the size of the reproducing kernel of the wavelet, i.e. the window width in time scales with wavelet scale, and window width in scale depends on ...

1

Assuming that the description I made of the FreezeFramer process is correct, then I would try determining the SINAD rating of the peak frequency in the interpolated data. You have a sampling rate of 2Hz, giving a Nyquist of 1Hz. You will be looking for a sinusoid with a frequency well below 1Hz. The SINAD value is (basically) the amplitude of the peak ...

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