5

The phases of a polyphase filter can be interpreted as a fractional delays. Consider your filter with $8\cdot 256$ taps in the up-sampled domain. In order to avoid aliasing the filter needs to be a low pass that doesn't allow any content above $1/256$ of the sample rate. Since there is no energy above $1/256\cdot f_s$ in the transfer function you can ...


5

As your plot shows, the second form allows for the correlation peak to be negative. Now, what does a strong negative cross correlation mean? It means the signals are very similar, except one has a negative sign in front of it, i.e., $x_1 \approx -x_2$. Whether or not this makes sense depends a lot on the actual application. In the application you describe, ...


5

You are having trouble because that's not a Costas loop. A Costas loop uses demodulated data in some form to change the phase that's expected from the signal. You're just taking the I/Q demodulated signal and applying it to the atan2 function; that makes a sort of linearized extended phase detector, but without determining that the phase should have ...


5

If you calculate the error, 44102/44100 is only about 45 parts per million. That is well within operating tolerance of many crystal oscillators used in consumer equipment to generate audio sampling rates and USB communication clocks. You can be quite pleased it is not even more off. Another problem is that if you simultaneously use different devices for ...


3

A big advantage of Barker Codes over a generic marker is strong correlation when the codes are aligned and very low correlation for all other shifts, even by one sample. This offers increased resistance to bit errors that would otherwise cause a false detection. The presence of a Barker sequence can be optimally detected using correlation, which is the ...


3

There is an optimum loop BW that maximizes the SNR, and this applies to both Symbol Timing Recovery as you inquire about as well as Carrier Recovery. The specific answer depends on the characteristics of the noise source involved in your system, such as clock jitter and phase noise, and the modulation you are using; specifically how the signal energy is ...


3

Bottom line: Either implement a (simple) carrier recovery algorithm or use DBPSK instead of BPSK if you are ok with the 3 dB SNR penalty in performance. If you want to do synchronous detection of BPSK, you will need to completely remove the carrier offset. If you do not correct for carrier offset, then your BPSK symbols will continue to rotate, eventually ...


3

Got me at that one! The "OFDM symbol acquisition" block is in fact not from gr-digital (where your other OFDM blocks come frome), but from gr-dtv, where it is used to capture DVB-T signals, if I remember correctly. It might be very DVB-specific! Let us have a look at the dvbt_rx_8k.grc example from gr-dtv (or, at least, the top half): So your understanding ...


3

Consider using a Gardner Timing Error Detector which in the following form is usable for higher order QAM: $$TED = I_n(I_{n+1}-I_{n-1}) + Q_n(Q_{n+1}-Q_{n-1})$$ Where $I_{n-1}$,$Q_{n-1}$, $I_{n}$, $Q_{n}$ and $I_{n+1}$, $Q_{n+1}$ are the early, prompt and late QAM samples at 2 samples per symbol. The TED will drive the prompt sample to zero error at the ...


2

