Pre-training-free four-order modulation camera visible light communication demodulation method

Through the 4-order modulation camera visible light communication demodulation method without pre-training, using step by step iterative polynomial fitting and outlier point recognition algorithms, the problem of pre-training and high bit error rate in the 4ASK modulation format system is solved, and efficient channel adaptation and low bit error rate transmission is achieved.

CN119727911APending Publication Date: 2025-03-28BEIJING INST OF TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411923667.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-25
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

The prior art demodulation in the 4ASK modulation format system requires pre-training, and the bit error rate is high, making it difficult to adapt to channel changes.

Method used

A 4-order modulation camera visible light communication demodulation method is proposed without pre-training. By step by step iterating polynomial fitting and outlier point recognition algorithms, the nonlinear problem of LED multi-stage modulation is solved and the accuracy of demodulation is improved.

Benefits of technology

It achieves higher transmission rate and lower bit error rate, has strong channel change adaptability and robustness, and does not require any pre-training.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119727911A_ABST
    Figure CN119727911A_ABST
Patent Text Reader

Abstract

The invention relates to a four-order modulation camera visible light communication demodulation method without pre-training, and belongs to the technical field of visible light communication. According to the method, the nonlinear problem of LED multi-stage modulation is solved through step-by-step iteration polynomial fitting, and meanwhile, an outlier recognition algorithm is adopted to further filter effective load gray value points and complete reclassification. The method comprises the following steps: acquiring an effective load gray value point of each symbol level; 4-order polynomial fitting is utilized to extract gray value points of symbol levels' 3 'and' 0 'step by step; classifying the residual gray value points, and judging the residual gray value points as symbol levels' 2 'or' 1 '; fitting error calculation is carried out on the gray value points of each symbol level, and ungrouped points are further filtered out; and performing re-judgment on the unmatched group points, and finally outputting demodulation data. According to the method, pre-training is not needed, the channel adaptability and robustness are high, and compared with the prior art, the transmission performance and flexibility are remarkably improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to a visible light communication demodulation method for a 4th-order modulation camera without pre-training, and belongs to the technical field of visible light communication. Background Art

[0002] Optical wireless communication (OWC) has attracted widespread attention due to its wide available spectrum range (350-1550nm), which can effectively alleviate the bandwidth pressure of radio frequency (RF) wireless systems. Optical camera communication (OCC) is a branch of OWC that uses a camera as a receiver instead of a photodiode (PD). Although the transmission bandwidth of OCC may be lower than that of the PD-based OWC system, the widespread use of cameras in smart devices makes the OCC system more flexible and convenient. In addition, OCC can be widely used in indoor positioning, vehicle-mounted communications, the Internet of Things (IoT), and underwater communications.

[0003] Currently, many demodulation algorithms have been applied to OCC systems using on-off keying (OOK) modulation formats, such as polynomial fitting threshold curve algorithms, fast adaptive threshold algorithms, exponential transformation algorithms, and frame averaging algorithms based on signal tracking. These algorithms perform well in their respective experimental systems. However, with the increase in transmission rate requirements, it becomes particularly necessary to use higher-order modulation formats (such as 4-order modulation formats), which requires the use of different demodulation methods. This is because the OOK system only needs to distinguish between binary data "0" and "1", while higher-order modulation formats need to distinguish multiple symbol levels, which places higher requirements on the demodulation algorithm.

[0004] For high-order modulation format systems, the prior art has also proposed some demodulation algorithms. For example, a training threshold method (TTM) based on 4PWM modulation format obtains threshold information of each symbol level through training data to achieve data demodulation. This method has achieved good results in its experiments and can achieve a transmission distance of 200 cm under the condition of meeting 7% forward error correction (pre-FEC BER = 3.8×10-3). However, this method requires pre-training before demodulation, so retraining may be required when the distance or position changes. In recent years, some algorithms have used deep learning to achieve data demodulation in high-order modulation systems. These algorithms have achieved good performance in OCC systems, but usually require a large amount of sample data for pre-training, and the experimental results depend on the quality of the training data set. At the same time, if the experimental conditions change, the neural network-based system may also need to be retrained. Another algorithm inserts the brightest symbols in the data frame header continuously and sets the empirical threshold based on the grayscale envelope between the frame headers to achieve data demodulation without training. However, the transmission distance achieved by this method is relatively short (100 cm), and the brightest symbols inserted continuously between the frame headers limit the transmission rate (2kbps).

[0005] The present invention proposes a step-by-step polynomial fitting scheme for the 4th-order composite amplitude shift keying (4CASK) modulation format. The scheme solves the nonlinear problem of LED multi-level modulation by performing iterative polynomial fitting on each symbol level. In addition, the present invention further filters abnormal data points in combination with an outlier recognition algorithm to improve the accuracy of demodulation. The present invention does not require pre-training, has strong adaptability and robustness to channel changes, and can achieve significant improvements in transmission performance and flexibility compared to the prior art. Summary of the invention

