Carrier recovery algorithm-Viterbi-Viterbi algorithm VV algorithm

Similarly, if there is any discrepancy between what you read and what I said

Suggestions, subject to me╮(╯▽╰)╭

Because the carrier used when the transmitter modulates the signal, and the local carrier used when the receiver demodulates the signal, there are certain errors in frequency and phase. So there are some bad effects on the demodulated signal. The received signal needs to be compensated by DSP algorithm. Carrier recovery does the estimation of frequency offset and phase offset. Compensating it after estimation is also called recovering the original carrier.

The Viterbi-Viterbi algorithm is the most classic carrier recovery algorithm.

In the era of analog signals, phase-locked loops (PLLs) were basically omnipotent. In the radio frequency communication system, a feedback mechanism based on a phase-locked loop is used for carrier recovery.

反馈、前馈的区别

二者的目的是一样的,为了使一个会被干扰的变量保持不变。
反馈是检测变量,当变量变化后,根据变量的变化趋势,使用调节装置去调节。
前馈是检测干扰,当干扰发生后,然后使用调节装置,使得变量不会发生变化。

所以前馈比反馈的响应更及时。

The phase of the radio frequency signal carrier changes slowly, so the phase-locked loop-based feedback method can keep up with the phase change. However, the phase change speed of the optical carrier is too fast, and the feedback is not good. The feedforward method must be used to compensate the phase change of the optical carrier.

The frequency offset changes slowly (proper term: slow change), and can be used to estimate the frequency offset of the optical carrier in the digital phase-locked loop.

The Viterbi-Viterbi algorithm is a feedforward carrier recovery algorithm . Used in PSK modulation format systems (others can't be used, only used in constant modulus systems, that is, the same radius of the constellation point is constant modulus)

Here is the algorithm principle formula derivation~

The expression of ideal PSK signal S n = ejan S_n=e^{ja_n}Sn=ej anWhere an a_nanRepresents the n phases obtained by the PSK signal.

However, due to the carrier frequency and phase deviation, the received PSK signal becomes S n = ej (an + 2 π Δ v ⋅ n T s + θ n) S_n=e^{j(a_n+2\pi \ Delta v\cdot nT_s+\theta_n)}Sn=ej(an+2πΔvnTs+ θn) WhereΔ v \Delta vΔ v is the frequency deviation of the carrier at the transceiver end,T s T_sTsIs the symbol interval, θ n \theta _nθnIs the phase noise of the laser. The part of the frequency offset is well understood. After n symbols, the cumulative phase change is 2 π Δ v ⋅ n T s 2\pi \Delta v\cdot nT_s2 π Δ vnTs

Because it is a constant modulus signal and there is no information about the amplitude, it is normalized directly, so there is no amplitude information in the above expression (I am too lazy)~

So now there are two things I need to estimate, frequency! Phase! Who goes first, or double P?

Frequency offset estimation

Due to frequency offset, the phase of the second symbol will be 2 π Δ v ⋅ T s 2\pi \Delta v\cdot T_s more than the first symbol2 π Δ vTs, And so on. So if I estimate the frequency offset first, and then process the phase, is there no such interference~nice! Then only need to estimate the phase difference Δ φ between consecutive signal samples \Delta\varphiΔ φ is calculated asΔ v \Delta vΔ v , because Δ φ = 2 π Δ v ⋅ T s \Delta\varphi=2\pi \Delta v\cdot T_sΔ φ=2 π Δ vTsInsert picture description here

The system block diagram is as above.

  1. Multiply the received signal with the complex conjugate of the previous signal. The phase difference between the two symbols dn = S n × S n − 1 ∗ = ej [(an − an − 1) + Δ φ + (θ n − θ n − 1)] d_n=S_n\times S_ {n-1}^*=e^{j[(a_n-a_{n-1})+\Delta \varphi+(\theta_n-\theta_{n-1})]}dn=Sn×Sn1=ej[(anan1) + Δ φ + ( θn- θn1) ] (You can see it by looking at it? Do you B. station users) The line width of the laser usually ranges from 100KHz-10MHz,and the phase noise change is drizzle relative to the phase change caused by the frequency offset. ,So(θ n − θ n − 1) ≈ 0 (\theta_n-\theta_{n-1})\approx0( θnθn1)0
  2. Remove the encoded information in the phase. For MPSK signals, it is OK to do an M-th power operation. Because MPSK puts 2 π 2\piThe phase of 2 π is divided into M parts. After making the power of M,ej 2 π M ⋅ M e^{j\frac{2\pi}{M}\cdot M}ejM2 pM is gone.
  3. The phase information is now only M ⋅ Δ φ M\cdot\Delta \varphiMΔ φ
  4. Do the same thing several times for many adjacent symbols, and then find an average value to eliminate some sudden errors. Elementary school students all know that the N sampling data used to perform the mean operation should be symmetrically distributed around the nth symbol, and the result obtained in this way can be regarded as an unbiased estimate. Don't know what unbiased estimation is. Anyway, it means awesome.
  5. Remove M from the previous M-th power operation. It is the estimated value of the phase difference. The frequency offset is out! Remove the accumulated phase offset of each symbol caused by frequency offset, and get data without frequency offset S n ′ = ej (an + θ n) S_n'=e^{j(a_n+\theta_n)}Sn=ej(an+ θn)

Bias estimation

Come back to make up in the future, the code is a bit problematic. I am the kind of person who dare not speak theories if I fail to turn theory into practice. My current method of use is VV frequency offset estimation algorithm + other phase offset estimation algorithms. Without using the VV phase deviation, although its theoretical formulas are all done, there are some problems with the code implementation. I don’t understand why the code on the Internet is written like that...

Then compensate for the phase offset ~ the algorithm block diagram is as follows
Insert picture description here

  1. First, do the M power first to remove the phase modulation information. Only ej M θ ne^{jM\theta_n} is leftej M θn

Guess you like

Origin blog.csdn.net/Explore_OuO/article/details/108967637