The simplest solution I can think of is to use an envelope follower, the higher the amplitude, the more open the mouth is. This is pretty simple but will one give tell you how 'open' the mouth should be, not the shape. This should already be quite effective for a cartoon. To make it more realistic you should probably try to detect vowels (Oh and Ah for ...


2

I would suggest you to take a closer look on this publications: MATCH: A Music Alignment Tool Chest Live Tracking of Musical Performances Using on-line Time Warping Shortly speaking, algorithm is following:: Extract temporal features of your signals (Audio Spectral Flatness, MFCC's, Onset, etc.). Using Dynamic Time Warping with some constraints,...


2

well, it depends on how similar the audio signal from the two tracks are. i dunno if the two tracks are identical, to within some degree of error or noise, and to within some degree of time alignment, but somehow, in a manner that is salient to your model or to your problem, you have to have a measure of something in the two signals to align. so let $$ ...


2

1) A typical approach would be to have a frame alignment word (and by "word" I mean bit sequence) at the beginning of every frame. You could time synchronize by looking for that FAW through cross-correlations. Barker codes are a good choice because they have good autocorrelation properties. The problem with the approach is that the data, being random, can ...


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

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

It looks like the filter you want is indeed $-ith(t)$. Here is some Octave code to get a visualization in the frequency domain: t = [-1:0.01:1]; h = 0.5*(1+cos(pi*t)); hd = -i*t*0.5.*(1+cos(pi*t)); H=fftshift(fft(h,512)); HD=fftshift(fft(hd,512)); v = [-256:255]; plot(v, 20*log10(abs(H/512)), v, 20*log10(abs(HD/512))) BTW, when plotting $h(t)$ in the time ...


2

This is usually addressed via looking for a known pattern in the data frame. The modulation scheme is not mentioned but when synchronisation is required, a Phase Locked Loop (PLL) is most commonly employed. The PLL will track the received signal and tune a local oscillator to its frequency AND phase. When lock is achieved the signal that a local oscillator ...


2

Symbol timing synchronization seems to be a complex topic although once you get some basic principles right, it all makes simple sense. The method you have referred to is known as Digital Filter and Square Timing Recovery$\ ^{[1]}$, also referred to as Oerder and Meyr algorithm. EDIT: And later steps in your summary are not correct. There is no search, ...


2

It will work when you take the 2nd gradient of the signals: import numpy as np from scipy import signal s0 = np.gradient(np.gradient(s0)) s1 = np.gradient(np.gradient(s1)) np.argmax(signal.correlate(s0, s1)) -> 525358 That corresponds to a shift of 1071 which is close to your expected 1069 Interestingly the minimum (most negative correlation) is close ...


2

This can be accomplished by changing the carrier frequency using a Numerically Controlled Oscillator (NCO) which maintains an accurate and continuous phase versus time trajectory via the phase accumulator. This is markedly different than changing the frequency with a classical PLL where we would typically break and reacquire lock to change frequency ...


2

I can't find any way to make the carrier recovery, I don't think you can or should really talk "carrier recovery" in OFDM systems; after all, OFDM is a multi-carrier system. So, you'd need to recover some 2 to a couple thousand carriers, depending on the OFDM system's number of subcarriers. but also the phase Uh-oh. Have you considered what this means? ...


2

I can only answer your second question: "How can the loop bandwidth in GNU Radio synchronization be configured as a percentage of the symbol rate?" The tracking loop in the symbol synchronizer block operates at the symbol rate, estimating timing error and making a correction once per symbol. So the sample rate of the error signal from the TED is at ...


2

It seems like your error jumps to -$\pi$ and then to $\pi$ I think you need to unwrap your phase. Let me explain with an example Say that the output of atan2 block is $\pi - 0.001$ and then the phase difference increases by 0.002 rad, the outuput of the atan 2 block should then be $\pi$ + 0.001, however the atan2 output is limited to ±$\pi$. Therefore the ...


2

One approach not yet mentioned is frequency multiplication by a factor of the number of phase positions used followed by a PLL for noise reduction and then a frequency divider by then same factor. The reason for this is when you multiply the frequency by N, you also multiply the phase by N. If the phase positions are selections of $2\pi/N$ (or those with ...


2

Yes indeed it will be (although we could argue that it may not be necessarily for all distances since the phase is cyclical!). In free space the signal propagates at the speed of light, therefore this sets the wavelength in distance based on the frequency transmitted according to: $$\lambda = c/f$$ Where $c$ is the speed of light in meters/second (or ...


1

It is not clear to me how you are determining your phase error so there may be issues there, and it also looks like you are adding the phase correction to the accumulator directly. Consider adding the corrections to the frequency control word instead which would be analogous to a traditional analog PLL such as that shown in the graphic below (with the NCO ...


1

Symbol timing offset and symbol frequency offset are two different distortions. Like a carrier phase offset and a carrier frequency offset. The difference is that a carrier frequency offset imposes itself on the demodulated signal on the scale of a symbol time quite harshly due to the high frequencies of operation. The symbol rates are comparatively low and ...


1

The properties of the autocorrelation of sequences that are useful for this are ones that have a maximum magnitude at $\tau=0$ and minimum for any other value of $\tau$ for the reasons already given by Marcus. The Barker sequences are one set of sequences that provide this, but there are not that many and they are relatively short. Other sequences are ...


1

I've found that a good sequence should have an autocorrelation function similar to a pulse...is it correct? If it is...why? You want to pinpoint one specific delay – the right time synchronization "point". From that, it directly follows that the ACF should be as "dirac-y" as possible to minimize ambiguities and maximize energy in the one right time.


1

What you are probably missing here is that the frame rate of a webcam can be all over the place, especially if you are capturing video by getting a handle to the imaging device and then requesting frames by it using a timer. In any case, wherever you are capturing the frame, capture its timestamp as well. This will allow you to cross reference the frames ...


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