[0006] The purpose of the present invention is to improve the OCC communication rate while solving the problem that 4ASK modulation format system demodulation requires pre-training and has a high bit error rate. A 4-order modulation camera visible light communication demodulation method without pre-training is proposed.

[0007] The visible light communication system on which the fourth-order modulation camera visible light communication demodulation method without pre-training relies includes a signal source, a data conversion module, an LED driving circuit, an LED light source, a camera, an image pre-processing module, a step-by-step iterative polynomial fitting module, and an outlier recognition module.

[0008] The 4th-order modulation camera visible light communication demodulation method specifically includes the following steps: (wherein steps 2-4 are a step-by-step iterative polynomial fitting algorithm, and steps 5-14 are an outlier recognition algorithm):

[0009] Step 1, the signal source is used to generate and transmit user data, which is a "0" "1" bit sequence; the data conversion module receives the transmitted user data as the payload data, and then adds the synchronization data and the pilot data to form a data frame; at the same time, every two bits are grouped together to control the generation of the corresponding four-level signal; the LED driving circuit receives the four-level signal from the data conversion module, amplifies it, and controls the corresponding LED on the LED light source to light up and emit a visible light signal; the camera is responsible for collecting the visible light signal emitted by the LED light source, storing it as an image and sending it to the image preprocessing module; the image preprocessing module performs grayscale value processing on the image collected by the camera, extracts the required grayscale value sequence and obtains the image grayscale values ​​of the four symbol levels "3", "2", "1" and "0" of the payload;

[0010] Step 2, use step-by-step iterative polynomial fitting to extract the gray value points of symbol level "3": perform a 4th-order polynomial fitting on all the payload gray value points to obtain the fitting curve L1, and filter out the payload gray value points below the curve L1; then, perform a 4th-order polynomial fitting on the filtered payload gray value points again to obtain the fitting curve L2; take the midline M1 between L1 and L2, and filter out the payload gray value points below M1; repeat this process four times, and classify the remaining payload gray value points into the symbol level "3";

[0011] Step 3, use step-by-step iterative polynomial fitting to extract the gray value points of symbol level "0": perform a 4th-order polynomial fitting on all the payload gray value points to obtain the fitting curve L1, and filter out the payload gray value points above the curve L1; then, perform a 4th-order polynomial fitting on the filtered payload gray value points again to obtain the fitting curve L0; take the midline M0 between L1 and L0, and filter out the payload gray value points above M0; repeat this process four times, and classify the remaining payload gray value points into the symbol level "0";

[0012] Step 4. Use step-by-step iterative polynomial fitting to extract grayscale value points of symbol level "2" and "1": After obtaining the grayscale value points of symbol level "3" and "0", these two types of grayscale value points are filtered out, and only the remaining grayscale value points are fitted with a 4th-order polynomial. At the same time, the points above the fitting curve are classified as grayscale value points of symbol level "2", and the points below the fitting curve are classified as grayscale value points of symbol level "1";

[0013] Step 5: After completing the classification of symbol-level grayscale value points using step-by-step iterative polynomial fitting, perform a 4th-order polynomial fitting on the grayscale value points of each symbol level, and calculate the distance between all grayscale value points of each symbol level and the corresponding fitting curve; the fitting curve F(l) is actually a 1×N matrix:

[0014] F(l)=[f(l,1)f(l,2)…f(l,i)…f(l,N)] (1)

[0015] Where l represents the symbol level, which is "3", "2", "1", or "0". f(l,i) represents the grayscale value of the fitting curve of the i-th column of the image, and N is the total number of columns in the image.

[0016] Step 6: Define the matrix C(l) to represent the column index of the gray value point of the payload, and the matrix G(l) to represent the corresponding gray value:

[0017]

[0018] Where c(l,i) represents the column of the i-th gray value point in symbol level l, g(l,i) represents the gray value of the gray value point, and n is the total number of payload gray value points with symbol level l.

[0019] Step 7: Calculate the distance between each payload gray value point with symbol level l and the corresponding fitting curve F(l) to obtain the fitting error matrix Δ(l):

[0020]

[0021] Step 8. Calculate the difference between each point in the matrix Δ(l) and its previous adjacent point to generate the matrix D(l):

[0022]

[0023] Step 9: Compare the D(l) value with the threshold matrix T(l) to further analyze the points exceeding the threshold; the choice of threshold varies according to different symbol levels; use matrix T(l) to represent the threshold:

[0024] T(l)=[t(l,1)t(l,2)…t(l,i)…t(l,n-1)] (5)

[0025] Step 10: Filter outliers at symbol level "3", and use half of the difference between the grayscale values ​​of symbol levels "3" and "2" as the threshold; use the difference between the grayscale values ​​of pilot symbol "3" and pilot symbol "2", P(3)-P(2), as the difference between the grayscale values ​​of symbol levels "3" and "2", and apply the normalization factor g(3,i) / P(3) to adjust the threshold:

