Maximum Likelihood and Viterbi Joint Decoding Method and Apparatus for GFSK Reception
By using the maximum likelihood and Viterbi joint decoding method in GFSK reception, using sliding window and phase position bit processing, the problem of high accuracy requirements for modulation index estimation is solved, the decoding accuracy and practicality are improved, and good performance is achieved.
Patent Information
- Application Number
- CN202310979009.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-04
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2043-08-04
AI Technical Summary
In the prior art, the maximum likelihood and Viterbi decoding algorithm has high requirements for the estimation accuracy of the modulation index of the GFSK received signal and is difficult to meet, resulting in low decoding accuracy and practicality.
A maximum likelihood and Viterbi joint decoding method for GFSK reception is proposed. By obtaining the target phase sequence, using sliding window and phase position bit processing, the accumulated phase deviation is removed, the decoding weights under different decoding states are calculated, and the decoding process is performed based on the Viterbi decoding algorithm.
It improves the accuracy and practicality of the receiver's decoding, can tolerate large errors in the modulation index, and even does not require the estimation modulation index of the receiver's side, achieving better performance.
Smart Images

Figure CN116800571B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of wireless communication technologies, and particularly to a method and apparatus for joint maximum likelihood and Viterbi decoding for GFSK reception. Background Art
[0002] In the Bluetooth standard, the GFSK (Gauss Frequency Shift Keying) transmission technology is mainly used for classic Bluetooth or low-power Bluetooth transmission. During the decoding process at the receiving end, traditional differential decoding amplifies noise, resulting in a decline in receiving performance. Based on this, the maximum likelihood and Viterbi decoding algorithms are proposed to demodulate the corresponding phase and perform decoding to improve receiving performance.
[0003] However, in the prior art, the maximum likelihood and Viterbi decoding algorithms have high requirements for the estimation accuracy of the modulation index of the transmitted signal, and in fact, the estimation accuracy of the modulation index often fails to meet the requirements, resulting in low accuracy and practicability of this method. Summary of the Invention
[0004] Based on this, it is necessary to provide a method and apparatus for joint maximum likelihood and Viterbi decoding for GFSK reception that can improve the decoding accuracy and practicability at the receiving end in view of the above technical problems.
[0005] In a first aspect, the present application provides a method for joint maximum likelihood and Viterbi decoding for GFSK reception. The method includes:
[0006] Obtain a target phase sequence accumulated in the current stage in the GFSK receiving module;
[0007] Using a sliding window, based on the target phase sequence, obtain a target segmented phase sequence with a length of the first segmented sequence length; when the target segmented phase sequence meets the phase setting processing condition, perform phase setting processing on the target segmented phase sequence, and the phase setting processing includes removing the accumulated phase deviation of the target segmented phase sequence;
[0008] Calculate decoding weights in different decoding states according to the target segmented phase sequence after phase setting processing and a reference phase set;
[0009] Based on the Viterbi decoding algorithm, decode the symbol length corresponding to the length of the first segmented sequence length, and perform decoding processing when the decoding weights in different decoding states meet the decoding traceability condition.
[0010] In one embodiment, the target segmented phase sequence includes a plurality of phase samples; performing phase reset processing on the target segmented phase sequence includes: determining a normalization parameter according to an initial phase sample in the target segmented phase sequence; subtracting the normalization parameter from the target segmented phase sequence to perform phase reset processing.
[0011] In one embodiment, determining the normalization parameter according to the initial phase sample in the target segmented phase sequence includes: taking the first or the first to the K-th phase samples in the target segmented phase sequence as the initial phase sample; averaging the initial phase sample to obtain the normalization parameter.
[0012] In one embodiment, the method further includes: determining whether the latest symbol time when the target segmented phase sequence is obtained is one phase reset processing period away from the latest symbol time during the previous phase reset processing; if so, determining that the target segmented phase sequence meets the phase reset processing condition.
[0013] In one embodiment, the phase reset processing period is an integer multiple of the symbol duration of GFSK.
[0014] In one embodiment, calculating the decoding weights in different decoding states according to the target segmented phase sequence after phase reset processing and a reference phase set includes: calculating the Euclidean distances between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set; determining the decoding weights in different decoding states according to the Euclidean distances.
[0015] In one embodiment, calculating the Euclidean distances between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set includes: calculating the absolute values of the differences between the target segmented phase sequence and each reference phase sequence to obtain the Euclidean distances.
[0016] In one embodiment, determining the decoding weights in different decoding states according to the Euclidean distances includes: for each decoding state, taking the minimum value of the Euclidean distances corresponding to the two sub-states included in the decoding state as the decoding weight in the decoding state.
[0017] In one embodiment, the determination process of the reference phase set includes: constructing prediction vectors corresponding to different decoding states;
[0018] Perform Gaussian filtering on each prediction vector to obtain the prediction vector after filtering; perform truncation processing on each prediction vector after filtering to obtain the truncated vectors corresponding to different decoding states; wherein, the truncation processing includes truncating phase samples with the same symbol length as the symbol length of the target segmented phase sequence; perform the phase setting processing on each truncated vector to obtain the reference phase sequences corresponding to different decoding states, so as to form the reference phase set.
[0019] In one embodiment, the symbol length of the prediction vector is the second symbol length, and the second symbol length is greater than the first segmented sequence length.
[0020] In one embodiment, the process of determining whether the decoding traceback condition is satisfied according to the decoding weights in different decoding states includes: determining the current distance difference parameter according to the decoding weights in different decoding states; determining whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
[0021] In one embodiment, the method further includes: determining whether the current decoding depth reaches the target decoding depth; if so, determining the current distance difference parameter according to the decoding weights in different decoding states.
[0022] In one embodiment, the determining the current distance difference parameter according to the decoding weights in different decoding states includes: taking the difference between the second smallest value and the smallest value among the decoding weights in different decoding states to obtain the current distance difference parameter.
[0023] In one embodiment, the determining whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor includes: if the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied; if the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
[0024] In one embodiment, the method further includes: if it is determined that the decoding traceback condition is not satisfied according to the decoding weights in different decoding states, then at the next decoding condition decision moment, continue to determine whether the decoding traceback condition is satisfied; the next decoding condition decision moment is: the moment when the next decoding depth is an integer multiple of the preset decoding depth value; or, the moment when the decoding weights are calculated according to the next set of target segmented phase sequences.
[0025] In one embodiment, the method further includes: maintaining and updating the early gate weight table, the quasi-gate weight table, and the late gate weight table; determining the optimal weight value from the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table; determining whether to adjust the sampling points of the receiving end according to the optimal weight value; if so, performing adjustment processing on the sampling points of the receiving end.
[0026] In one embodiment, determining the optimal weight value from the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table includes: taking the minimum value among the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table as the optimal weight value.
[0027] In one embodiment, determining whether to adjust the sampling point of the receiving end according to the optimal weight value includes: if the optimal weight value belongs to the quasi-gate weight table, not adjusting the sampling point of the receiving end; or, if the optimal weight value is in the early gate weight table, determining the first quasi-gate weight value corresponding to the first decoding state in the quasi-gate weight table according to the first decoding state corresponding to the optimal weight value, and taking the difference between the first quasi-gate weight value and the optimal weight value to obtain a first difference value; if the first difference value is less than a first preset adjustment threshold, not adjusting the sampling point of the receiving end; or, if the optimal weight value is in the late gate weight table, determining the second quasi-gate weight value corresponding to the second decoding state in the quasi-gate weight table according to the second decoding state corresponding to the optimal weight value, and taking the difference between the second quasi-gate weight value and the optimal weight value to obtain a second difference value; if the second difference value is less than a second preset adjustment threshold, not adjusting the sampling point of the receiving end.
[0028] In one embodiment, determining whether to adjust the sampling point of the receiving end according to the optimal weight value includes: if the first difference value is greater than or equal to the first preset adjustment threshold, determining that it is necessary to adjust the sampling point of the receiving end; or, if the second difference value is greater than or equal to the second preset adjustment threshold, determining that it is necessary to adjust the sampling point of the receiving end.
[0029] In one embodiment, performing an adjustment process on the sampling point of the receiving end includes: if the optimal weight value is in the early gate weight table, adjusting the sampling point corresponding to the quasi-gate of the receiving end to shift forward by one or more; if the optimal weight value is in the late gate weight table, adjusting the sampling point corresponding to the quasi-gate of the receiving end to shift backward by one or more.
[0030] In a second aspect, the present application also provides a maximum likelihood and Viterbi joint decoding device for GFSK reception. The device includes:
[0031] An acquisition module, configured to acquire a target phase sequence accumulated in the current stage in the GFSK reception module;
[0032] A setting module, configured to use a sliding window to obtain a target segmented phase sequence with a length of a first segmented sequence length based on the target phase sequence; and perform phase setting processing on the target segmented phase sequence when the target segmented phase sequence meets the phase setting processing condition, where the phase setting processing includes removing the cumulative phase deviation of the target segmented phase sequence.
[0033] A calculation module, configured to calculate decoding weights in different decoding states according to the target segmented phase sequence after phase setting processing and a reference phase set.
[0034] A decoding module, configured to perform decoding processing on a symbol length corresponding to the first segmented sequence length based on the Viterbi decoding algorithm when the decoding weights in the different decoding states meet the decoding traceback condition.
[0035] In one embodiment, the target segmented phase sequence includes a plurality of phase samples; the setting module is specifically configured to: determine a normalization parameter according to an initial phase sample in the target segmented phase sequence; and subtract the normalization parameter from the target segmented phase sequence to perform phase setting processing.
[0036] In one embodiment, the setting module is specifically configured to: use the first or the first to the K-th phase samples in the target segmented phase sequence as the initial phase sample; and average the initial phase sample to obtain the normalization parameter.
[0037] In one embodiment, the apparatus further includes:
[0038] A condition determination module, configured to determine whether the latest symbol time when the target segmented phase sequence is obtained is one phase setting processing period away from the latest symbol time during the previous phase setting processing; if so, determine that the target segmented phase sequence meets the phase setting processing condition.
[0039] In one embodiment, the phase setting processing period is an integer multiple of the symbol duration of GFSK.
[0040] In one embodiment, the calculation module is specifically configured to: calculate the Euclidean distance between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set; and determine the decoding weights in the different decoding states according to the Euclidean distances.
[0041] In one embodiment, the calculation module is specifically configured to: calculate the absolute value of the difference between the target segmented phase sequence and each reference phase sequence to obtain the Euclidean distance.
[0042] In one embodiment, the calculation module is specifically configured to: for each decoding state, use the minimum value among the Euclidean distances corresponding to the two sub-states included in the decoding state as the decoding weight of the decoding state.
[0043] In one embodiment, the apparatus further includes a phase set construction module, configured to:
[0044] Construct prediction vectors corresponding to different decoding states;
[0045] Perform Gaussian filtering on each prediction vector to obtain the filtered prediction vector; perform truncation processing on each filtered prediction vector to obtain truncation vectors corresponding to different decoding states; wherein, the truncation processing includes truncating phase samples with the same symbol length as the target segmented phase sequence; perform the phase setting processing on each truncation vector to obtain reference phase sequences corresponding to different decoding states, so as to constitute the reference phase set.
[0046] In one embodiment, the symbol length of the prediction vector is a second symbol length, and the second symbol length is greater than the first segmented sequence length.
[0047] In one embodiment, the apparatus further includes a decoding condition determination module, configured to: determine the current distance difference parameter according to the decoding weights in different decoding states; determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
[0048] In one embodiment, the apparatus further includes a decoding depth determination module, configured to: determine whether the current decoding depth reaches the target decoding depth; if so, determine the current distance difference parameter according to the decoding weights in different decoding states.
[0049] In one embodiment, the decoding condition determination module is specifically configured to: calculate the difference between the second smallest value and the smallest value among the decoding weights in different decoding states to obtain the current distance difference parameter.
[0050] In one embodiment, the decoding condition determination module is specifically configured to: if the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied; if the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
[0051] In one embodiment, the apparatus further includes: a next decoding condition determination module, configured to:
[0052] If it is determined that the decoding weight under the different decoding states does not meet the decoding traceability condition, then at the next decoding condition judgment moment, it is continued to determine whether the decoding traceability condition is met; the next decoding condition judgment moment is: the moment when the next decoding depth is an integral multiple of the preset decoding depth value; or, the moment when the decoding weight is calculated according to the next set of target segmented phase sequences.
[0053] In one embodiment, the apparatus further includes:
[0054] An adjustment module, configured to maintain and update an early gate weight table, a quasi-gate weight table, and a late gate weight table; determine an optimal weight value from the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table; and determine whether to adjust the sampling points of the receiving end according to the optimal weight value; if so, perform adjustment processing on the sampling points of the receiving end.
[0055] In one embodiment, the adjustment module is specifically configured to: use the minimum value among the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table as the optimal weight value.
[0056] In one embodiment, the adjustment module is specifically configured to: if the optimal weight value belongs to the quasi-gate weight table, do not adjust the sampling points of the receiving end; or, if the optimal weight value is in the early gate weight table, determine the first quasi-gate weight value corresponding to the first decoding state in the quasi-gate weight table according to the first decoding state corresponding to the optimal weight value, and subtract the first quasi-gate weight value from the optimal weight value to obtain a first difference value; if the first difference value is less than a first preset adjustment threshold, do not adjust the sampling points of the receiving end; or, if the optimal weight value is in the late gate weight table, determine the second quasi-gate weight value corresponding to the second decoding state in the quasi-gate weight table according to the second decoding state corresponding to the optimal weight value, and subtract the second quasi-gate weight value from the optimal weight value to obtain a second difference value; if the second difference value is less than a second preset adjustment threshold, do not adjust the sampling points of the receiving end.
[0057] In one embodiment, the adjustment module is specifically configured to: if the first difference value is greater than or equal to the first preset adjustment threshold, determine that it is necessary to adjust the sampling points of the receiving end; or, if the second difference value is greater than or equal to the second preset adjustment threshold, determine that it is necessary to adjust the sampling points of the receiving end.
[0058] In one embodiment, the adjustment module is specifically configured to: if the optimal weight value is in the early gate weight table, adjust the sampling points corresponding to the quasi-gate of the receiving end to shift forward by one or more; if the optimal weight value is in the late gate weight table, adjust the sampling points corresponding to the quasi-gate of the receiving end to shift backward by one or more.
[0059] In a third aspect, the present application further provides a computer device, including a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, the steps of the method described in any one of the above first aspects are implemented.
[0060] In a fourth aspect, the present application further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the method described in any one of the above first aspects are implemented.
[0061] In a fifth aspect, the present application further provides a computer program product, including a computer program. When the computer program is executed by a processor, the steps of the method described in any one of the above first aspects are implemented.
[0062] The above method and device for joint maximum likelihood and Viterbi decoding for GFSK reception obtain the target phase sequence accumulated in the current stage in the GFSK reception module; use a sliding window to obtain the target segmented phase sequence with a length of the first segmented sequence length based on the target phase sequence; when the target segmented phase sequence meets the phase position setting processing condition, perform phase position setting processing on the target segmented phase sequence, and the phase position setting processing includes removing the accumulated phase deviation of the target segmented phase sequence; calculate the decoding weights in different decoding states according to the phase position set processed target segmented phase sequence and the reference phase set; based on the Viterbi decoding algorithm, when the decoding length is the symbol length corresponding to the first segmented sequence length and it is determined that the decoding traceability condition is met according to the decoding weights in different decoding states, perform decoding processing. In this way, through the phase position setting processing, the accumulated phase deviation is removed, and then the decoding weights in different decoding states are determined based on the phase position set processed target segmented phase sequence and the reference phase set to ensure the accuracy of calculating the decoding weights. It can tolerate a large error in the modulation index, and even without estimating the modulation index at the receiving end, good performance can still be achieved. This method has high practicability. In addition, when it is determined that the decoding traceability condition is met according to the decoding weights in different decoding states, decoding processing is performed. In this way, the robustness of the decoding output can be further improved, ensuring the accuracy and stability of decoding. Description of the Drawings
[0063] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0064] Figure 1Schematic flow diagram of the joint maximum likelihood and Viterbi decoding method for GFSK reception in an embodiment;
[0065] Figure 2 Schematic diagram of segmented phases in an embodiment;
[0066] Figure 3 Schematic flow diagram of the normalization process in an embodiment;
[0067] Figure 4 Schematic flow diagram of determining the normalization parameters in an embodiment;
[0068] Figure 5 Schematic flow diagram of calculating the decoding weights in an embodiment;
[0069] Figure 6 Schematic flow diagram of determining the reference phase set in an embodiment;
[0070] Figure 7 Schematic diagram of phase bit setting comparison in an embodiment;
[0071] Figure 8 Schematic diagram of Viterbi decoding state error in an embodiment;
[0072] Figure 9 Schematic flow diagram of determining whether the decoding traceback condition is satisfied in an embodiment;
[0073] Figure 10 Schematic diagram of Viterbi decoding depth adaption in an embodiment;
[0074] Figure 11 Schematic diagram of decoding depth value statistics in an embodiment;
[0075] Figure 12 Schematic diagram of discriminability factor statistics in an embodiment;
[0076] Figure 13 Schematic diagram of decoding depth value statistics in an embodiment;
[0077] Figure 14 Schematic diagram of discriminability factor statistics in an embodiment;
[0078] Figure 15 Schematic diagram of the early gate link weight in an embodiment;
[0079] Figure 16 Schematic diagram of the quasi-gate link weight in an embodiment;
[0080] Figure 17 Schematic diagram of the late gate link weight in an embodiment;
[0081] Figure 18 Schematic diagram of the process for adjusting sampling points in an embodiment
[0082] Figure 19 Schematic diagram of globally selecting the optimal weight value in an embodiment
[0083] Figure 20 Modular block diagram of the joint method of maximum likelihood and Viterbi based on GFSK modulation in an embodiment
[0084] Figure 21 Schematic diagram of the process of the joint decoding method of maximum likelihood and Viterbi based on GFSK modulation in an embodiment
[0085] Figure 22 Structural block diagram of a decoding device in an embodiment
[0086] Figure 23 Internal structure diagram of a computer device in an embodiment Detailed implementation manners
[0087] In order to make the objectives, technical solutions and advantages of the present application clearer and more understandable, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0088] In Bluetooth technology, both the BR and LE modes adopt the GFSK modulation method. In traditional differential decoding, since the phase difference is used to obtain the frequency, the noise is amplified and the receiving performance is reduced. To address this problem, there is a classic maximum likelihood demodulation method (MLSE, Maximum Likelihood Sequence Estimation) in the industry. This method demodulates the corresponding phase in a maximum likelihood manner through phase prediction, which can significantly improve the receiving performance. However, this solution has relatively strict requirements on the estimation accuracy of the modulation index; in an actual system, it is difficult to meet the requirements for the estimation accuracy of the modulation index, thus affecting its practicality.
[0089] In view of this, the embodiments of the present application provide a joint decoding method of maximum likelihood and Viterbi for GFSK reception, which can overcome the strict requirements of maximum likelihood and Viterbi decoding on the accuracy of the modulation index, improve practicality, and enhance decoding performance.
[0090] It should be noted that for the maximum likelihood and Viterbi joint decoding method for GFSK reception provided in the embodiments of the present application, the execution subject can be a decoding device, and this decoding device can be implemented as part or all of a receiver through software, hardware, or a combination of software and hardware. The receiver can be a GFSK receiver, and the receiver can be set in an electronic device. Among them, the electronic device can be, for example, an electronic device with Bluetooth communication function, etc. Of course, this electronic device can also be other types of devices that need to perform decoding, and the embodiments of the present application do not limit the type of this electronic device. In the following method embodiments, the execution subject is the receiver for description.
[0091] In one embodiment, as Figure 1 shown, a maximum likelihood and Viterbi joint decoding method for GFSK reception is provided, including the following steps:
[0092] Step 101, obtain the target phase sequence accumulated in the current stage in the GFSK reception module.
[0093] For the GFSK modulation method, the transmitted signal can be expressed as follows:
[0094]
[0095] where h is the modulation index, w is the angular frequency, I n is the binary baseband data at the transmitting end, τ is the time integration factor, n is the serial number of the baseband data, T is the symbol period of the baseband data, and t is the time.
[0096] The phase information can be expressed as:
[0097]
[0098] According to the convolution law, it is equivalent to:
[0099]
[0100] where, I i is the i-th binary baseband data, and g(t) is the Gaussian filtering factor in the time domain.
[0101] At the receiving end, the accumulated phase information is:
[0102]
[0103] where,
[0104] a(n) = a(n - 1) + I(n) * 2πh (5)
[0105] a(n - 2) = a(n - 1) - I(n - 1) * 2πh (6)
[0106] I(n) is the value of the nth symbol.
[0107] In an actual system, such as BR, the modulation index is between 0.28 and 0.35; at the receiving end, there is inevitably an estimation deviation in the modulation index estimation. For example: h = h1 + Δh; where h1 is the modulation index estimated at the receiving end, and Δh is the estimation deviation. Since the estimation deviation introduces a multiplicative interference, in the presence of consecutive "1" or consecutive "0" decoded bits, the cumulative phase will quickly deviate, resulting in the phase "crossing the boundary", and further leading to decoding errors.
[0108] Therefore, in the embodiments of the present application, in order to overcome the problem of deviation in the modulation index, based on the maximum likelihood detection algorithm, segmented phase setting processing is added. Specifically, first, a target segmented phase sequence is obtained. That is, the phase sequence corresponding to the entire received signal received at the receiving end is segmented to obtain phase sequences of multiple stages, and the target segmented phase sequence can be the one that needs to be decoded and processed among the phase sequences of multiple stages currently.
[0109] Optionally, taking the receiving end as a GFSK receiver as an example, the receiver can decode based on the I / Q signal (in-phase quadrature signal) to obtain the target phase sequence b(n) corresponding to the received signal of the current stage.
[0110] Among them, the sampling period is T_SR, the symbol period is T_S (unit: ms), and the number of phase samples included in one symbol period is m = T_S / T_SR. In the maximum likelihood detection, assuming that the symbol length required for calculating the Euclidean distance is N (for example, a natural number between 2 and 5), correspondingly, the symbol length of the target phase sequence is N.
[0111] Step 102, using a sliding window, based on the target phase sequence, obtain a target segmented phase sequence with a length of the first segmented sequence length; when the target segmented phase sequence meets the phase setting processing condition, perform phase setting processing on the target segmented phase sequence.
[0112] The phase setting processing includes removing the cumulative phase deviation of the target segmented phase sequence.
[0113] Among them, the receiver can determine whether the target segmented phase sequence meets the phase setting processing condition through the time data corresponding to the target segmented phase sequence. If it meets the phase setting processing condition, the phase setting processing can be performed on the target segmented phase sequence. According to the target segmented phase sequence b(n), the target segmented phase sequence B(n) after the phase setting processing is obtained. Exemplarily, the phase setting processing may include moving the entire target segmented phase sequence to start with a preset phase value.
[0114] Step 103: Calculate the decoding weights in different decoding states according to the target segmented phase sequence and the reference phase set after phase position setting.
[0115] Among them, the reference phase set includes multiple reference phase sequences. Different decoding states are, for example, the 00 state, the 01 state, the 10 state, and the 11 state.
[0116] For each reference phase sequence in the reference phase set, phase position setting processing is also performed, that is, each reference phase sequence and the target segmented phase sequence start from a preset phase value.
[0117] It should be noted that for different transmission modes, such as BR (Classic Bluetooth), LE1M (Low Energy Bluetooth 1M), or LE2M (Low Energy Bluetooth 2M), etc., the reference phase sets adopted can be different.
[0118] Step 104: Based on the Viterbi decoding algorithm, when the decoding length is the symbol length corresponding to the first segmented sequence length and the decoding weights in different decoding states meet the decoding traceback condition, perform decoding processing.
[0119] To improve the robustness of Viterbi decoding, a depth adaptation method is added to the existing Viterbi decoding traceback method. Specifically, decoding is performed based on the Viterbi decoding algorithm. During the decoding process, when the decoding length is the symbol length corresponding to the first segmented sequence length, it is necessary to determine whether the decoding weights in different decoding states meet the decoding traceback condition. If so, decoding processing can be performed; otherwise, decoding processing is not performed.
[0120] Among them, whether the decoding traceback condition is met can be determined based on a predefined distinguishability factor. During decoding traceback, if it is determined based on the distinguishability factor that the preset threshold requirement is not met, no decoding output is performed; if the preset threshold requirement is met, a bit stream can be decoded and output; in this way, the robustness of the decoding output is improved.
[0121] In the above joint maximum likelihood and Viterbi decoding method for GFSK reception, the target segmented phase sequence accumulated in the current stage in the GFSK reception module is obtained; when the target segmented phase sequence meets the phase position setting processing condition, phase position setting processing is performed on the target segmented phase sequence, and the phase position setting processing includes removing the accumulated phase deviation of the target segmented phase sequence; according to the target segmented phase sequence after the phase position setting processing and the reference phase set, the decoding weights in different decoding states are calculated; based on the Viterbi decoding algorithm, when it is determined that the decoding traceability condition is met according to the decoding weights in different decoding states, decoding processing is performed. In this way, through the phase position setting processing, the accumulated phase deviation is removed, and then based on the target segmented phase sequence after the phase position setting processing and the reference phase set, the decoding weights in different decoding states are determined to ensure the accuracy of calculating the decoding weights, which can tolerate a large error in the modulation index, and even without estimating the modulation index at the receiving end, good performance can also be obtained, and this method has high practicability. In addition, when it is determined that the decoding traceability condition is met according to the decoding weights in different decoding states, decoding processing is performed. In this way, the robustness of the decoding output can be further improved to ensure the accuracy and stability of decoding.
[0122] In one embodiment, the method further includes: determining whether the latest symbol time when the target segmented phase sequence is obtained is one phase position setting processing period away from the latest symbol time during the previous phase position setting processing; if so, determining that the target segmented phase sequence meets the phase position setting processing condition.
[0123] Among them, the preset phase position setting processing period T_norm, whose unit can be ms. Optionally, the preset phase position setting processing period can be set according to requirements. Or, in an alternative embodiment of the present application, the phase position setting processing period can be an integer multiple (including 1 times) of the symbol duration of GFSK, such as 1 ms, 2 ms or 3 ms, etc.; a typical configuration is that T_norm is the same as the Viterbi decoding length N, that is, each time the Euclidean distance is calculated, phase position setting processing needs to be performed.
[0124] In this way, for example, if the latest symbol time n of the target segmented phase sequence obtained is one phase position setting processing period away from the latest symbol time during the previous phase position setting processing, then phase position setting processing needs to be performed on the target segmented phase sequence. Refer to Figure 2 As shown, a segmented phase schematic diagram provided by an embodiment of the present application is shown.
[0125] In the embodiments of the present application, by setting the phase setting processing conditions, the phase samples of the received signal are segmented and phase-set processed accordingly. Further decoding processing and other steps are performed based on the target segmented phase sequence after the phase setting processing. Compared with processing based on the complete phase sample sequence, the "continuity" of phase accumulation is reduced, the dependence on the accuracy of the modulation index is decreased, and thus the overall accuracy of the decoding processing is effectively improved.
[0126] Please refer to Figure 3 , which shows a schematic flowchart of a normalization process provided by the embodiments of the present application. The normalization process for the target segmented phase sequence includes:
[0127] Step 301: Determine the normalization parameter according to the initial phase sample in the target segmented phase sequence.
[0128] Among them, the target segmented phase sequence includes multiple phase samples. The initial phase sample can be determined from the first few phase samples in the target segmented phase sequence. The number of initial phase samples can be one or multiple. The determined normalization parameter is used to process each phase sample in the target segmented phase sequence.
[0129] Please refer to Figure 4 , which shows a schematic flowchart of a process for determining the normalization parameter provided by the embodiments of the present application. Determining the normalization parameter according to the initial phase sample in the target segmented phase sequence includes:
[0130] Step 401: Use the first phase sample or the first to the Kth phase samples in the target segmented phase sequence as the initial phase sample.
[0131] Step 402: Average the initial phase samples to obtain the normalization parameter.
[0132] Among them, if the first phase sample in the target segmented phase sequence is used as the initial phase sample, correspondingly, the value obtained by averaging the initial phase samples is still the value of the first phase sample. Therefore, the first phase sample can be directly used as the average value. If the first to the Kth phase samples in the target segmented phase sequence are used as the initial phase sample, then the K phase samples are averaged to obtain the normalization parameter.
[0133] Step 302: Subtract the normalization parameter from the target segmented phase sequence to perform phase setting processing.
[0134] Based on the normalization parameter, each phase sample is normalized to perform phase setting processing on the target segmented phase sequence. The target segmented phase sequence after the normalization process is the target segmented phase sequence after the phase setting process.
[0135] As shown in the following formula, subtract the value of each phase sample in the target segmented phase sequence by the normalization parameter to perform normalization processing, and obtain the target segmented phase sequence B(n) after normalization processing as follows:
[0136]
[0137] Where K is less than m.
[0138] In the embodiments of the present application, in the normalization processing, a summation processing is added to counteract the influence of Gaussian white noise, thereby ensuring the robustness of the normalization processing.
[0139] In one embodiment, as Figure 5 shown, a schematic flowchart of calculating the decoding weight provided by the embodiments of the present application is shown. According to the target segmented phase sequence and the reference phase set after the phase setting processing, calculate the decoding weights in different decoding states, including:
[0140] Step 501, calculate the Euclidean distance between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set.
[0141] Step 502, determine the decoding weights in different decoding states according to each Euclidean distance.
[0142] Among them, the reference phase sequences corresponding to different decoding states included in the reference phase set are obtained by calculating the Euclidean distance between the target segmented phase sequence and each reference phase sequence. Thus, the calculated Euclidean distances corresponding to different decoding states can be used as the decoding weights in different decoding states.
[0143] Please refer to Figure 6 , which shows a schematic flowchart of determining the reference phase set provided by the embodiments of the present application. The determination process of the reference phase set includes:
[0144] Step 601, construct prediction vectors corresponding to different decoding states.
[0145] Among them, since the received signal and the transmitted signal are usually different due to various factors, the receiver estimates the transmitted signal through phase prediction. That is, the receiver determines the phase sequence close to the phase sequence of the received signal to predict the phase sequence of the transmitted signal, and then decodes the transmitted signal to obtain the transmitted signal.
[0146] In an embodiment of the present application, the symbol length of the prediction vector is the second symbol length N, which is equal to the Viterbi decoding length N. The symbol length of the target segmented phase sequence is the first segmented sequence length, and the second symbol length is greater than the first segmented sequence length. Specifically, due to the effect of the Gaussian filter, the current symbol is correlated with both the previous symbol and the next symbol. Therefore, in phase prediction, N + 2 symbols need to be constructed and represented by the prediction vector: V = [S_1; S_2;...; S_N+2]. Where S_1 is the first phase sequence constructed, let η = 2πh, S_1 = η (or -η, 0). S_N+2 is the supplementary phase at the tail. It can be known from the above description that the symbols used for calculating the Euclidean distance are S_2 to S_N+1, a total of N symbols. In other words, compared with the target segmented phase sequence, the reference phase sequence has an additional phase sequence of the first symbol length and an additional supplementary phase sequence of one symbol length at the tail.
[0147] Then, at time n, that is, the time when the target segmented phase sequence is obtained, the prediction vector V is correspondingly constructed, where the length of the prediction vector is N + 2, corresponding to 2 (N+2) states.
[0148] Step 602: Perform Gaussian filtering on each prediction vector to obtain the prediction vector after filtering.
[0149] After the prediction vector V passes through Gaussian filtering, we can get:
[0150]
[0151] Where U can represent each prediction vector after filtering, with a length of N + 2. g(t) is the coefficient of the Gaussian filter. V s is the vector after sampling at a rate of 1 / T_SR, with a length of (N + 2)*m. J is the sample point sequence number index, and u1 to u J are the phase sample points in U.
[0152] Step 603: Perform truncation processing on each prediction vector after filtering to obtain the truncated vectors corresponding to different decoding states; where the truncation processing includes truncating the phase sample points with the same symbol length as the target segmented phase sequence.
[0153] The sample points before and after the truncated convolution processing, that is, the first symbol and the last tail symbol in the prediction vector after filtering are truncated, and the length of the obtained truncated vector is N. The length of U is (N + 2)*m; where u1 to u m correspond to the first symbol S_1; u m+1 ~u 2m correspond to the second symbol S_2; and so on.
[0154] Step 604: Perform phase positioning processing on each intercepted vector to obtain reference phase sequences corresponding to different decoding states, so as to form a reference phase set.
[0155] Due to the interception operation, the phase information of the first symbol has been removed. Therefore, there are a total of 2 (N+1) 1D vectors in the reference phase set. After removing the influence of the supplementary phase at the tail, there are a total of 2 (N) states;
[0156] Among them, the process of performing phase positioning processing on each intercepted vector can be similar to the above process of performing phase positioning processing on the target segmented phase sequence. For example, it can be: for each intercepted vector, determine the normalization parameter according to the initial phase sample in the intercepted vector, and perform normalization processing on each phase sample in the intercepted vector according to the normalization parameter.
[0157] Exemplarily, for the phase samples of the intercepted vector perform the following phase positioning processing:
[0158]
[0159] Among them, there are a total of 2 (N+1) 1D vectors, c represents the decoding state index. After removing the tail symbol, the number of states of c is N, and the value range is 1 to N (positive integers).
[0160] Please refer to Figure 7 , which shows a phase positioning comparison schematic diagram provided by an embodiment of the present application. Through phase positioning processing, the target segmented phase sequence and the reference phase sequences in each decoding state can be normalized to eliminate the cumulative phase information, so as to compare and calculate each phase sequence based on the same starting point.
[0161] Through simulation analysis, this method can tolerate a large deviation in the modulation index, and the receiving end does not need to estimate the modulation index. It can be saved as a static parameter in the ROM of the electronic device.
[0162] In one embodiment, calculating the Euclidean distance between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set includes: calculating the absolute value of the difference between the target segmented phase sequence and each reference phase sequence to obtain the Euclidean distance.
[0163] As mentioned above, the target segmented phase sequence after phase positioning processing is B(n). The reference phase sequence can be characterized as Calculate the Euclidean distance between the target segmented phase sequence and each reference phase sequence as follows:
[0164]
[0165] Among them, ||·|| represents the second norm of the vector.
[0166] In the embodiment of the present application, the cumulative phase deviation elimination method based on maximum likelihood detection adopts segmented phase setting. When calculating the Euclidean distance of phase likelihood, the cumulative phase is normalized to eliminate the cumulative phase deviation. In this way, a large error in the modulation index can be tolerated. Even without estimating the modulation index at the receiving end, good performance can still be achieved. That is to say, the "continuity" of phase accumulation is destroyed, and the dependence on the accuracy of the modulation index is reduced.
[0167] In one embodiment, the decoding weights in different decoding states are determined according to the Euclidean distances, including: for each decoding state, the minimum value among the Euclidean distances corresponding to the two sub-states included in this decoding state is used as the decoding weight in this decoding state.
[0168] As mentioned above, the reference phase set consists of 2 (N+1) one-dimensional vectors. After removing the influence of the supplementary phase at the tail, there are a total of 2 (N) states. That is to say, there are two sub-states corresponding to different decoding states, and there are a total of 2 (N+1) sub-states. For each decoding state, an Euclidean distance can be determined as the decoding weight.
[0169] In the embodiment of the present application, the minimum value among the Euclidean distances corresponding to each sub-state can be used as the decoding weight in the decoding state to improve the accuracy of subsequent decoding.
[0170] In addition, in the embodiment of the present application, the correlation value between the target segmented phase sequence and each reference phase sequence can also be calculated, and each correlation value is used as the decoding weight in different decoding states. Specifically, the correlation value represents the correlation between the two vectors calculated, reflecting the "similarity" of the two vectors. Generally, the larger the correlation value (usually 1 is the maximum value; 0 means uncorrelated, and -1 means negatively correlated), the more similar they are.
[0171] Based on the method provided in the above embodiment, during the receiving and decoding process, combined with the classic Viterbi decoding algorithm, the accuracy requirement for the modulation index can be greatly reduced, and the performance of the receiver can be further improved. At the same time, the following describes the related improvement methods for the Viterbi decoding process provided in the embodiment of the present application.
[0172] In the classical Viterbi decoding algorithm (VDA), assuming the decoding depth is M, when the path storage reaches M bits, the path tracing method is used to output M bits. However, in practical applications, under the influence of AWGN (Additive White Gaussian Noise), the initial state of path tracing may be wrongly selected, which may lead to path errors. As Figure 8 shown in the schematic diagram of Viterbi decoding state error, if directly decoded, the decoded state 11 is output. However, in fact, the correct decoded state here should be 10, resulting in decoding errors.
[0173] In the embodiments of the present application, when performing Viterbi decoding, an adaptive depth traversal method is introduced. The decoding trace condition is defined, and a discriminability factor related to the Euclidean distance is set to improve the robustness of the decoding output. The following is a specific description.
[0174] In one embodiment, the method further includes: determining whether the current decoding depth reaches the target decoding depth; if so, determining the current distance difference parameter according to the decoding weights in different decoding states.
[0175] Define the target decoding depth. Each time a set of decoding weights corresponding to different decoding states is calculated through a target segmented phase sequence, the decoding depth is incremented by 1. In the embodiments of the present application, if after calculating the decoding weights based on the current target segmented phase sequence, the current decoding depth is greater than or equal to the target decoding depth, the current distance difference parameter ε can be determined based on this set of decoding weights. The current distance difference parameter ε is used to determine whether the decoding trace condition is satisfied.
[0176] In one embodiment, as Figure 9 shown, a schematic flowchart of a method for determining whether the decoding trace condition is satisfied provided by the embodiments of the present application is shown. The process of determining whether the decoding trace condition is satisfied according to the decoding weights in different decoding states includes:
[0177] Step 901, determining the current distance difference parameter according to the decoding weights in different decoding states.
[0178] In an alternative implementation, if the decoding weights in different decoding states are determined based on the Euclidean distance, the difference between the second smallest value and the smallest value among the decoding weights in different decoding states can be calculated to obtain the current distance difference parameter. That is, the second smallest value minus the smallest value to obtain the current distance difference parameter ε.
[0179] In another alternative implementation, if the decoding weights in different decoding states are determined based on relevant values, the difference between the maximum value and the second maximum value among the decoding weights in different decoding states can be calculated to obtain the current distance difference parameter. That is, the maximum value minus the second maximum value gives the current distance difference parameter ε.
[0180] Step 902: Determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
[0181] Among them, the current distance difference parameter and the preset distinguishability factor can be compared to determine whether the decoding traceback condition is satisfied according to the comparison result.
[0182] In one embodiment, determining whether the decoding traceback condition is satisfied according to the current distance difference parameter and the preset distinguishability factor includes: if the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied; if the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
[0183] Specifically, define the distinguishability factor β, which can also be considered as the Euclidean distance difference. When ε > β, decoding traceback is performed; otherwise, decoding traceback is not performed. If decoding traceback is performed, the receiver can continue the decoding process based on the Viterbi decoding algorithm. If decoding traceback is not performed, the receiver continues to obtain the decoding weights corresponding to different decoding states in the next group, and it is necessary to determine again whether to continue the decoding process at an appropriate time. There are two methods for the re-decoding process.
[0184] Optionally, in the embodiments of the present application, if it is determined that the decoding traceback condition is not satisfied based on the decoding weights in different decoding states, then at the next decoding condition decision moment, it is continued to determine whether the decoding traceback condition is satisfied; the next decoding condition decision moment is: the moment when the next decoding depth is an integer multiple of the preset decoding depth value; or the moment when the decoding weights are calculated according to the next group of target segmented phase sequences.
[0185] Specifically, in an alternative implementation, when the decoding traceback condition is not satisfied, the receiver continues to obtain the decoding weights corresponding to different decoding states at subsequent moments, and the decoding depth continuously increases. Define the preset decoding depth value M. Then, when the decoding depth continues to accumulate to an integer multiple of M, it can be determined that the re-decoding condition is satisfied. At this time, it is continued to determine whether the current decoding traceback condition is satisfied. If so, the decoding process can be performed.
[0186] In another alternative implementation, when the decoding traceback condition is not satisfied, the receiver continues to calculate the decoding weights corresponding to the next set of target segmented phase sequences for the next set of different decoding states, and increases the decoding depth by 1. Based on the obtained decoding weights in the next set of different decoding states, the current distance parameter at this time is determined. When it is determined that the current distance parameter is greater than the discrimination factor, it is determined that the condition for re-decoding is met. At this time, it is continued to determine whether the current decoding traceback condition is satisfied. If so, decoding processing can be performed. In this way, the occupation of the storage space of the electronic device can be effectively reduced and the decoding delay can be reduced.
[0187] In the embodiments of the present application, when the depth adaptive method is adopted, the Euclidean distance difference of the decoding states is increased, that is, the "discrimination degree" of the path of the last state in the current decoding depth is increased, and thus the robustness of the decoding traceback can be further improved. Exemplarily, referring to Figure 10 as shown, a Viterbi decoding depth adaption schematic diagram provided by the embodiments of the present application is shown. Figure 10 and Figure 8 By comparison, it can be seen that on the basis of the existing Viterbi decoding traceback method, after adding the depth adaptive method provided by the embodiments of the present application, the accuracy of the decoding traceback can be effectively improved, and the robustness of the VDA decoding can be improved.
[0188] In addition, referring to Figures 11 to 14 as shown, Figure 11 the statistical chart of the decoding depth values when β is 0.45 is shown, Figure 12 and the statistical chart of ε when β is 0.45 is shown. Figure 13 The statistical chart of the decoding depth values when β is 0.15 is shown, Figure 14 and the statistical chart of ε when β is 0.15 is shown. Through the simulation analysis of the depth adaptive method, it can be known that when different β values are set, the required storage space is different; the larger β is, the larger the required storage space is; at the same time, the average value of ε is also relatively larger.
[0189] In the GFSK receiver, the classic Viterbi decoding algorithm also introduces the early-late gate method to adjust the sampling points. However, in an actual system, affected by AWGN or the residual frequency offset in the receiver, if the initial state of the decoding traceback is determined according to the quasi-gate, decoding errors may occur, and the adjustment of the sampling points may also be inaccurate. Referring to Figures 15 to 17 as shown, Figure 15 a schematic diagram of the early gate link weight is shown, Figure 16 a schematic diagram of the quasi-gate link weight is shown, Figure 17 and a schematic diagram of the late gate link weight is shown. Among them, in the traditional early-late gate adjustment method, in the quasi-gate link, to find the optimal state, state 3 is selected, corresponding to Figure 16The weight values selected in the [Chinese text] are used, and state 3 is taken as the optimal state for decoding traceback. At the same time, the Early / Late link is detected, and the corresponding weight values in state 3 are obtained. However, due to the influence of interference, the optimal state in the quasi-gate link may not be the accurate optimal state. For example, in Figure 17 In [Chinese text], the weight value of the selected box corresponding to state 1 of the Late gate should be the most accurate state.
[0190] Therefore, in the embodiments of the present application, in the Early / Late gate algorithm, in order to improve the robustness of adjusting the sampling points of the Early / Late gate and increase the decoding robustness, the global search optimal path method is added. It improves an Early / Late gate decision method for global path search. In this way, the selection of incorrect states and paths at the decoding output moment is avoided. The improved Early / Late gate decision method for global path search is described below.
[0191] In one embodiment, as Figure 18 shown, a schematic flowchart of a sampling point adjustment process provided by the embodiments of the present application is shown. The method further includes:
[0192] Step 1801, maintain and update the Early gate weight table, the quasi-gate weight table, and the Late gate weight table.
[0193] In the embodiments of the present application, the Early gate weight table, the quasi-gate weight table, and the Late gate weight table are maintained in the electronic device.
[0194] Optionally, if the decoding traceback condition is satisfied and a decoding output is generated, or an adjustment action of the Early / Late gate sampling points is performed, the Early gate weight table, the quasi-gate weight table, and the Late gate weight table can be updated. For example, if the decoding traceback condition is satisfied and a decoding output is generated, then, which weight table's decoding weight is used for decoding, the other two weight tables are all copied to this weight table, so that the weight values in the three weight tables are the same. Or, if an adjustment action of the Early / Late gate sampling points is performed, the quasi-gate weight table is copied to the Early gate weight table and the Late gate weight table, so that the weight values in the three weight tables are the same.
[0195] In addition, in the embodiments of the present application, the Early gate weight table can be obtained according to the decoding weights in different decoding states corresponding to the first phase sequence, and the first phase sequence is a phase sequence that is L phase samples ahead of the target segmented phase sequence; the quasi-gate weight table can be obtained according to the decoding weights in different decoding states corresponding to the target segmented phase sequence; the Late gate weight table can be obtained according to the decoding weights in different decoding states corresponding to the second phase sequence, and the second phase sequence is a phase sequence that is L phase samples behind the target segmented phase sequence.
[0196] Step 1802, determine the optimal weight value from the current weight values in the Early gate weight table, the Late gate weight table, and the quasi-gate weight table.
[0197] That is, first, among the current weight values in the three weight tables, the optimal weight value is globally searched. Among them, the current weight value is a set of decoding weights in different decoding states obtained most recently.
[0198] Optionally, if each decoding weight is determined based on the Euclidean distance, the optimal weight value is determined from the current weight values in the Early weight table, the Late weight table, and the OnTime weight table, including: taking the minimum value among the current weight values in the Early weight table, the Late weight table, and the OnTime weight table as the optimal weight value.
[0199] Optionally, if each decoding weight is determined based on the correlation value, the optimal weight value is determined from the current weight values in the Early weight table, the Late weight table, and the OnTime weight table, including: taking the maximum value among the current weight values in the Early weight table, the Late weight table, and the OnTime weight table as the optimal weight value.
[0200] Among them, the optimal weight value is VDA_best, and the state corresponding to this VDA_best is used as the possible state S_best for decoding traceback.
[0201] Step 1803: Determine whether to adjust the sampling points of the receiving end according to the optimal weight value.
[0202] Step 1804: If so, perform adjustment processing on the sampling points of the receiving end.
[0203] Set a preset adjustment threshold γ. In the other two weight tables, the current weight values corresponding to the state S_best can be searched and denoted as VDA_1 and VDA_2 respectively. Furthermore, it can be determined whether it is necessary to adjust the sampling points of the receiving end based on S_best, VDA_1, and VDA_2.
[0204] In one embodiment, determining whether to adjust the sampling points of the receiving end according to the optimal weight value includes: if the optimal weight value belongs to the OnTime weight table, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is in the Early weight table, according to the first decoding state corresponding to the optimal weight value, determine the first OnTime weight value corresponding to the first decoding state in the OnTime weight table, and subtract the optimal weight value from the first OnTime weight value to obtain a first difference value; if the first difference value is less than the first preset adjustment threshold, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is in the Late weight table, according to the second decoding state corresponding to the optimal weight value, determine the second OnTime weight value corresponding to the second decoding state in the OnTime weight table, and subtract the optimal weight value from the second OnTime weight value to obtain a second difference value; if the second difference value is less than the second preset adjustment threshold, the sampling points of the receiving end are not adjusted.
[0205] In one embodiment, determining whether to adjust the sampling points of the receiving end according to the optimal weight value includes: if the first difference is greater than or equal to the first preset adjustment threshold, determining that the sampling points of the receiving end need to be adjusted; or, if the second difference is greater than or equal to the second preset adjustment threshold, determining that the sampling points of the receiving end need to be adjusted.
[0206] In summary, if VDA_best is located in the quasi-gate link, the sampling points of the receiving end may not be adjusted; if VDA_best is located in the early-gate weight table or the late-gate weight table, for example, assuming that VDA_1 is the weight value corresponding to the quasi-gate link, then when the difference obtained by subtracting VDA_best from VDA_1 is greater than γ, the sampling points are adjusted accordingly.
[0207] Exemplarily, referring to Figure 19 As shown, a schematic diagram of globally selecting the optimal weight value provided by an embodiment of the present application is shown. At the moment T when the decoding output arrives, the optimal weight value is searched from the current weight values a1 to c4 in the three weight tables. In this process, decoding is not based on the quasi-gate link.
[0208] In one embodiment, the adjustment process of the sampling points of the receiving end includes: if the optimal weight value is located in the early-gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift forward by one or more; if the optimal weight value is located in the late-gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift backward by one or more.
[0209] In the embodiments of the present application, in the early-late gate algorithm, a global search for the optimal path method is added to improve the early-late gate technology. In this way, the demodulation threshold is further reduced, the receiving performance is improved, the robustness of the decoding output is enhanced, and the selection of incorrect states and paths at the decoding output moment is avoided.
[0210] For ease of understanding, a specific embodiment is used below to fully illustrate the method provided by the present application. Please refer to Figure 20 , which shows a modular block diagram of a maximum likelihood and Viterbi joint decoding method based on GFSK modulation provided by an embodiment of the present application. And, Figure 21 shows a schematic flowchart of a maximum likelihood and Viterbi joint decoding method based on GFSK modulation provided by an embodiment of the present application.
[0211] The maximum likelihood and Viterbi joint decoding method based on GFSK modulation includes:
[0212] 1) Define parameters: VDA decoding depth M, maximum decoding storage depth M_max; Viterbi decoding length N; early-late gate adjustment threshold γ; path distinguishability factor β for depth adaptation; number of sampling points K required to calculate the average value of the initial phase samples during the phase bit setting process; and, based on the cumulative phase deviation elimination method of maximum likelihood detection, locally save the reference vector after the phase bit setting process, as shown in the above formula (9).
[0213] 2) The GFSK receiver obtains the phase sequence of the received signal based on the IQ baseband data; and for this phase sequence, non-ideal factors such as frequency offset can be further removed.
[0214] 3) According to the optimal sampling point information calculated by the receiver, perform segmented phase bit setting processing on the phase sequence corresponding to the received signal, as shown in formula (7). In addition, three links need to be maintained: Early, Late, and OnTime. Correspondingly, the segmented phase bit setting processing also includes these three links.
[0215] 4) Calculate the Euclidean distances of the three links, as shown in formula (10), and use the calculated Euclidean distances as the input weights of the VDA decoding module.
[0216] 5) Update the VDA weight tables corresponding to the three links, including weights and path states.
[0217] 6) Determine whether the path storage length reaches an integer multiple of the decoding depth M, or reaches the decoding end length, or exceeds the decoding depth M. If any of these conditions is met, enter the VDA weight comparison module; otherwise, continue to update the VDA weight table and the path table.
[0218] 7) Based on the global weight table, select the minimum weight value at the current moment in each weight table, and determine the initial state S_best of the decoding traceback based on the minimum value. The linked list corresponding to the minimum value is denoted as VDA_best_table. In the other two tables, search for the weight value corresponding to the state S_best, denoted as VDA_1 / VDA_2.
[0219] 8) Determine the OnTime link, the VDA weight value corresponding to the S_best state, and based on the VDA weight values corresponding to the S_best state in the Early / Late links, determine whether the threshold γ requirement is met; that is, whether Early link VDA(S_best) - OnTime VDA(S_best) > γ; or, Late link VDA(S_best) - OnTime VDA(S_best) > γ.
[0220] 9) If one of the conditions in 8) is satisfied, adjust the input sampled points. For example, adjust 1 sampled point (or multiple sampled points); act on the sampled points of the input for the segmentation phase position setting process at the next moment. Meanwhile, select the VDA_best_table and the corresponding path weight table as the input weight table for decoding traceback. On the other hand, the VDA weights at the current moment of the tables of the three links are all updated to the corresponding VDA weights in the VDA_best_table. That is, the VDA weights of the Early / OnTime / Late links are kept consistent; to avoid decoding errors caused by subsequent cumulative effects.
[0221] 10) If the conditions in 8) are not satisfied, do not adjust the sampled points. And select the quasi-gate link as the input weight table for decoding traceback.
[0222] 11) Calculate the weight path distinguishability ε.
[0223] 12) Determine whether the decoding condition is satisfied: If ε > β is satisfied, or the path storage depth M reaches the maximum depth M_max, or the input sequence has ended (reached the sequence length), then perform decoding traceback and output the decoded bits. At this time, if there is no adjustment of the sampled points that triggers the early-late gate, update the VDA weight values at the current moment of the Early / Late links to the corresponding VDA weight values at the current moment of the quasi-gate link, to avoid decoding errors caused by subsequent cumulative effects.
[0224] 13) If the decoding condition is not satisfied, continue to store the path weight table and do not perform decoding until the decoding condition is satisfied again.
[0225] When the maximum likelihood and Viterbi joint decoding method based on GFSK modulation provided by the embodiments of the present application is applied to modes such as Bluetooth BR / BLE, it can significantly improve the receiver decoding performance. Compared with the traditional differential decoding, the receiving sensitivity can be increased by more than 3 dB. And this method has a certain robustness, and the implementation logic is relatively simple. Also, this solution does not depend on the accuracy of the modulation index estimation and has good practicability.
[0226] It should be understood that although the steps in the flowcharts involved in the above-described embodiments are sequentially shown according to the indications of the arrows, these steps are not necessarily executed sequentially in the order indicated by the arrows. Unless there is a clear indication in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-described embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same moment, but can be executed at different moments. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least a part of other steps or steps or stages in other steps.
[0227] Based on the same inventive concept, an embodiment of the present application further provides a decoding device for implementing the maximum likelihood and Viterbi joint decoding method for GFSK reception described above. The implementation solution provided by this device to solve the problem is similar to the implementation solution described in the above method. Therefore, the specific limitations in one or more embodiments of the decoding device provided below can refer to the limitations on the maximum likelihood and Viterbi joint decoding method for GFSK reception in the above text, and will not be repeated here.
[0228] In one embodiment, as Figure 22 shown, a maximum likelihood and Viterbi joint decoding device for GFSK reception is provided. The maximum likelihood and Viterbi joint decoding device 2200 for GFSK reception includes: an acquisition module 2201, a setting module 2202, a calculation module 2203, and a decoding module 2204, where:
[0229] The acquisition module 2201 is configured to acquire the target phase sequence accumulated in the current stage in the GFSK reception module;
[0230] The setting module 2202 is configured to use a sliding window to acquire a target segmented phase sequence with a length of the first segmented sequence length based on the target phase sequence; when the target segmented phase sequence meets the phase setting processing condition, perform phase setting processing on the target segmented phase sequence, and the phase setting processing includes removing the accumulated phase deviation of the target segmented phase sequence;
[0231] The calculation module 2203 is configured to calculate the decoding weights in different decoding states according to the target segmented phase sequence after phase setting processing and the reference phase set;
[0232] The decoding module 2204 is configured to decode the symbol length corresponding to the length of the first segmented sequence length based on the Viterbi decoding algorithm, and perform decoding processing when the decoding weights in the different decoding states meet the decoding traceback condition.
[0233] In one embodiment, the target segmented phase sequence includes a plurality of phase samples; the setting module 2202 is specifically configured to: determine a normalization parameter according to an initial phase sample in the target segmented phase sequence; subtract the normalization parameter from the target segmented phase sequence to perform phase setting processing.
[0234] In one embodiment, the setting module 2202 is specifically configured to: use the first or the first to the K-th phase samples in the target segmented phase sequence as the initial phase samples; average the initial phase samples to obtain the normalization parameter.
[0235] In one embodiment, the apparatus further includes:
[0236] a condition determination module, configured to determine whether a latest symbol time when the target segmented phase sequence is obtained is a phase setting processing period away from a latest symbol time during the previous phase setting processing; if so, determine that the target segmented phase sequence meets the phase setting processing condition.
[0237] In one embodiment, the phase setting processing period is an integer multiple of the symbol duration of GFSK.
[0238] In one embodiment, the calculation module 2203 is specifically configured to: calculate Euclidean distances between the target segmented phase sequence and reference phase sequences corresponding to different decoding states included in the reference phase set; determine decoding weights in different decoding states according to the Euclidean distances.
[0239] In one embodiment, the calculation module 2203 is specifically configured to: calculate the absolute value of the difference between the target segmented phase sequence and each reference phase sequence to obtain the Euclidean distance.
[0240] In one embodiment, the calculation module 2203 is specifically configured to: for each decoding state, use the minimum value among the Euclidean distances corresponding to two sub-states included in the decoding state as the decoding weight in the decoding state.
[0241] In one embodiment, the apparatus further includes a phase set construction module, configured to:
[0242] construct prediction vectors corresponding to different decoding states;
[0243] Perform Gaussian filtering on each prediction vector to obtain the prediction vector after filtering processing; perform truncation processing on each prediction vector after filtering processing to obtain the truncated vectors corresponding to different decoding states; wherein, the truncation processing includes truncating phase samples with the same symbol length as the symbol length of the target segmented phase sequence; perform the phase bit setting processing on each truncated vector to obtain the reference phase sequences corresponding to different decoding states, so as to constitute the reference phase set.
[0244] In one embodiment, the symbol length of the prediction vector is the second symbol length, and the second symbol length is greater than the first segmented sequence length.
[0245] In one embodiment, the device further includes a decoding condition determination module, configured to: determine the current distance difference parameter according to the decoding weights in different decoding states; determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
[0246] In one embodiment, the device further includes a decoding depth determination module, configured to: determine whether the current decoding depth reaches the target decoding depth; if so, determine the current distance difference parameter according to the decoding weights in different decoding states.
[0247] In one embodiment, the decoding condition determination module is specifically configured to: calculate the difference between the second smallest value and the smallest value among the decoding weights in different decoding states to obtain the current distance difference parameter.
[0248] In one embodiment, the decoding condition determination module is specifically configured to: if the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied; if the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
[0249] In one embodiment, the device further includes a next decoding condition determination module, configured to:
[0250] If it is determined according to the decoding weights in different decoding states that the decoding traceback condition is not satisfied, then at the next decoding condition decision moment, continue to determine whether the decoding traceback condition is satisfied; the next decoding condition decision moment is: the moment when the next decoding depth is an integer multiple of the preset decoding depth value; or, the moment when the decoding weights are calculated according to the next set of target segmented phase sequences.
[0251] In one embodiment, the device further includes:
[0252] An adjustment module, configured to maintain and update an early gate weight table, a quasi-gate weight table, and a late gate weight table; determine an optimal weight value from each current weight value in the early gate weight table, the late gate weight table, and the quasi-gate weight table; determine whether to adjust a sampling point of a receiving end according to the optimal weight value; if so, perform an adjustment process on the sampling point of the receiving end.
[0253] In one embodiment, the adjustment module is specifically configured to: use the minimum value among the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table as the optimal weight value.
[0254] In one embodiment, the adjustment module is specifically configured to: if the optimal weight value belongs to the quasi-gate weight table, do not adjust the sampling point of the receiving end; or, if the optimal weight value is located in the early gate weight table, determine a first quasi-gate weight value corresponding to the first decoding state in the quasi-gate weight table according to the first decoding state corresponding to the optimal weight value, and subtract the optimal weight value from the first quasi-gate weight value to obtain a first difference value; if the first difference value is less than a first preset adjustment threshold, do not adjust the sampling point of the receiving end; or, if the optimal weight value is located in the late gate weight table, determine a second quasi-gate weight value corresponding to the second decoding state in the quasi-gate weight table according to the second decoding state corresponding to the optimal weight value, and subtract the optimal weight value from the second quasi-gate weight value to obtain a second difference value; if the second difference value is less than a second preset adjustment threshold, do not adjust the sampling point of the receiving end.
[0255] In one embodiment, the adjustment module is specifically configured to: if the first difference value is greater than or equal to the first preset adjustment threshold, determine that it is necessary to adjust the sampling point of the receiving end; or, if the second difference value is greater than or equal to the second preset adjustment threshold, determine that it is necessary to adjust the sampling point of the receiving end.
[0256] In one embodiment, the adjustment module is specifically configured to: if the optimal weight value is located in the early gate weight table, adjust the sampling point corresponding to the quasi-gate of the receiving end to shift forward by one or more; if the optimal weight value is located in the late gate weight table, adjust the sampling point corresponding to the quasi-gate of the receiving end to shift backward by one or more.
[0257] Each module in the above decoding device can be implemented in whole or in part by software, hardware, and their combination. The above modules can be embedded in a processor in a computer device in a hardware form or be independent of the processor, or can be stored in a memory in the computer device in a software form, so that the processor can call and execute the operations corresponding to the above respective modules.
[0258] In one embodiment, a computer device is provided. The computer device can be a terminal, and its internal structure diagram can be as Figure 23As shown in the figure. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit, and an input device. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface, the display unit, and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements a method for joint maximum likelihood and Viterbi decoding for GFSK reception. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covering the display screen, or a button, a trackball, or a touchpad provided on the computer device housing, or an external keyboard, touchpad, or mouse, etc.
[0259] Those skilled in the art can understand that Figure 23 the structure shown in the figure is only a block diagram of some structures related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have different component arrangements.
[0260] In one embodiment, a computer device is provided, including a memory and a processor. A computer program is stored in the memory. When the processor executes the computer program, the following steps are implemented:
[0261] Obtain the target phase sequence accumulated in the current stage in the GFSK reception module;
[0262] Using a sliding window, based on the target phase sequence, obtain a target segmented phase sequence with a length of the first segmented sequence length; when the target segmented phase sequence meets the phase position setting processing condition, perform phase position setting processing on the target segmented phase sequence, and the phase position setting processing includes removing the accumulated phase deviation of the target segmented phase sequence;
[0263] Calculate the decoding weights in different decoding states according to the target segmented phase sequence after phase position setting processing and the reference phase set;
[0264] Based on the Viterbi decoding algorithm, the decoding length is the symbol length corresponding to the length of the first segmented sequence. When the decoding weights in different decoding states are determined to meet the decoding traceback condition, decoding processing is performed.
[0265] In one embodiment, when the processor executes the computer program, the following steps are further implemented: Determine the normalization parameter according to the initial phase sample in the target segmented phase sequence; Subtract the normalization parameter from the target segmented phase sequence to perform phase positioning processing.
[0266] In one embodiment, when the processor executes the computer program, the following steps are further implemented: Take the first or the first to the K-th phase samples in the target segmented phase sequence as the initial phase samples; Average the initial phase samples to obtain the normalization parameter.
[0267] In one embodiment, when the processor executes the computer program, the following steps are further implemented: Determine whether the latest symbol time when the target segmented phase sequence is obtained is one phase positioning processing cycle away from the latest symbol time during the previous phase positioning processing; If so, determine that the target segmented phase sequence meets the phase positioning processing condition.
[0268] In one embodiment, the phase positioning processing cycle is an integer multiple of the symbol duration of GFSK.
[0269] In one embodiment, when the processor executes the computer program, the following steps are further implemented: Calculate the Euclidean distances between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set; Determine the decoding weights in different decoding states according to the Euclidean distances.
[0270] In one embodiment, when the processor executes the computer program, the following steps are further implemented: Calculate the absolute value of the difference between the target segmented phase sequence and each reference phase sequence to obtain the Euclidean distance.
[0271] In one embodiment, when the processor executes the computer program, the following steps are further implemented: For each decoding state, take the minimum value among the Euclidean distances corresponding to the two sub-states included in the decoding state as the decoding weight in the decoding state.
[0272] In one embodiment, when the processor executes the computer program, the following steps are further implemented: Construct prediction vectors corresponding to different decoding states;
[0273] Perform Gaussian filtering on each prediction vector to obtain the prediction vector after filtering; perform truncation processing on each prediction vector after filtering to obtain the truncated vectors corresponding to different decoding states; wherein, the truncation processing includes truncating phase samples with the same symbol length as the symbol length of the target segmented phase sequence; perform the phase setting processing on each truncated vector to obtain the reference phase sequences corresponding to different decoding states, so as to constitute the reference phase set.
[0274] In one embodiment, the symbol length of the prediction vector is the second symbol length, and the second symbol length is greater than the first segmented sequence length.
[0275] In one embodiment, when the processor executes the computer program, the following steps are further implemented: determine the current distance difference parameter according to the decoding weights in different decoding states; determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
[0276] In one embodiment, when the processor executes the computer program, the following steps are further implemented: determine whether the current decoding depth reaches the target decoding depth; if so, determine the current distance difference parameter according to the decoding weights in different decoding states.
[0277] In one embodiment, when the processor executes the computer program, the following steps are further implemented: calculate the difference between the second smallest value and the smallest value among the decoding weights in different decoding states to obtain the current distance difference parameter.
[0278] In one embodiment, when the processor executes the computer program, the following steps are further implemented: if the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied; if the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
[0279] In one embodiment, when the processor executes the computer program, the following steps are further implemented: if it is determined that the decoding traceback condition is not satisfied according to the decoding weights in different decoding states, at the next decoding condition judgment moment, continue to determine whether the decoding traceback condition is satisfied; the next decoding condition judgment moment is: the moment when the next decoding depth is an integer multiple of the preset decoding depth value; or, the moment when the decoding weights are calculated according to the next set of target segmented phase sequences.
[0280] In one embodiment, when the processor executes the computer program, the following steps are further implemented: maintain and update the early gate weight table, the quasi-gate weight table, and the late gate weight table; determine the optimal weight value from the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table; determine whether to adjust the sampling points of the receiving end according to the optimal weight value; if so, perform adjustment processing on the sampling points of the receiving end.
[0281] In one embodiment, when the processor executes the computer program, the following steps are further implemented: taking the minimum value among the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table as the optimal weight value.
[0282] In one embodiment, when the processor executes the computer program, the following steps are further implemented: if the optimal weight value belongs to the quasi-gate weight table, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is located in the early gate weight table, according to the first decoding state corresponding to the optimal weight value, determining the first quasi-gate weight value corresponding to the first decoding state in the quasi-gate weight table, and taking the difference between the first quasi-gate weight value and the optimal weight value to obtain a first difference value; if the first difference value is less than the first preset adjustment threshold, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is located in the late gate weight table, according to the second decoding state corresponding to the optimal weight value, determining the second quasi-gate weight value corresponding to the second decoding state in the quasi-gate weight table, and taking the difference between the second quasi-gate weight value and the optimal weight value to obtain a second difference value; if the second difference value is less than the second preset adjustment threshold, the sampling points of the receiving end are not adjusted.
[0283] In one embodiment, when the processor executes the computer program, the following steps are further implemented: if the first difference value is greater than or equal to the first preset adjustment threshold, it is determined that the sampling points of the receiving end need to be adjusted; or, if the second difference value is greater than or equal to the second preset adjustment threshold, it is determined that the sampling points of the receiving end need to be adjusted.
[0284] In one embodiment, when the processor executes the computer program, the following steps are further implemented: if the optimal weight value is located in the early gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift forward by one or more; if the optimal weight value is located in the late gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift backward by one or more.
[0285] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:
[0286] Obtaining the target phase sequence accumulated in the current stage in the GFSK receiving module;
[0287] Using a sliding window, based on the target phase sequence, obtaining a target segmented phase sequence with a length of the first segmented sequence length; when the target segmented phase sequence meets the phase setting processing condition, performing phase setting processing on the target segmented phase sequence, and the phase setting processing includes removing the cumulative phase deviation of the target segmented phase sequence;
[0288] Calculating the decoding weights in different decoding states according to the target segmented phase sequence after phase setting processing and the reference phase set.
[0289] Based on the Viterbi decoding algorithm, the decoding length is the symbol length corresponding to the length of the first segmented sequence. When the decoding weights in different decoding states are determined to meet the decoding traceback condition, decoding processing is performed.
[0290] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: determining a normalization parameter according to the initial phase sample in the target segmented phase sequence; subtracting the normalization parameter from the target segmented phase sequence to perform phase setting processing.
[0291] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: taking the first or the first to the K-th phase samples in the target segmented phase sequence as the initial phase samples; averaging the initial phase samples to obtain the normalization parameter.
[0292] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: determining whether the latest symbol moment when the target segmented phase sequence is obtained is one phase setting processing period away from the latest symbol moment during the previous phase setting processing; if so, determining that the target segmented phase sequence meets the phase setting processing condition.
[0293] In one embodiment, the phase setting processing period is an integer multiple of the symbol duration of GFSK.
[0294] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: calculating the Euclidean distances between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set; determining the decoding weights in different decoding states according to the Euclidean distances.
[0295] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: calculating the absolute value of the difference between the target segmented phase sequence and each reference phase sequence to obtain the Euclidean distance.
[0296] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: for each decoding state, taking the minimum value of the Euclidean distances corresponding to the two sub-states included in the decoding state as the decoding weight in the decoding state.
[0297] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: constructing prediction vectors corresponding to different decoding states;
[0298] Perform Gaussian filtering on each prediction vector to obtain the prediction vector after filtering processing; perform truncation processing on each prediction vector after filtering processing to obtain the truncation vectors corresponding to different decoding states; wherein, the truncation processing includes truncating phase samples with the same symbol length as the target segmented phase sequence; perform the phase bit setting processing on each truncation vector to obtain the reference phase sequences corresponding to different decoding states, so as to constitute the reference phase set.
[0299] In one embodiment, the symbol length of the prediction vector is the second symbol length, and the second symbol length is greater than the first segmented sequence length.
[0300] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: determine the current distance difference parameter according to the decoding weights in different decoding states; determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
[0301] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: determine whether the current decoding depth reaches the target decoding depth; if so, determine the current distance difference parameter according to the decoding weights in different decoding states.
[0302] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: calculate the difference between the second smallest value and the smallest value among the decoding weights in different decoding states to obtain the current distance difference parameter.
[0303] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: if the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied; if the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
[0304] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: if it is determined according to the decoding weights in different decoding states that the decoding traceback condition is not satisfied, then at the next decoding condition judgment moment, continue to determine whether the decoding traceback condition is satisfied; the next decoding condition judgment moment is: the moment when the next decoding depth is an integer multiple of the preset decoding depth value; or, the moment when the decoding weights are calculated according to the next group of target segmented phase sequences.
[0305] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: maintain and update the early gate weight table, the quasi-gate weight table, and the late gate weight table; determine the optimal weight value from the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table; determine whether to adjust the sampling points of the receiving end according to the optimal weight value; if so, perform adjustment processing on the sampling points of the receiving end.
[0306] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: taking the minimum value among the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table as the optimal weight value.
[0307] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the optimal weight value belongs to the quasi-gate weight table, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is located in the early gate weight table, according to the first decoding state corresponding to the optimal weight value, determining the first quasi-gate weight value corresponding to the first decoding state in the quasi-gate weight table, and taking the difference between the first quasi-gate weight value and the optimal weight value to obtain a first difference value; if the first difference value is less than a first preset adjustment threshold, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is located in the late gate weight table, according to the second decoding state corresponding to the optimal weight value, determining the second quasi-gate weight value corresponding to the second decoding state in the quasi-gate weight table, and taking the difference between the second quasi-gate weight value and the optimal weight value to obtain a second difference value; if the second difference value is less than a second preset adjustment threshold, the sampling points of the receiving end are not adjusted.
[0308] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the first difference value is greater than or equal to the first preset adjustment threshold, it is determined that the sampling points of the receiving end need to be adjusted; or, if the second difference value is greater than or equal to the second preset adjustment threshold, it is determined that the sampling points of the receiving end need to be adjusted.
[0309] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the optimal weight value is located in the early gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift forward by one or more; if the optimal weight value is located in the late gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift backward by one or more.
[0310] In one embodiment, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the following steps are implemented:
[0311] Obtaining a target phase sequence accumulated in the current stage in the GFSK receiving module;
[0312] Using a sliding window, based on the target phase sequence, obtaining a target segmented phase sequence with a length of the first segmented sequence length; in the case where the target segmented phase sequence meets the phase setting processing condition, performing phase setting processing on the target segmented phase sequence, and the phase setting processing includes removing the accumulated phase deviation of the target segmented phase sequence.
[0313] Calculate the decoding weights in different decoding states according to the target segmented phase sequence and the reference phase set after phase positioning processing;
[0314] Based on the Viterbi decoding algorithm, with the decoding length being the symbol length corresponding to the length of the first segmented sequence, when the decoding weights in the different decoding states are determined to meet the decoding traceback condition, perform decoding processing.
[0315] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: Determine the normalization parameter according to the initial phase sample points in the target segmented phase sequence; Subtract the normalization parameter from the target segmented phase sequence to perform phase positioning processing.
[0316] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: Take the first or the first to the Kth phase sample points in the target segmented phase sequence as the initial phase sample points; Calculate the average of the initial phase sample points to obtain the normalization parameter.
[0317] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: Determine whether the latest symbol moment when the target segmented phase sequence is obtained is one phase positioning processing period away from the latest symbol moment during the previous phase positioning processing; If so, determine that the target segmented phase sequence meets the phase positioning processing condition.
[0318] In one embodiment, the phase positioning processing period is an integer multiple of the symbol duration of GFSK.
[0319] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: Calculate the Euclidean distances between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set; Determine the decoding weights in the different decoding states according to the Euclidean distances.
[0320] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: Calculate the absolute value of the difference between the target segmented phase sequence and each reference phase sequence to obtain the Euclidean distance.
[0321] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: For each decoding state, take the minimum value among the Euclidean distances corresponding to the two sub-states included in the decoding state as the decoding weight of the decoding state.
[0322] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: Construct prediction vectors corresponding to different decoding states;
[0323] Perform Gaussian filtering on each prediction vector to obtain the prediction vector after filtering; perform truncation processing on each prediction vector after filtering to obtain the truncated vectors corresponding to different decoding states; wherein, the truncation processing includes truncating phase samples with the same symbol length as the symbol length of the target segmented phase sequence; perform the phase setting processing on each truncated vector to obtain the reference phase sequences corresponding to different decoding states, so as to form the reference phase set.
[0324] In one embodiment, the symbol length of the prediction vector is the second symbol length, and the second symbol length is greater than the first segmented sequence length.
[0325] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: determine the current distance difference parameter according to the decoding weights in different decoding states; determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
[0326] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: determine whether the current decoding depth reaches the target decoding depth; if so, determine the current distance difference parameter according to the decoding weights in different decoding states.
[0327] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: calculate the difference between the second smallest value and the smallest value among the decoding weights in different decoding states to obtain the current distance difference parameter.
[0328] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: if the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied; if the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
[0329] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: if it is determined according to the decoding weights in different decoding states that the decoding traceback condition is not satisfied, continue to determine whether the decoding traceback condition is satisfied at the next decoding condition decision moment; the next decoding condition decision moment is: the moment when the next decoding depth is an integer multiple of the preset decoding depth value; or, the moment when the decoding weights are calculated according to the next group of target segmented phase sequences.
[0330] In one embodiment, when the computer program is executed by the processor, the following steps are further implemented: maintain and update the early gate weight table, the quasi-gate weight table and the late gate weight table; determine the optimal weight value from the current weight values in the early gate weight table, the late gate weight table and the quasi-gate weight table; determine whether to adjust the sampling points of the receiving end according to the optimal weight value; if so, perform adjustment processing on the sampling points of the receiving end.
[0331] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: taking the minimum value among the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table as the optimal weight value.
[0332] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the optimal weight value belongs to the quasi-gate weight table, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is located in the early gate weight table, according to the first decoding state corresponding to the optimal weight value, determining the first quasi-gate weight value corresponding to the first decoding state in the quasi-gate weight table, and taking the difference between the first quasi-gate weight value and the optimal weight value to obtain a first difference value; if the first difference value is less than a first preset adjustment threshold, the sampling points of the receiving end are not adjusted; or, if the optimal weight value is located in the late gate weight table, according to the second decoding state corresponding to the optimal weight value, determining the second quasi-gate weight value corresponding to the second decoding state in the quasi-gate weight table, and taking the difference between the second quasi-gate weight value and the optimal weight value to obtain a second difference value; if the second difference value is less than a second preset adjustment threshold, the sampling points of the receiving end are not adjusted.
[0333] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the first difference value is greater than or equal to the first preset adjustment threshold, it is determined that the sampling points of the receiving end need to be adjusted; or, if the second difference value is greater than or equal to the second preset adjustment threshold, it is determined that the sampling points of the receiving end need to be adjusted.
[0334] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: if the optimal weight value is located in the early gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift forward by one or more; if the optimal weight value is located in the late gate weight table, adjusting the sampling points corresponding to the quasi-gate of the receiving end to shift backward by one or more.
[0335] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memories. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided in the present application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in the present application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, etc., without limitation.
[0336] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.
[0337] The above-described embodiments only represent several implementation manners of the present application. The description is relatively specific and detailed, but it should not be construed as a limitation on the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.
Claims
1. A joint maximum likelihood and Viterbi decoding method for GFSK reception, characterized in that, The method includes: Obtaining a target phase sequence accumulated in the current stage in a GFSK receiving module; Using a sliding window, based on the target phase sequence, obtaining a target segmented phase sequence with a length of a first segmented sequence length; when the target segmented phase sequence meets the phase position setting processing condition, performing phase position setting processing on the target segmented phase sequence, and the phase position setting processing includes removing the accumulated phase deviation of the target segmented phase sequence; Calculating decoding weights in different decoding states according to the target segmented phase sequence after phase position setting processing and a reference phase set; including: calculating the Euclidean distance between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set; determining the decoding weights in the different decoding states according to each of the Euclidean distances; Based on the Viterbi decoding algorithm, decoding the symbol length corresponding to the length of the first segmented sequence length, and performing decoding processing when the decoding weights in the different decoding states meet the decoding trace condition.
2. The method according to claim 1, characterized in that, The target segmented phase sequence includes a plurality of phase samples; the performing phase position setting processing on the target segmented phase sequence includes: Determining a normalization parameter according to an initial phase sample in the target segmented phase sequence; Subtracting the normalization parameter from the target segmented phase sequence to perform phase position setting processing.
3. The method according to claim 2, characterized in that, The determining a normalization parameter according to an initial phase sample in the target segmented phase sequence includes: Taking the first phase sample or the first to the K-th phase samples in the target segmented phase sequence as the initial phase sample; Calculating the average of the initial phase samples to obtain the normalization parameter.
4. The method according to claim 1, characterized in that, The method further includes: Determining whether the latest symbol time when the target segmented phase sequence is obtained is one phase position setting processing period away from the latest symbol time during the previous phase position setting processing; If so, determining that the target segmented phase sequence meets the phase position setting processing condition.
5. The method according to claim 4, characterized in that, The phase position setting processing period is an integer multiple of the symbol duration of GFSK.
6. The method according to claim 1, characterized in that, The method further includes: When the decoding weights in the different decoding states do not meet the decoding trace condition, not performing decoding processing.
7. The method according to claim 1, characterized in that, The calculating the Euclidean distance between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set includes: Calculating the absolute value of the difference between the target segmented phase sequence and each of the reference phase sequences to obtain the Euclidean distance.
8. The method according to claim 1, characterized in that, The determining the decoding weights in the different decoding states according to each of the Euclidean distances includes: For each of the decoding states, taking the minimum value of the Euclidean distances corresponding to the two sub-states included in the decoding state as the decoding weight in the decoding state.
9. The method according to claim 1, characterized in that, The determination process of the reference phase set includes: Constructing prediction vectors corresponding to different decoding states; Performing Gaussian filtering processing on each of the prediction vectors to obtain the prediction vectors after filtering processing; Perform truncation processing on each of the filtered prediction vectors to obtain truncated vectors corresponding to different decoding states; wherein, the truncation processing includes truncating phase samples with a symbol length consistent with that of the target segmented phase sequence. Perform the phase bit setting processing on each of the truncated vectors to obtain reference phase sequences corresponding to different decoding states, so as to form the reference phase set.
10. The method according to claim 9, characterized in that, The symbol length of the prediction vector is the second symbol length, and the second symbol length is greater than the first segmented sequence length.
11. The method according to claim 1, characterized in that, The process of determining whether the decoding traceback condition is satisfied according to the decoding weights in different decoding states includes: Determine the current distance difference parameter according to the decoding weights in different decoding states. Determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor.
12. The method according to claim 11, wherein The method further includes: Determine whether the current decoding depth reaches the target decoding depth. If so, determine the current distance difference parameter according to the decoding weights in different decoding states.
13. The method according to claim 11, wherein The determining the current distance difference parameter according to the decoding weights in different decoding states includes: Calculate the difference between the second smallest value and the smallest value among the decoding weights in different decoding states to obtain the current distance difference parameter.
14. The method according to claim 11, wherein Determine whether the decoding traceback condition is satisfied according to the current distance difference parameter and a preset distinguishability factor, including: If the current distance difference parameter is greater than or equal to the distinguishability factor, the decoding traceback condition is satisfied. If the current distance difference parameter is less than the distinguishability factor, the decoding traceback condition is not satisfied.
15. The method according to claim 11, wherein The method further includes: If it is determined that the decoding traceback condition is not satisfied according to the decoding weights in different decoding states, continue to determine whether the decoding traceback condition is satisfied at the next decoding condition decision moment. The next decoding condition decision moment is: The moment when the next decoding depth is an integer multiple of the preset decoding depth value; or, The moment when the decoding weights are calculated according to the next set of target segmented phase sequences.
16. The method according to any one of claims 1 to 15, wherein The method further includes: Maintain and update the early gate weight table, the quasi-gate weight table, and the late gate weight table; wherein, the early gate weight table is obtained according to the decoding weights in different decoding states corresponding to the first phase sequence, and the first phase sequence is a phase sequence that is L phase samples ahead of the target segmented phase sequence; the quasi-gate weight table is obtained according to the decoding weights in different decoding states corresponding to the target segmented phase sequence; the late gate weight table is obtained according to the decoding weights in different decoding states corresponding to the second phase sequence, and the second phase sequence is a phase sequence that is L phase samples behind the target segmented phase sequence. Determine the optimal weight value from the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table. Determine whether to adjust the sampling points of the receiving end according to the optimal weight value. If so, perform adjustment processing on the sampling points of the receiving end.
17. The method according to claim 16, wherein The determining the optimal weight value from the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table includes: Take the minimum value among the current weight values in the early gate weight table, the late gate weight table, and the quasi-gate weight table as the optimal weight value.
18. The method according to claim 16, wherein Determining whether to adjust the sampling points of the receiving end according to the optimal weight value includes: If the optimal weight value belongs to the quasi-gate weight table, do not adjust the sampling points of the receiving end; or, If the optimal weight value is in the early gate weight table, determine the first quasi-gate weight value corresponding to the first decoding state in the quasi-gate weight table according to the first decoding state corresponding to the optimal weight value, and calculate the difference between the first quasi-gate weight value and the optimal weight value to obtain a first difference; if the first difference is less than a first preset adjustment threshold, do not adjust the sampling points of the receiving end; or, If the optimal weight value is in the late gate weight table, determine the second quasi-gate weight value corresponding to the second decoding state in the quasi-gate weight table according to the second decoding state corresponding to the optimal weight value, and calculate the difference between the second quasi-gate weight value and the optimal weight value to obtain a second difference; if the second difference is less than a second preset adjustment threshold, do not adjust the sampling points of the receiving end.
19. The method according to claim 18, wherein Determining whether to adjust the sampling points of the receiving end according to the optimal weight value includes: If the first difference is greater than or equal to the first preset adjustment threshold, determine that it is necessary to adjust the sampling points of the receiving end; or, If the second difference is greater than or equal to the second preset adjustment threshold, determine that it is necessary to adjust the sampling points of the receiving end.
20. The method according to claim 19, wherein The adjustment process for the sampling points of the receiving end includes: If the optimal weight value is in the early gate weight table, adjust the sampling points corresponding to the quasi-gate of the receiving end to shift forward by one or more; If the optimal weight value is in the late gate weight table, adjust the sampling points corresponding to the quasi-gate of the receiving end to shift backward by one or more.
21. A joint maximum likelihood and Viterbi decoding device for GFSK reception, characterized in that, The device includes: An acquisition module, configured to acquire a target phase sequence accumulated in the current stage in the GFSK receiving module; A setting module, configured to use a sliding window to obtain a target segmented phase sequence with a length of the first segmented sequence length based on the target phase sequence; when the target segmented phase sequence meets the phase setting processing condition, perform phase setting processing on the target segmented phase sequence, and the phase setting processing includes removing the accumulated phase deviation of the target segmented phase sequence; A calculation module, configured to calculate the decoding weights in different decoding states according to the target segmented phase sequence after phase setting processing and a reference phase set; specifically, the calculation module is configured to: calculate the Euclidean distances between the target segmented phase sequence and the reference phase sequences corresponding to different decoding states included in the reference phase set; determine the decoding weights in different decoding states according to the respective Euclidean distances; A decoding module, configured to decode the symbol length corresponding to the length of the first segmented sequence length based on the Viterbi decoding algorithm, and perform decoding processing when the decoding weights in different decoding states meet the decoding traceability condition.
22. A computer device, including a memory and a processor, the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method described in any one of claims 1 to 20.
23. A computer-readable storage medium, on which a computer program is stored, characterized in that, When the computer program is executed by the processor, it implements the steps of the method described in any one of claims 1 to 20.
24. A computer program product, including a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the method described in any one of claims 1 to 20.
Citation Information
Patent Citations
Soft output viterbi decoding algorithm SOVA-based decoding method and device
CN107919877A
System for decoding digital data using variable dicision depth
CN1171869A