Signal processing method and device based on sequence, equipment, medium and product
By pre-generating intermediate states of pseudo-random sequences and storing them in a lookup table, the starting state can be quickly determined based on a specified starting position. This solves the problems of delay and low efficiency in pseudo-random sequence generation in existing technologies, and achieves rapid generation and efficient signal processing.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHANGHAI ZHIYU XINXING TECHNOLOGY CO LTD
- Filing Date
- 2026-01-19
- Publication Date
- 2026-04-21
AI Technical Summary
Existing pseudo-random sequence generation processes suffer from computational latency and wasted computational resources in communication systems, especially in scenarios involving fast random access or beam switching, and cannot meet the requirements of low latency and high efficiency.
By pre-generating intermediate states of a pseudo-random sequence and storing them in a lookup table, the starting state is quickly determined based on the specified starting position, thus generating a pseudo-random sequence.
It enables rapid generation of pseudo-random sequences, reduces computational latency and power consumption, improves signal processing efficiency, and is suitable for power-sensitive terminal devices.
Smart Images

Figure CN121900726A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a sequence-based signal processing method, apparatus, device, medium, and product. Background Technology
[0002] In wireless communication systems, pseudo-random sequences (such as m-sequences and Gold sequences) are widely used in processes such as spread spectrum, scrambling, channelization, synchronization, and random access. For example, in 4G Long Term Evolution (LTE) and 5G New Radio (NR) technologies, uplink and downlink reference signals, synchronization signals, etc., all rely on specifically generated Gold sequences to ensure their low autocorrelation and cross-correlation characteristics. The existing Gold sequence generation process involves using a linear feedback shift register (LINER Shift Register)... The register state of the shift register (LFSR) is initialized to a fixed non-all-zero initial value. Then, starting from the initial time, it shifts sequentially according to the clock tick, outputting the value of one shift register after each shift. The characteristic of this process is that when the communication device needs to generate a sequence from a non-zero, arbitrary start time, it needs to start from the initial time, sequentially calculating and discarding the values of each shift register before the previous start time, until the clock drives the start time, at which point the required pseudo-random sequence is output. This process can be called a "warm-up" or "catch-up" process. Therefore, the generation process of the Gold sequence is a strictly sequential generation process. The generator's state is time-dependent; each subsequent state completely depends on the previous state. Each generation requires calculating all intermediate states step-by-step, serially, starting from the initial time. The "warm-up" process cannot be skipped, resulting in an inherent computational delay when generating sequences from arbitrary start points.
[0003] In current and future communication systems, scenarios requiring rapid random access or rapid beam switching involve numerous and complex signals. If the starting position is very large (for example, in 5G NR, a symbol may contain a large amount of subcarrier data, and when generating a sequence from the later subcarrier data), the "catching up" process requires a large number of clock cycles or computational steps, which cannot meet the requirements of low latency response in high-speed communication systems. Furthermore, calculating and discarding a large number of unnecessary intermediate values wastes the processor's computing power (CPU cycles) and power consumption. For battery-powered terminal devices, this will significantly reduce their battery life.
[0004] Overall, the existing sequence generation process is inefficient, which leads to low signal processing efficiency. This deficiency is particularly pronounced when the system needs to frequently generate short sequences from different starting points for signals, thus limiting the overall system throughput. Summary of the Invention
[0005] This application provides a sequence-based signal processing method, apparatus, device, medium, and product to achieve rapid generation of sequences and improve signal processing efficiency.
[0006] In a first aspect, embodiments of this application provide a sequence-based signal processing method, including: An intermediate state is read from a lookup table based on the starting position specified for the pseudo-random sequence, wherein the lookup table is used to store multiple intermediate states obtained by pre-generating the pseudo-random sequence, each of the intermediate states being a sequence snapshot at a corresponding time point during the pre-generation of the pseudo-random sequence; Based on the intermediate state and the offset between the position corresponding to the intermediate state and the starting position, the starting state corresponding to the starting position is determined; Generate a pseudo-random sequence based on the initial state; The communication signal is processed based on the pseudo-random sequence.
[0007] Secondly, embodiments of this application also provide a sequence-based signal processing apparatus, comprising: A lookup module is used to read an intermediate state from a lookup table based on a starting position specified for the pseudo-random sequence, wherein the lookup table is used to store multiple intermediate states obtained by pre-generating the pseudo-random sequence, each intermediate state corresponding to a position in the process of pre-generating the pseudo-random sequence; A state loading module is used to determine the starting state corresponding to the starting position based on the intermediate state and the offset between the position corresponding to the intermediate state and the starting position. The sequence generation module is used to generate a pseudo-random sequence based on the initial state; A signal processing module is used to process communication signals based on the pseudo-random sequence.
[0008] Thirdly, embodiments of this application provide an electronic device, including: One or more processors; Storage device for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the sequence-based signal processing method as described in the first aspect.
[0009] Fourthly, embodiments of this application also provide a computer-readable storage medium having a computer program stored thereon that, when executed by a processor, implements the sequence-based signal processing method as described in the first aspect.
[0010] Fifthly, embodiments of this application also provide a computer program product, including a computer program and / or instructions, which, when executed by a processor, implement the sequence-based signal processing method as described in any of the above embodiments.
[0011] This application provides a sequence-based signal processing method, apparatus, device, medium, and product. The sequence-based signal processing method includes: reading an intermediate state from a lookup table based on a specified starting position for a pseudo-random sequence, wherein the lookup table stores multiple intermediate states obtained by pre-generating a pseudo-random sequence, each intermediate state being a sequence snapshot at a corresponding time point during the pre-generation of the pseudo-random sequence; determining a starting state corresponding to the starting position based on the intermediate state and the offset between the position of the intermediate state and the starting position; generating a pseudo-random sequence based on the starting state; and processing a communication signal based on the pseudo-random sequence. This technical solution utilizes a lookup table to pre-store intermediate states during the pre-generation of the pseudo-random sequence. When processing communication signals, the starting state can be quickly determined based on a specified starting position using the corresponding intermediate states, thereby quickly generating a pseudo-random sequence and processing the communication signal. Pseudo-random sequences can be quickly generated for any starting position, improving the efficiency of sequence generation and signal processing. Attached Figure Description
[0012] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale.
[0013] Figure 1 A flowchart illustrating a sequence-based signal processing method provided in this application embodiment; Figure 2 A schematic diagram of a sequence-based signal processing device provided in this application embodiment; Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0014] The present application will now be described in further detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the application and not intended to limit it. Furthermore, it should be noted that, for ease of description, the accompanying drawings show only the parts relevant to the present application, not the entire structure.
[0015] Before discussing the exemplary embodiments in more detail, it should be noted that some exemplary embodiments are described as processes or methods depicted as flowcharts. Although the flowcharts describe the steps as sequential processes, many of these steps can be performed in parallel, concurrently, or simultaneously. Furthermore, the order of the steps can be rearranged. The process can be terminated when its operation is complete, but may also have additional steps not included in the figures. The process can correspond to a method, function, procedure, subroutine, subroutine, etc.
[0016] It should be noted that the concepts of "first" and "second" mentioned in the embodiments of this application are only used to distinguish different devices, modules, units or other objects, and are not used to limit the order of functions performed by these devices, modules, units or other objects or their interdependencies.
[0017] Furthermore, the embodiments and features described in this application may be combined with each other, unless otherwise specified.
[0018] The acquisition, storage, use, and processing of data in this application all comply with the relevant provisions of national laws and regulations.
[0019] It should be noted that in the embodiments of this application, certain software, components, models and other existing solutions in the industry may be mentioned. These should be regarded as exemplary and are only intended to illustrate the feasibility of implementing the technical solution of this application. However, it does not mean that the applicant has used or necessarily used the relevant content of the solution.
[0020] Figure 1 This is a flowchart illustrating a sequence-based signal processing method provided in an embodiment of this application. This embodiment is applicable to situations where communication signals are processed based on generated sequences. Specifically, this sequence-based signal processing method can be executed by a sequence-based signal processing device, which can be implemented through software and / or hardware and integrated into an electronic device. The electronic device includes, but is not limited to, computers, smartphones, host computers, or servers.
[0021] like Figure 1 As shown, the method specifically includes the following steps: S110. Based on the starting position specified for the pseudo-random sequence, read an intermediate state from a lookup table, wherein the lookup table is used to store multiple intermediate states obtained by pre-generating the pseudo-random sequence, and each intermediate state is a sequence snapshot at a corresponding time point during the pre-generating pseudo-random sequence. In this embodiment, when processing communication signals, for example, when generating uplink or downlink reference signals in a wireless communication system, or when scrambling or descrambling signals, a shift register can be used to generate a pseudo-random sequence for processing the communication signals. In this embodiment, the pseudo-random sequence mainly refers to the Gold sequence. For ease of description, the actual pseudo-random sequence used for processing the communication signals can be denoted as Sq1, and the pre-generated pseudo-random sequence can be denoted as Sq. 0。
[0022] In this embodiment, the pre-generation of Sq0 can be completed before the actual generation of Sq1, and the intermediate states at different time points in Sq0 can be pre-stored in a look-up table (LUT). When generating Sq1, a starting position can be specified for it (denoted as ). This starting position can be used to indicate which intermediate state of Sq0 to start generating Sq1.
[0023] For example, when pre-generating Sq0, starting from the standard starting position (n=0), based on certain functions and operations, n=1, n=2, n=3, n=4...n= The value of the shift register corresponding to the given time point. This is the maximum value in Sq0 that can be recorded as an intermediate state (or a starting position can be specified). During this process, snapshots of the sequence taken at several points in time (the sequence snapshots are used to record the current value of the shift register) can be stored as intermediate states in the lookup table.
[0024] For example, the sequence value corresponding to the standard starting position (n=0) is used as the standard starting state. Stored in a lookup table, at the time point corresponding to n=1, the current intermediate state is... Stored in a lookup table; at the time point corresponding to n=3, the current intermediate state is... Stored in a lookup table; at the time point corresponding to n=5, the current intermediate state is... The intermediate states at different points in time are stored in a lookup table, and so on. For Sq0, the intermediate states at different points in time are stored in the lookup table for lookup and use when generating Sq1. The intermediate state at any point in time can be the value of the shift register used to generate the pseudo-random sequence at the corresponding point in time. This shift register is, for example, an LFSR.
[0025] Based on this, when generating Sq1, the starting position is specified. , If it is a non-negative integer, it can be found in the lookup table. Previous, and A relatively close intermediate state, from which further determination can be made. The corresponding initial state. For example, specifying... =4, which means specifying that Sq1 should be generated starting from position n=4 in Sq0, and intermediate states can be read from the lookup table. That is, the value of the shift register at the time point n=3, based on which the value at time n=3 is determined. The starting state corresponding to the position.
[0026] It is understandable that different intermediate states can be separated by one or more positions, each position corresponding to a shift register value and a specific time point. For example, an intermediate state can be recorded every time a shift register value is obtained, or every time two shift register values are obtained, etc. The fewer the number of positions between different intermediate states (which can also be understood as the step size for recording intermediate states), the less data processing is required during the pre-generation of the pseudo-random sequence, resulting in a smaller LUT. The more positions between different intermediate states (which can also be understood as the step size for recording intermediate states), the faster Sq1 can be generated in real time based on Sq0. Furthermore, the intervals between different intermediate states can be equal, for example, two positions in the above example, meaning an intermediate state can be recorded every two shift register values. The intervals between different intermediate states can also be unequal, meaning the number of positions can be different, for example, an intermediate state can be recorded at positions n=1, n=2, and n=5, etc. This embodiment does not specifically limit the positions between different intermediate states.
[0027] S120. Based on the intermediate state and the offset between the position corresponding to the intermediate state and the starting position, determine the starting state corresponding to the starting position. In this embodiment, the intermediate state read may have a certain deviation from the specified starting position, i.e., an offset. The offset quantifies the deviation between the intermediate state read and the specified starting position. For example, the offset can be defined as the number of positions (or the difference in value in the shift register) between the intermediate state read and the specified starting position. Continuing the previous example, specifying... =4, which means specifying that Sq1 should be generated starting from position n=4 in Sq0, and the intermediate state should be read from the lookup table. That is, the value in the shift register at the time point n=3, this intermediate state is related to... =4 is still one position away, with an offset of 1. Therefore, based on the value in the shift register corresponding to time point n=3, the value corresponding to n=4 can be generated by applying the corresponding function and operation, resulting in... The corresponding initial state.
[0028] It should be noted that in the example above, the data read from the lookup table is... Previous, and The closest intermediate state, if what is read is not the same as... The closest intermediate state can also implement the method of this embodiment. Continuing from the previous example, specifying... =4, which means specifying that Sq1 should be generated starting from position n=4 in Sq0. If the lookup table reads an intermediate state... That is, the value in the shift register at the time point n=1, this intermediate state is related to... =4 is still 3 positions away, with an offset of 3. Therefore, based on the value in the shift register at time point n=1, we can generate the values corresponding to n=2, n=3, and n=4 sequentially according to the corresponding functions and operations, thus obtaining n= =4 corresponds to the initial state.
[0029] S130. Generate a pseudo-random sequence based on the initial state; In this embodiment, when n= Based on the corresponding initial state, n can be generated further according to the corresponding functions and operations. +1、n= +2……n= The corresponding values yield the final pseudo-random sequence Sq1 used for processing communication signals.
[0030] S140. Process the communication signal based on the pseudo-random sequence.
[0031] In this embodiment, based on the generated pseudo-random sequence Sq1, the communication signal can be processed by spreading, scrambling, channelizing, synchronizing, and random access. This embodiment does not specifically limit the type and method of processing.
[0032] This embodiment of the sequence-based signal processing method utilizes a lookup table to pre-store intermediate states in the process of generating pseudo-random sequences. When processing communication signals, the starting state can be quickly and accurately determined based on the specified starting position using the corresponding intermediate states. This allows for rapid generation of pseudo-random sequences and processing of communication signals. This process eliminates the need to generate values for each position sequentially starting from n=0; pseudo-random sequences can be generated quickly for any starting position. This reduces the time and computational load of the "warm-up" process, avoids numerous useless intermediate calculations, and lowers power consumption, making it particularly suitable for power-sensitive terminal devices and improving the efficiency of communication signal processing. Furthermore, it enhances the flexibility of pseudo-random sequence generation, supporting configurable starting positions and adapting to various communication scenarios (such as LTE uplink / downlink and 5G NR uplink / downlink). Moreover, this method can be efficiently implemented in software or embedded in hardware (such as Application-Specific Integrated Circuits (ASICs) or Field-Programmable Gate Arrays (FPGAs)) to provide extremely high processing throughput.
[0033] It should be noted that the efficiency of generating pseudo-random sequences in related technologies is relatively low, with both the average time complexity and the worst-case time complexity being O(n). The later the specified starting position, the higher the complexity. This inefficiency is particularly pronounced when the system needs to frequently generate short sequences from different starting points, limiting the overall system throughput. However, the method in this embodiment can quickly generate pseudo-random sequences from any starting position with a time complexity of only O(1). The delay of this process is significantly reduced compared to... The size of the variable is independent of the variable itself, and it depends only on a limited number of table lookups and fixed-step shift operations, which significantly improves the efficiency of pseudo-random sequence generation.
[0034] In one embodiment, the process of pre-generating a pseudo-random sequence includes: starting from a standard initial state, driving a linear feedback shift register, outputting multiple intermediate states during multiple shifts, and saving each of the intermediate states to a lookup table.
[0035] In this embodiment, the working principle of LFSR is: given the output of the previous state... The linear function of the output is used as the input to the shift register, and the next state is obtained using the generator polynomial. The output of this method is adaptable to any generator polynomial G(x) and LFSR structure and its corresponding generator polynomial, where G(x) is known prior information.
[0036] The process of pre-generating Sq0 includes starting from the standard initial state (i.e., the position where n=0, corresponding to the first value in Sq0, denoted as s0), driving the LFSR to output multiple intermediate states during multiple shifts. For example, starting from the position where n=0, an intermediate state is output every two shifts (every time two shift register values are obtained), using the shift register value corresponding to the time point where n=1 as the intermediate state. Stored in a lookup table; the value of the shift register at time point n=3 is used as an intermediate state. Stored in a lookup table; the value of the shift register at time point n=5 is used as an intermediate state. Stored in a lookup table, and so on, shifted. After this, we get n= The value of the shift register corresponding to the given time point. It is the maximum value in Sq0 that can be recorded as an intermediate state (or a starting position can be specified).
[0037] It should be noted that, typically, the specified starting position is not the last position in Sq0, therefore, It is not necessarily the maximum value at the time point corresponding to Sq0, but rather the maximum value at the time point that can be recorded as an intermediate state. The size of the shift register determines the range of the specified starting position. For example, Sq0 has a total of M shift register values, where M is a positive integer, but when recording intermediate states, it can record at most from n=0 to n= The value of the shift register corresponding to the given time point. It is a non-negative integer. <M, so when specifying the starting position, you can specify n=0 to n= Any position between, without specifying n= +1 to the positions corresponding to n=M, because Sq1 generated from these positions is too short for practical applications. If n=0 is specified, it is equivalent to generating Sq1 from the standard starting position.
[0038] In one embodiment, the process of pre-generating a pseudo-random sequence further includes: S10. Determine the range of starting positions supported by the pseudo-random sequence; S20. Divide the starting position range into at least two intervals; Accordingly, the step of outputting multiple intermediate states during multiple shifts and saving each intermediate state to a lookup table includes: during multiple shifts, after each shift a set number of times, saving the current state of the linear feedback shift register as an intermediate state to a lookup table, wherein the current state is a sequence snapshot obtained after the corresponding number of shifts.
[0039] In this embodiment, the starting position range can be determined according to the application scenario of processing communication signals (such as LTE Physical Uplink Shared Channel (PUSCH) or 5G NR Physical Downlink Shared Channel (PDSCH)). In other words, determining the specified starting position. The specified range Not exceeding For example, It can be the maximum number of subcarriers supported by a frequency band.
[0040] For example, the starting position range Divided into Each interval This is an integer greater than 1. The step size for each interval (the step size can also be understood as the span, the interval between two intermediate states, or the step size for recording intermediate states, etc.) is: ,in It is a configurable design parameter. It can be used to balance storage overhead (LUT size) and offset, for example, The larger the value, the greater the storage overhead and the smaller the offset.
[0041] Based on this, the process of pre-generating Sq0 includes starting from the standard initial state (i.e., the position where n=0, corresponding to the first value in Sq0, denoted as s0), driving the LFSR to output multiple intermediate states during multiple shifts, with each shift... Next, the current LFSR register state will be... ( From 0 to This intermediate state is saved into the LUT. The corresponding time point is The state stored in the LUT These are Sq0 in A snapshot of the sequence at a specific point in time.
[0042] In one embodiment, reading an intermediate state from a lookup table based on a starting position specified for the pseudo-random sequence includes: S1110. Determine the index of the interval containing the starting position specified for the pseudo-random sequence; S1120. Read the corresponding intermediate state from the lookup table according to the index.
[0043] For example, for a specified starting position Calculate the index of the interval in which it is located, which is also the index of the intermediate state it reads. Therefore, the pre-stored state can be read from the LUT. and will Loaded into the LFSR. At this point, the register state of the LFSR corresponds to the following time point: .
[0044] In one embodiment, the intervals are equally spaced, and the time point corresponding to the i-th intermediate state is the product of i and the interval; or, the intervals are not equally spaced, and the interval of each interval is determined according to the access frequency.
[0045] For example, the interval division can be uniform, that is, according to a fixed... The intervals are divided, meaning the intervals between different intermediate states are equal; for example, each shift... Each time (for each time) The value of the shift register at each time point records an intermediate state; the interval division can be non-uniform, i.e. The intervals between different intermediate states can be variable, meaning they can be unequal. For example, an intermediate state can be recorded at positions n=1, n=2, and n=5. Also, in frequency-domain resource areas with high access frequency, a smaller interval can be used. This reduces the offset between the intermediate state of the read and the specified starting position; for frequency domain resource areas with low access frequency, a larger offset can be used. This is to save storage space and costs.
[0046] In one embodiment, determining the initial state corresponding to the initial position based on the intermediate state and the offset between the position corresponding to the intermediate state and the initial position includes: S1210. Determine the offset between the position corresponding to the intermediate state and the starting position; S1220. Starting from the intermediate state, drive the linear feedback shift register to shift a corresponding number of times according to the offset, and take the state of the linear feedback shift register after shifting a corresponding number of times as the starting state corresponding to the starting position.
[0047] For example, the offset can be understood as the number of positions or shifts between the read intermediate state and the specified starting position. This is used when reading an intermediate state from a lookup table. Then, calculate Offset from the specified starting position Then from the intermediate state Start by driving the LFSR shift. Next, the register state of LFSR at this time is The state at that time, that is, the initial state for generating Sq1. Starting from this state, each shift will output a desired Gold sequence value.
[0048] Understandably, one way to minimize the offset between the intermediate state read and the specified starting position is to read from the lookup table... Previous, and The closest intermediate state is used to minimize offset and reduce the number of shifts required to determine the initial state. Another way to minimize offset is to set the interval between different intermediate states to one position; that is, an intermediate state is recorded every time a value is obtained from the shift register. This ensures that for a given... You can directly read from n=0 to n= The value of the shift register, in this case the offset is 0, and the intermediate state read can be directly used as n= The corresponding initial state.
[0049] The method in this embodiment of the application, the process of generating Sq1, can be divided into two stages: During the initialization phase (i.e., the phase of pre-generating Sq0), the following parameters can be defined: starting position range The number of intervals or the number of intermediate states that need to be stored. Generate the polynomial G(x); then use LFSR to output the polynomial during multiple shifts. Each intermediate state is saved to a LUT; During the runtime phase (i.e., the phase in which SQL is actually generated), based on the specified starting position... Determine the range index And read the intermediate state by looking up the table. intermediate state Loading to LFSR; from intermediate state Start by driving the LFSR shift. Next, get initial state of time From the initial state Initially, the LFSR is driven to shift until a complete Sq1 is obtained, and then Sq1 is used to process communication signals.
[0050] The following are some specific embodiments to illustrate the methods of the embodiments of this application.
[0051] In one embodiment, for the scrambling sequence of the channel estimation reference signal (DM-RS) of 5G NR PDSCH, the starting position is related to factors such as the time slot number and symbol, and the specified starting position is... It's very likely.
[0052] During the initialization phase, the base station or UE can determine G(x) and the initial state based on parameters such as cell ID and RNTI. .set up Covers all possible starting points within a wireless frame. Divide it evenly into 100 intervals, that is 101 intermediate states are pre-calculated and stored. .
[0053] Based on this, when it is necessary to generate a DM-RS sequence on a specific symbol, it is not necessary to start the calculation from n=0; it is only necessary to load the corresponding pre-stored intermediate state and then perform at most [number missing] steps. Only one shift is needed, with extremely low and constant latency.
[0054] In one embodiment, the PUSCH of different UEs in LTE may start transmitting at different times. The eNodeB needs to process uplink data from multiple UEs simultaneously, and can maintain a LUT for each UE's Gold sequence generator. The parameters of the LUT can be configured according to the UE's scheduling information (such as the starting frequency domain position). Based on this, the eNodeB can quickly generate corresponding descrambling sequences for UEs with different start times, greatly improving the efficiency and processing capacity of the base station processor.
[0055] In one embodiment, the system knows that 80% of sequence start requests occur during... Within the first 20% range (e.g., the low-frequency portion of the entire bandwidth). The first 20% can be... With smaller step size Fine division, for example, dividing into 50 intervals, and then dividing the latter 80% of the range by a larger step size. A coarse partitioning approach, for example, dividing the space into 50 intervals, stores a total of 100 intermediate states. Based on this, in frequently accessed regions, the average offset... Smaller size allows for faster sequence generation; in infrequent regions, a larger range is covered with the same amount of storage space, achieving the best trade-off between storage efficiency and runtime efficiency.
[0056] In one embodiment, the channel estimation reference signal (DM-RS) of the 5G NR PUSCH is a sequence of Low Peak to Average Power Ratio (Low PAPR), and the parameters u and v to be calculated are random numbers calculated using the gold sequence.
[0057] During the initialization phase, the base station or UE determines that u and v have 20*14 possible values based on the cell configuration. The method based on this application embodiment generates 20 initial state values in the first step. During the data transmission and reception phase, the time slot number and configured symbols are calculated. Find the closest one And smaller than it Then use Calculation via register shifting The corresponding PN output is used to obtain the u and v values.
[0058] Based on this, a balance can be achieved between the use of storage resources and computing speed by pre-computing and storing data.
[0059] The method described in this application can be applied to scenarios such as reference signal generation or signal scrambling / descrambling in the uplink or downlink of 3GPP LTE or 5G NR communication systems. The parameters involved and the content of the LUT can be hardware-fixed (optimized for a specific standard), for example, fixed in the non-volatile memory of the hardware circuit, or software-configurable (set via registers or software drivers). The number of intermediate states and their corresponding time points are configurable, the interval division can be non-uniform, and the interval step size is determined based on the access probability distribution of the sequence's starting position, providing great design flexibility. By pre-generating pseudo-random sequences and storing intermediate states during the initialization phase, and by using a core mechanism of jumping to approximate a specified starting position during the running phase, the method breaks the traditional strictly serial computation paradigm of sequence generation. It proposes a new parallel preprocessing approach based on state pre-storage and interval jumping, which is a general technical solution that can quickly jump to any starting position to generate pseudo-random sequences, successfully reducing the time complexity of the traditional serial generation method from O(…). The complexity is reduced to O(1), requiring only a small amount of table lookup time and a complexity of O( The short-distance shift time of O() can be reduced by setting appropriate parameters. By controlling the data within a very small constant range, near-instantaneous, fast sequence generation independent of the absolute position of the starting point is achieved.
[0060] Figure 2This is a schematic diagram of a sequence-based signal processing device provided in an embodiment of this application. Figure 2 As shown, the sequence-based signal processing device provided in this embodiment includes: The lookup module 210 is used to read an intermediate state from a lookup table according to the starting position specified for the pseudo-random sequence, wherein the lookup table is used to store multiple intermediate states obtained by pre-generating the pseudo-random sequence, each intermediate state corresponding to a position in the process of pre-generating the pseudo-random sequence; The state loading module 220 is used to determine the starting state corresponding to the starting position based on the intermediate state and the offset between the position corresponding to the intermediate state and the starting position. Sequence generation module 230 is used to generate a pseudo-random sequence based on the initial state; Signal processing module 240 is used to process communication signals based on the pseudo-random sequence.
[0061] This device uses a lookup table to pre-store the intermediate states of the process of generating pseudo-random sequences. When processing communication signals, it can quickly determine the starting state based on the specified starting position using the corresponding intermediate states, thereby quickly generating pseudo-random sequences and processing communication signals. Pseudo-random sequences can be quickly generated for any starting position, improving the efficiency of sequence generation and signal processing.
[0062] Based on any of the above embodiments, the process of pre-generating a pseudo-random sequence can be implemented through an initialization module. The process of pre-generating a pseudo-random sequence includes: Starting from the standard initial state, the linear feedback shift register is driven to output multiple intermediate states during multiple shifts, and each intermediate state is saved to a lookup table.
[0063] Based on any of the above embodiments, the process of pre-generating pseudo-random sequences can be implemented through an initialization module. The process of pre-generating pseudo-random sequences also includes: Determine the range of starting positions supported by the pseudo-random sequence; Divide the starting position range into at least two intervals; The process of outputting multiple intermediate states during multiple shifts and saving each intermediate state to a lookup table includes: During multiple shifts, after each shift a set number of times, the current state of the linear feedback shift register is saved as an intermediate state in a lookup table, wherein the current state is a sequence snapshot obtained after the corresponding number of shifts.
[0064] Based on any of the above embodiments, the lookup module 210 includes: A calculation unit is used to determine the index of the interval containing the starting position specified for the pseudo-random sequence; The reading unit is used to read the corresponding intermediate state from the lookup table according to the index.
[0065] Based on any of the above embodiments, each of the intervals is equally spaced, and the time point corresponding to the i-th intermediate state is the product of i and the interval; or, each of the intervals is not equally spaced, and the interval of each interval is determined according to the access frequency.
[0066] Based on any of the above embodiments, the state loading module 220 includes: An offset unit is used to determine the offset between the position corresponding to the intermediate state and the starting position; The loading unit is used to start from the intermediate state, drive the linear feedback shift register to shift a corresponding number of times according to the offset, and take the state of the linear feedback shift register after shifting a corresponding number of times as the starting state corresponding to the starting position.
[0067] The sequence-based signal processing apparatus provided in this application can be used to execute the sequence-based signal processing method provided in any of the above embodiments, and has corresponding functions and beneficial effects.
[0068] Figure 3 A schematic diagram of an electronic device 10, which can be used to implement embodiments of this application, is shown. The electronic device 10 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device 10 may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, user equipment, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the application described and / or claimed herein.
[0069] like Figure 3As shown, the electronic device 10 includes at least one processor 11 and a memory, such as a read-only memory (ROM) 12 or a random access memory (RAM) 13, communicatively connected to the at least one processor 11. The memory stores computer programs executable by the at least one processor. The processor 11 can perform various appropriate actions and processes based on the computer program stored in the ROM 12 or loaded from storage unit 18 into the RAM 13. The RAM 13 can also store various programs and data required for the operation of the electronic device 10. The processor 11, ROM 12, and RAM 13 are interconnected via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.
[0070] Multiple components in electronic device 10 are connected to I / O interface 15, including: input unit 16, such as keyboard, mouse, etc.; output unit 17, such as various types of displays, speakers, etc.; storage unit 18, such as disk, optical disk, etc.; and communication unit 19, such as network card, modem, wireless transceiver, etc. Communication unit 19 allows electronic device 10 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks and wireless networks.
[0071] Processor 11 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Processor 11 performs the various methods and processes described above.
[0072] In some embodiments, the methods described above can be implemented as a computer program tangibly contained in a computer-readable storage medium, such as storage unit 18. In some embodiments, part or all of the computer program can be loaded and / or installed on electronic device 10 via ROM 12 and / or communication unit 19. When the computer program is loaded into RAM 13 and executed by processor 11, one or more steps of the methods described above can be performed. Alternatively, in other embodiments, processor 11 can be configured to perform the methods of any of the embodiments described above by any other suitable means (e.g., by means of firmware).
[0073] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0074] Computer programs used to implement the methods of this application may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when executed by the processor, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be performed. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0075] In the context of this application, a computer-readable storage medium can be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable storage medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium can be a machine-readable signal medium. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0076] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device 10, which includes: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the electronic device 10. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0077] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), or middleware components (e.g., application servers), or frontend components (e.g., user computers with graphical user interfaces or web browsers through which users can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., communication networks). Examples of communication networks include local area networks (LANs), wide area networks (WANs), blockchain networks, and the Internet.
[0078] A computing system can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a hosting product within the cloud computing service system to address the shortcomings of traditional physical hosts and VPS services, such as high management difficulty and weak business scalability.
[0079] This application also provides a computer program product, including a computer program and / or instructions, which, when executed by a processor, implement the sequence-based signal processing method as described in any of the above embodiments.
[0080] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this application can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this application can be achieved, and this is not limited herein.
[0081] The specific embodiments described above do not constitute a limitation on the scope of protection of this application. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A sequence-based signal processing method, characterized in that, include: An intermediate state is read from a lookup table based on the starting position specified for the pseudo-random sequence, wherein the lookup table is used to store multiple intermediate states obtained by pre-generating the pseudo-random sequence, each of the intermediate states being a sequence snapshot at a corresponding time point during the pre-generation of the pseudo-random sequence; Based on the intermediate state and the offset between the position corresponding to the intermediate state and the starting position, the starting state corresponding to the starting position is determined; Generate a pseudo-random sequence based on the initial state; The communication signal is processed based on the pseudo-random sequence.
2. The method according to claim 1, characterized in that, The process of pre-generating pseudo-random sequences includes: Starting from the standard initial state, the linear feedback shift register is driven to output multiple intermediate states during multiple shifts, and each intermediate state is saved to a lookup table.
3. The method according to claim 2, characterized in that, The process of pre-generating pseudo-random sequences also includes: Determine the range of starting positions supported by the pseudo-random sequence; Divide the starting position range into at least two intervals; The process of outputting multiple intermediate states during multiple shifts and saving each intermediate state to a lookup table includes: During multiple shifts, after each shift a set number of times, the current state of the linear feedback shift register is saved as an intermediate state in a lookup table, wherein the current state is a sequence snapshot obtained after the corresponding number of shifts.
4. The method according to claim 2, characterized in that, Based on the starting position specified for the pseudo-random sequence, an intermediate state is read from the lookup table, including: Determine the index of the interval containing the starting position specified for the pseudo-random sequence; The corresponding intermediate state is read from the lookup table based on the index.
5. The method according to claim 3, characterized in that, Each of the aforementioned intervals is equally spaced, and the time point corresponding to the i-th intermediate state is the product of i and the interval; or, The intervals are not equally spaced; the interval between each interval is determined based on the access frequency.
6. The method according to claim 1, characterized in that, Based on the intermediate state and the offset between the position corresponding to the intermediate state and the starting position, the starting state corresponding to the starting position is determined, including: Determine the offset between the position corresponding to the intermediate state and the starting position; Starting from the intermediate state, the linear feedback shift register is shifted a corresponding number of times according to the offset, and the state of the linear feedback shift register after the corresponding number of shifts is taken as the starting state corresponding to the starting position.
7. A sequence-based signal processing device, characterized in that, include: A lookup module is used to read an intermediate state from a lookup table based on a starting position specified for the pseudo-random sequence, wherein the lookup table is used to store multiple intermediate states obtained by pre-generating the pseudo-random sequence, each intermediate state corresponding to a position in the process of pre-generating the pseudo-random sequence; A state loading module is used to determine the starting state corresponding to the starting position based on the intermediate state and the offset between the position corresponding to the intermediate state and the starting position. The sequence generation module is used to generate a pseudo-random sequence based on the initial state; A signal processing module is used to process communication signals based on the pseudo-random sequence.
8. An electronic device, characterized in that, include: At least one processor; A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the sequence-based signal processing method as described in any one of claims 1-6.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the sequence-based signal processing method as described in any one of claims 1-6.
10. A computer program product comprising a computer program and / or instructions, characterized in that, When the computer program and / or instructions are executed by the processor, they implement the sequence-based signal processing method as described in any one of claims 1-6.