[0026]

[0027] If |d(3,i)|>t(3,i), and there is a value less than 0 in δ(3,i+1) and δ(3,i), then the smaller payload gray value point of the two values ​​is filtered out; that is, if δ(3,i)<δ(3,i+1), then the i-th point is filtered out; otherwise, the i+1-th point is filtered out.

[0028] Step 11, filter outliers of symbol level "0"; for symbol level "0", there is already a fitting curve of symbol level "3" as a reference; use one third of the difference between the fitting curves of symbol level "3" and "0" as the difference between symbol level "1" and "0", and use half of the difference as the threshold; the threshold calculation formula for symbol level "0" is as follows:

[0029]

[0030] If d(0,i)|>t(0,i) and there is a value greater than 0 in δ(0,i) and δ(0,i+1), the larger payload gray value point of the two values ​​is filtered out.

[0031] Step 12, filter outliers at symbol level "2"; first determine whether the grayscale value of the payload at the i-th symbol level "2" is close to the fitting curve at symbol level "3"; at this time, there are fitting curves at symbol levels "3", "0" and "2" respectively; use half of the difference between the fitting curves at symbol levels "2" and "0" as the difference between symbol levels "2" and "1"; if f(3,c(2,i))-f(2,c(2,i))<(f(2,c(2,i))-f(0,c(2,i))) / 2, then it is considered that the grayscale value of the payload at symbol level "2" is close to the fitting curve at symbol level "3"; at this time, set half of the difference between the c(2,i)th column of the fitting curves at symbol levels "3" and "2" as the threshold for determining the grayscale value point of the payload at the i-th symbol level "2":

[0032]

[0033] In this case, if |d(2,i)|>t(2,i) and there is a value greater than 0 in δ(2,i) and δ(2,i+1), the larger payload grayscale value point of the two values ​​is filtered out; conversely, if the payload grayscale value of the symbol level "2" deviates from the fitting curve of the symbol level "3", half of the difference between the fitting curves of the symbol levels "2" and "1" in the c(2,i)th column is set as the threshold for determining the payload grayscale value of the i-th symbol level "2"; since half of the difference between the fitting curves of the symbol levels "2" and "0" is used as the difference between the symbol levels "2" and "1", the following formula is used to calculate the threshold:

[0034]

[0035] In this case, if |d(2,i)|>t(2,i) and there is a value less than 0 in δ(2,i) and δ(2,i+1), the smaller payload gray value point of the two values ​​is filtered out.

[0036] Step 13: Filter outliers of symbol level "1"; if f(2,c(1,i))-f(1,c(1,i))<f(1,c(1,i))-f(0,c(1,i)), use the following formula to calculate the threshold:

[0037]

[0038] In this case, if |d(1,i)|>t(1,i) and there is a value greater than 0 in δ(1,i) and δ(1,i+1), the larger payload gray value point of the two values ​​is filtered out; conversely, if f(2,c(1,i))-f(1,c(1,i))≥f(1,c(1,i))-f(0,c(1,i)), the threshold is calculated using the following formula:

[0039]

[0040] In this case, if |d(1,i)|>t(1,i) and there is a value less than 0 in δ(1,i) and δ(1,i+1), the smaller payload gray value point of the two values ​​is filtered out.

[0041] Step 14, re-judge the filtered points; make a difference between their grayscale values ​​and the values ​​on the corresponding columns of the fitting curves with symbol levels of "3", "2", "1" and "0", and take the absolute value; if the absolute value of the difference between the point and the fitting curve with symbol level "3" is the smallest, then re-judge this grayscale value point as symbol level "3"; if the absolute value of the difference between the point and the fitting curve with symbol level "2" is the smallest, then re-judge this grayscale value point as symbol level "2"; if the absolute value of the difference between the point and the fitting curve with symbol level "1" is the smallest, then re-judge this grayscale value point as symbol level "1"; if the absolute value of the difference between the point and the fitting curve with symbol level "0" is the smallest, then re-judge this grayscale value point as symbol level "0".

[0042] At this point, from step 1 to step 14, a 4ASK-OCC demodulation method without pre-training is completed.

[0043] Beneficial Effects

[0044] The present invention discloses a 4th-order modulation camera visible light communication demodulation method without pre-training, which has the following beneficial effects compared with the existing camera-based visible light communication method:

[0045] 1. Higher transmission rate, using 4th order amplitude shift keying to modulate LED to increase communication rate;

[0046] 2. Reduce the bit error rate. This method uses iterative polynomial fitting for each symbol level to solve the nonlinear problem of multi-level modulation in LEDs, and uses an outlier recognition algorithm to further filter data points and complete reclassification to reduce the bit error rate;

[0047] 3. The scheme does not require any pre-training and is highly robust to channel changes. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] Figure 1This is a diagram of a visible light communication demodulation method for a 4th-order modulation camera without pre-training and an experimental device of an embodiment of the present invention;

[0049] Figure 2 This is a data frame composition structure diagram of a visible light communication demodulation method for a 4th-order modulation camera without pre-training according to the present invention;

[0050] Figure 3 It is a visible light communication demodulation method of a 4th-order modulation camera without pre-training and an LED light on / off state diagram corresponding to each symbol level of an embodiment of the present invention;

[0051] Figure 4 It is an algorithm flow chart of a visible light communication demodulation method of a 4th-order modulation camera without pre-training according to the present invention;

[0052] Figure 5 It is a process diagram of a step-by-step iterative polynomial fitting algorithm for a visible light communication demodulation method of a 4th-order modulation camera without pre-training according to the present invention;

[0053] Figure 6 This is a result diagram of a step-by-step iterative polynomial fitting algorithm for a visible light communication demodulation method of a 4th-order modulation camera without pre-training according to the present invention;

[0054] Figure 7 It is a BER curve diagram obtained by using different algorithms in a visible light communication demodulation method of a 4th-order modulation camera without pre-training and an embodiment of the present invention; DETAILED DESCRIPTION

[0055] The following is a detailed description of a visible light communication demodulation method for a 4th-order modulation camera without pre-training according to the present invention in conjunction with the accompanying drawings and specific embodiments.

[0056] Example 1

[0057] This embodiment adopts the method of the present invention to build a visible light communication system. The system described in this embodiment includes a signal source, a data conversion module, an LED driving circuit, an LED light source, a camera, an image preprocessing module, a step-by-step iterative polynomial fitting module, and an outlier recognition module. The system structure diagram is shown in the attached figure. Figure 1 As shown;

[0058] The information source module includes a computer a;

[0059] Wherein, computer a is used to generate the data to be sent and send the data to the data conversion module;

[0060] The data conversion module includes an FPGA development board;

[0061] The FPGA development board uses the received source data as the payload data, and adds synchronization data and pilot data to form a data frame. The data frame structure is shown in the attached figure. Figure 2 As shown, NRZ is a non-return-to-zero format and RZ is a return-to-zero format; at the same time, every two bits form a group to control the corresponding four-level signal;

[0062] The LED driver circuit contains an amplifier circuit composed of 15 N-MOS, which amplifies the output level of the data conversion module to control the on and off of the LED lights on the LED light board. The LED light on and off status corresponding to each symbol level is shown in the attached figure. Figure 3 As shown;

[0063] The LED light panel contains 15 white light LEDs with a power of 1W;

[0064] The camera uses the rear camera of the Honor 10 phone;

[0065] Among them, the resolution of the picture taken by the camera is 4608×3456, and the camera sends the taken picture to the picture preprocessing module;

[0066] The image preprocessing module, the step-by-step iterative polynomial fitting module and the outlier identification module are method programs in computer b;

[0067] Among them, the image preprocessing module grayscales the image sent by the camera, extracts the required grayscale value sequence, and sends it to the step-by-step iterative polynomial fitting module; the step-by-step iterative polynomial fitting module performs 4th-order polynomial fitting on the symbol levels "3, 0, 2, 1" in the 4ASK signal in turn, and solves the nonlinear problem in the LED multi-level modulation through iterative fitting, and classifies the payload grayscale value points into different symbol levels; the outlier recognition algorithm detects and filters the abnormal points in the classified grayscale value sequence and completes the reclassification, and finally outputs the classified grayscale value points;

[0068] The visible light communication demodulation method of the 4th order modulation camera is as shown in the attached Figure 4 As shown, the specific steps are as follows:

[0069] Step A, the information source is used to generate and transmit user data, which is a "0" "1" bit sequence; the data conversion module receives the transmitted user data as the payload data, and then adds the synchronization data and the pilot data to form a data frame; at the same time, every two bits are grouped together to control the generation of the corresponding four-level signal; the LED driving circuit receives the four-level signal from the data conversion module, amplifies it, and controls the corresponding LED on the LED light source to light up and emit a visible light signal; the camera is responsible for collecting the visible light signal emitted by the LED light source, storing it as an image and sending it to the image preprocessing module; the image preprocessing module performs grayscale value processing on the image collected by the camera, extracts the required grayscale value sequence and obtains the image grayscale values ​​of the four symbol levels "3", "2", "1" and "0" of the payload;

[0070] Step B, use the step-by-step iterative polynomial fitting to extract the gray value points of symbol level "3": perform a 4th-order polynomial fitting on all the gray value points of the payload to obtain the fitting curve L1, and filter out the gray value points of the payload below the curve L1, as shown in the attached figure. Figure 5 (a); then, the gray value points of the effective load after filtering are fitted with a 4th-order polynomial again to obtain the fitting curve L2; the midline M1 between L1 and L2 is taken, and the gray value points of the effective load below M1 are filtered out, as shown in the attached figure. Figure 5 (b) as shown; Figure 5 (c) shows the result after repeating the above operation twice; the process is repeated four times in total, and the remaining payload gray value points are classified into symbol level "3";

[0071] Step C, use step-by-step iterative polynomial fitting to extract grayscale value points of symbol level "0": perform a 4th-order polynomial fitting on all payload grayscale value points to obtain a fitting curve L1, and filter out the payload grayscale value points above the curve L1; then, perform a 4th-order polynomial fitting on the filtered payload grayscale value points again to obtain a fitting curve L0; take the midline M0 between L1 and L0, and filter out the payload grayscale value points above M0; repeat this process four times, and classify the remaining payload grayscale value points into symbol level "0";

[0072] Step D, using step-by-step iterative polynomial fitting to extract grayscale value points of symbol level "2" and "1": after obtaining grayscale value points of symbol level "3" and "0", these two types of grayscale value points are filtered out, and only the remaining grayscale value points are fitted with a 4th-order polynomial, and the points above the fitting curve are classified as grayscale value points of symbol level "2", and the points below the fitting curve are classified as grayscale value points of symbol level "1";

[0073] Step E, after completing the symbol level gray value point classification using step-by-step iterative polynomial fitting, perform a 4th order polynomial fitting on the gray value points of each symbol level, and calculate the distance between all gray value points of each symbol level and the corresponding fitting curve; the fitting curve F(l) is actually a 1×N matrix:

[0074] F(l)=[f(l,1)f(l,2)…f(l,i)…f(l,N)] (1)

[0075] Where l represents the symbol level, which is "3", "2", "1" or "0". f(l,i) represents the grayscale value of the fitting curve of the i-th column of the image, and N is the total number of columns in the image, which is 3456 in this embodiment.

[0076] Step F: define the matrix C(l) to represent the column index of the gray value point of the payload, and the matrix G(l) to represent the corresponding gray value:

[0077]

[0078] Where c(l,i) represents the column of the i-th gray value point in symbol level l, g(l,i) represents the gray value of the gray value point, and n is the total number of gray value points in the payload with symbol level l. Figure 6 In the figure, the coordinates of all payload gray value points (all diamonds) with symbol level "2" can be expressed as (c(2,i),g(2,i)), and the coordinates of the first payload gray value point with symbol level "2" are (c(2,1),g(2,1)).

[0079] Step G: Calculate the distance between each payload gray value point with symbol level l and the corresponding fitting curve F(l) to obtain the fitting error matrix Δ(l):

[0080]

[0081] Step H: Calculate the difference between each point in the matrix Δ(l) and its previous adjacent point to generate the matrix D(l):

[0082]

[0083] Step I: Compare the D(l) value with the threshold matrix T(l) to further analyze the points exceeding the threshold; the choice of threshold varies according to different symbol levels; use matrix T(l) to represent the threshold:

[0084] T(l)=[t(l,1)t(l,2)…t(l,i)…t(l,n-1)] (5)

[0085] Step J: filter outliers at symbol level "3", and use half of the grayscale value difference between symbol levels "3" and "2" as the threshold; use the grayscale value difference P(3)-P(2) between pilot symbol "3" and pilot symbol "2" as the grayscale value difference between symbol levels "3" and "2", and apply the normalization factor g(3,i) / P(3) to adjust the threshold:

[0086]

[0087] If |d(3,i)|>t(3,i), and there is a value less than 0 in δ(3,i+1) and δ(3,i), then the smaller payload gray value point of the two values ​​is filtered out; that is, if δ(3,i)<δ(3,i+1), then the i-th point is filtered out; otherwise, the i+1-th point is filtered out.

[0088] Step K, filter outliers of symbol level "0"; for symbol level "0", there is already a fitting curve of symbol level "3" as a reference; use one third of the difference between the fitting curves of symbol level "3" and "0" as the difference between symbol level "1" and "0", and use half of the difference as the threshold; the threshold calculation formula of symbol level "0" is as follows:

[0089]

[0090] If d(0,i)|>t(0,i) and there is a value greater than 0 in δ(0,i) and δ(0,i+1), the larger payload gray value point of the two values ​​is filtered out.

[0091] Step L, filter outliers at symbol level "2"; first determine whether the grayscale value of the payload at the i-th symbol level "2" is close to the fitting curve at symbol level "3"; at this time, there are fitting curves at symbol levels "3", "0" and "2" respectively; use half of the difference between the fitting curves at symbol levels "2" and "0" as the difference between symbol levels "2" and "1"; if f(3,c(2,i))-f(2,c(2,i))<(f(2,c(2,i))-f(0,c(2,i))) / 2, then it is considered that the grayscale value of the payload at symbol level "2" is close to the fitting curve at symbol level "3"; at this time, set half of the difference between the c(2,i)th column of the fitting curves at symbol levels "3" and "2" as the threshold for determining the grayscale value point of the payload at the i-th symbol level "2":

[0092]

[0093] In this case, if |d(2,i)|>t(2,i) and there is a value greater than 0 in δ(2,i) and δ(2,i+1), the larger payload grayscale value point of the two values ​​is filtered out; conversely, if the curve deviates from "3", half of the difference between the c(2,i)th column of the fitting curves of symbol levels "2" and "1" is set as the threshold for determining the payload grayscale value of the i-th symbol level "2"; since half of the difference between the fitting curves of symbol levels "2" and "0" is used as the difference between symbol levels "2" and "1", the following formula is used to calculate the threshold:

[0094]

[0095] In this case, if |d(2,i)|>t(2,i) and there is a value less than 0 in δ(2,i) and δ(2,i+1), the smaller payload gray value point of the two values ​​is filtered out.

[0096] Step M: filter outliers of symbol level "1"; if f(2,c(1,i))-f(1,c(1,i))<f(1,c(1,i))-f(0,c(1,i)), use the following formula to calculate the threshold:

[0097]

[0098] In this case, if |d(1,i)|>t(1,i) and there is a value greater than 0 in δ(1,i) and δ(1,i+1), the larger payload gray value point of the two values ​​is filtered out; conversely, if f(2,c(1,i))-f(1,c(1,i))≥f(1,c(1,i))-f(0,c(1,i)), the threshold is calculated using the following formula:

[0099]

[0100] In this case, if |d(1,i)|>t(1,i) and there is a value less than 0 in δ(1,i) and δ(1,i+1), the smaller payload gray value point of the two values ​​is filtered out.

[0101] Step N, re-judge the filtered points; make a difference between their grayscale values ​​and the values ​​on the corresponding columns of the fitting curves with symbol levels of "3", "2", "1" and "0", and take the absolute value; if the absolute value of the difference between the point and the fitting curve with symbol level "3" is the smallest, then re-judge this grayscale value point as symbol level "3"; if the absolute value of the difference between the point and the fitting curve with symbol level "2" is the smallest, then re-judge this grayscale value point as symbol level "2"; if the absolute value of the difference between the point and the fitting curve with symbol level "1" is the smallest, then re-judge this grayscale value point as symbol level "1"; if the absolute value of the difference between the point and the fitting curve with symbol level "0" is the smallest, then re-judge this grayscale value point as symbol level "0".

[0102] At this point, from step A to step N, a 4ASK-OCC demodulation method without pre-training is completed.

[0103] Attached Figure 7 The bit error rates and corresponding illuminations obtained by the trained threshold matrix (TTM) algorithm, pilot-assisted k-means (PAK) algorithm, and the algorithm of the present invention at different distances are shown. The trained threshold matrix (TTM) algorithm uses training data to pre-train thresholds for different light levels to achieve data demodulation. The pilot-assisted k-means (PAK) algorithm pre-sets the initial mean and then uses the k-means algorithm for data demodulation. In order to demonstrate the performance of the step-by-step iterative polynomial fitting and outlier identification algorithm (SIPF+OPI), the scheme is compared with the PAK and TTM methods in the 4CASK-OCC system. From the attached Figure 7 As can be seen from the figure, at a shorter transmission distance (less than 125 cm), the TTM algorithm performs well with almost no bit errors. However, when the transmission distance reaches 275 cm, the bit error rate using the TTM algorithm increases to 4.23×10 -3 , exceeding the 7% FEC limit. Since this embodiment uses LED lights instead of LED light strips and the transmission distance is long, the PAK algorithm cannot be directly applied. Therefore, the uneven illumination compensation (UIC) algorithm is first used to compensate the acquired grayscale curve, and the initial mean is set using the pilot symbol grayscale value. Then the PAK algorithm is used for experiments. As can be seen from the figure, the UIC+PAK algorithm achieves nearly error-free transmission at distances below 125cm. However, when the transmission distance reaches 300cm, the bit error rate increases to 5.33×10 -3 , exceeding the 7% FEC limit. When the transmission distance is 325cm and the illumination is 99lux, the bit error rate of the SIPF+OPI algorithm proposed in the present invention is 2.58×10 -3, meeting the 7% FEC limit. Experimental results show that the proposed algorithm has significant improvements compared with the TTM algorithm and the UIC+PAK algorithm. In addition, unlike the TTM algorithm and the UIC+PAK algorithm, the proposed algorithm does not require pre-training.

[0104] In summary, the above are only preferred embodiments of the present invention and are not intended to limit the protection scope of the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the protection scope of the present invention.

Claims

1. A visible light communication demodulation method for a 4th-order modulation camera without pre-training, characterized in that: The visible light communication system it relies on includes a signal source, a data conversion module, an LED driving circuit, an LED light source, a camera, an image preprocessing module, a step-by-step iterative polynomial fitting module, and an outlier recognition module; The 4th-order modulation camera visible light communication demodulation method specifically comprises the following steps: Step 1: The information source is used to generate and transmit user data, which is a "0" "1" bit sequence; the data conversion module receives the transmitted user data as payload data, and then adds synchronization data and pilot data to form a data frame; at the same time, every two bits are a group, and the corresponding four-level signal is controlled to be generated; The LED driving circuit receives the four-level signal from the data conversion module, controls the corresponding LED on the LED light source to turn on and off after amplification, and emits a visible light signal; the camera is responsible for collecting the visible light signal emitted by the LED light source, storing it as an image and sending it to the image preprocessing module; The image preprocessing module processes the grayscale value of the image captured by the camera, extracts the required grayscale value sequence and obtains the image grayscale values ​​of the four symbol levels "3", "2", "1" and "0" of the payload; Step 2: Use iterative polynomial fitting to extract grayscale value points of symbol level "3": perform a 4th-order polynomial fitting on all the grayscale value points of the payload to obtain a fitting curve, and filter out the grayscale value points below the curve; then perform a 4th-order fitting and outlier filtering operation, and classify the remaining grayscale value points into symbol level "3"; Step 3: Use step-by-step iterative polynomial fitting to extract grayscale value points of symbol level "0": perform a 4th-order polynomial fitting on all payload grayscale value points to obtain a fitting curve, and filter out the grayscale value points above the curve; then perform a 4th-order fitting and outlier filtering operation, and classify the remaining grayscale value points into symbol level "0"; Step 4. Use step-by-step iterative polynomial fitting to extract grayscale value points of symbol level "2" and "1": After obtaining the grayscale value points of symbol level "3" and "0", these two types of grayscale value points are filtered out, and only the remaining grayscale value points are fitted with a 4th-order polynomial. At the same time, the points above the fitting curve are classified as grayscale value points of symbol level "2", and the points below the fitting curve are classified as grayscale value points of symbol level "1"; Step 5: After completing the classification of symbol-level grayscale value points using step-by-step iterative polynomial fitting, perform a 4th-order polynomial fitting on the grayscale value points of each symbol level, and calculate the distance between all grayscale value points of each symbol level and the corresponding fitting curve; the fitting curve F(l) is actually a 1×N matrix: F(l)=[f(l,1)f(l,2)…f(l,i)…f(l,N)] (1) Where l represents the symbol level, which is "3", "2", "1", "0"; f(l,i) represents the grayscale value of the fitting curve of the i-th column of the image, and N is the total number of columns in the image; Step 6: Define the matrix C(l) to represent the column index of the gray value point of the payload, and the matrix G(l) to represent the corresponding gray value: Where c(l,i) represents the column of the i-th gray value point in symbol level l, g(l,i) represents the gray value of the gray value point, and n is the total number of gray value points in the payload with symbol level l; Step 7: Calculate the distance between each payload gray value point with symbol level l and the corresponding fitting curve F(l) to obtain the fitting error matrix Δ(l): Step 8. Calculate the difference between each point in the matrix Δ(l) and its previous adjacent point to generate the matrix D(l): Step 9: Compare the D(l) value with the threshold matrix T(l) to further analyze the points exceeding the threshold; the choice of threshold varies according to different symbol levels; use matrix T(l) to represent the threshold: T(l)=[t(l,1)t(l,2)…t(l,i)t(l,n-1)] (5) Step 10: Filter outliers of symbol level "3" and use half of the difference between the grayscale values ​​of symbol levels "3" and "2" as the threshold; if |d(3,i)|>t(3,i), and there is a value less than 0 in δ(3,i+1) and δ(3,i), filter out the smaller payload grayscale value point of the two values; that is, if δ(3,i)<δ(3,i+1), filter out the i-th point; otherwise, filter out the i+1-th point; Step 11, filter outliers of symbol level "0"; calculate the difference between the grayscale values ​​of symbol levels "1" and "0", and use half of the difference as the threshold; if |d(0,i)|>t(0,i) and there is a value greater than 0 in δ(0,i) and δ(0,i+1), filter out the larger payload grayscale value point between the two values; Step 12, filter outliers of symbol level "2"; first determine whether the payload grayscale value of the i-th symbol level "2" is close to the fitting curve of symbol level "3"; use different formulas to calculate the threshold of symbol level "2" according to whether it is close or not; if it is close to symbol level "3", |d(2,i)|>t(2,i) and there is a value greater than 0 in δ(2,i) and δ(2,i+1), then filter out the larger payload grayscale value point of the two values; if it is far from symbol level "3", |d(2,i)|>t(2,i) and there is a value less than 0 in δ(2,i) and δ(2,i+1), then filter out the smaller payload grayscale value point of the two values; Step 13: Filter outliers of symbol level "1"; if f(2,c(1,i))-f(1,c(1,i))<f(1,c(1,i))-f(0,c(1,i)), use the following formula to calculate the threshold: In this case, if |d(1,i)|>t(1,i) and there is a value greater than 0 in δ(1,i) and δ(1,i+1), the larger payload gray value point of the two values ​​is filtered out; conversely, if f(2,c(1,i))-f(1,c(1,i))≥f(1,c(1,i))-f(0,c(1,i)), the threshold is calculated using the following formula: In this case, if |d(1,i)|>t(1,i) and there is a value less than 0 in δ(1,i) and δ(1,i+1), the smaller payload gray value point of the two values ​​is filtered out; Step 14, re-judge the filtered points; make a difference between their grayscale values ​​and the values ​​on the corresponding columns of the fitting curves with symbol levels of "3", "2", "1", and "0", and take the absolute value; if the absolute value of the difference between the point and the fitting curve with symbol level "3" is the smallest, then re-judge this grayscale value point as symbol level "3"; if the absolute value of the difference between the point and the fitting curve with symbol level "2" is the smallest, then re-judge this grayscale value point as symbol level "2"; if the absolute value of the difference between the point and the fitting curve with symbol level "1" is the smallest, then re-judge this grayscale value point as symbol level "1"; if the absolute value of the difference between the point and the fitting curve with symbol level "0" is the smallest, then re-judge this grayscale value point as symbol level "0".

2. According to claim 1, a 4th order modulation camera visible light communication demodulation method without pre-training is characterized in that: In step 1, the synchronization symbol is "0330", and the corresponding bit data is "00111100"; the pilot symbol is "312", and the corresponding bit data is "110110"; the LED light source has a total of x LED beads, of which y LED beads are used for signal carrying, y≤x; the bit data "11" corresponds to y LED beads lighting up; the bit data "10" corresponds to LED lamp beads light up; bit data "01" corresponds to The bit data "00" corresponds to 0 LED beads being lit.

3. According to claim 1, a 4th order modulation camera visible light communication demodulation method without pre-training is characterized in that: In step 2, the payload gray value points are fitted and filtered, and the process is as follows: a fourth-order polynomial is fitted to all the payload gray value points to obtain the fitting curve L1, and the payload gray value points below the curve L1 are filtered out; then, a fourth-order polynomial is fitted to the filtered payload gray value points again to obtain the fitting curve L2; the midline M1 between L1 and L2 is taken, and the payload gray value points below M1 are filtered out; this process is repeated four times, and the remaining payload gray value points are classified into symbol level "3".

4. According to claim 1, a 4th order modulation camera visible light communication demodulation method without pre-training is characterized in that: In step 10, half of the difference between the grayscale values ​​of symbol levels "3" and "2" is calculated, the difference between the grayscale values ​​of pilot symbol "3" and pilot symbol "2" P(3)-P(2) is used as the difference between the grayscale values ​​of symbol levels "3" and "2", and the normalization factor g(3,i) / P(3) is applied to adjust the threshold:

5. According to claim 1, a 4th order modulation camera visible light communication demodulation method without pre-training is characterized in that: In step 11, for symbol level "0", the fitting curve of symbol level "3" is already used as a reference; one third of the difference between the fitting curves of symbol levels "3" and "0" is used as the difference between symbol levels "1" and "0", and half of the difference is used as the threshold; the threshold calculation formula for symbol level "0" is as follows:

6. The method for demodulating visible light communication of a 4th-order modulation camera without pre-training according to claim 1, characterized in that: In step 12, the specific steps are as follows: first determine whether the gray value point of the payload of the i-th symbol level "2" is close to the fitting curve of the symbol level "3"; at this stage, there are already fitting curves of the symbol levels "3", "0" and "2" respectively; use half of the difference between the fitting curves of the symbol levels "2" and "0" as the difference between the symbol levels "2" and "1"; if f(3,c(2,i))-f(2,c(2,i))<(f(2,c(2,i))-f(0,c(2,i))) / 2, then it is considered that the gray value of the payload of the symbol level "2" is close to the fitting curve of the symbol level "3"; at this time, half of the difference between the c(2,i)th column of the fitting curves of the symbol levels "3" and "2" is set as the threshold for judging the gray value point of the payload of the i-th symbol level "2": In this case, if |d(2,i)|>t(2,i) and there is a value greater than 0 in δ(2,i) and δ(2,i+1), the larger payload grayscale value point of the two values ​​is filtered out; conversely, if the curve deviates from the fitting curve of symbol level "3", half of the difference between the c(2,i)th column of the fitting curves of symbol levels "2" and "1" is set as the threshold for determining the payload grayscale value of the i-th symbol level "2"; since half of the difference between the fitting curves of symbol levels "2" and "0" is used as the difference between symbol levels "2" and "1", the following formula is used to calculate the threshold: In this case, if |d(2,i)|>t(2,i) and there is a value less than 0 in δ(2,i) and δ(2,i+1), the smaller payload gray value point of the two values ​​is filtered out.