Calibration method and device for time-interleaved analog-to-digital converter based on particle swarm optimization

By using a particle swarm optimization-based method and employing iterative calculations and differentiators for clock skew compensation, the clock skew problem of existing technologies being unable to calibrate TIADCs with arbitrary channel numbers is solved, achieving efficient TIADC clock calibration.

CN115395955BActive Publication Date: 2026-01-13XIDIAN UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202210957219.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-10
Publication Date
2026-01-13
Estimated Expiration
2042-08-10

AI Technical Summary

Technical Problem

Existing technologies cannot effectively calibrate clock skew in time-interleaved analog-to-digital converters (TIADCs) with any number of channels, especially for TIADCs with more than 2N channels.

Method used

A particle swarm optimization-based approach is adopted to determine the global optimal position by iteratively calculating the number of iterations, the velocity and position of the previous generation of particle swarms, and using a differentiator to compensate for clock deviation, thereby achieving clock calibration of the TIADC.

Benefits of technology

It enables clock calibration of TIADCs with any number of channels, improving calibration efficiency and being unrestricted by the number of channels, allowing for faster detection and calibration of clock deviations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115395955B_ABST
    Figure CN115395955B_ABST
Patent Text Reader

Abstract

The application provides a calibration method and device for a time-interleaved analog-to-digital converter based on a particle swarm optimization, which comprises the following steps: obtaining an iteration number, a last-generation particle swarm speed and a last-generation particle swarm optimal position; then, performing iterative calculation on the last-generation particle swarm speed and the last-generation particle swarm optimal position to obtain a new iteration number and a new-generation particle swarm position; when the new iteration number meets a preset iteration number, determining a global optimal position according to the last-generation particle swarm optimal position and the new-generation particle swarm position, wherein the global optimal position comprises position information with the largest fitness value in the last-generation particle swarm optimal position and the new-generation particle swarm position; and taking the global optimal position as the size and direction of the clock deviation of the TIADC, and compensating the clock deviation of the TIADC through a differentiator. The clock calibration of the TIADC with any channel number is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a clock calibration method for electronic circuits, specifically a calibration method and apparatus for a time-interleaved analog-to-digital converter based on particle swarm optimization. Background Technology

[0002] A Time-Interleaved Analog-to-Digital Converter (TIADC) can achieve high-speed serial sampling through parallel, low-speed sampling of N low-speed sub-analog-to-digital converters (ADCs). However, channel mismatches exist between different channels of each ADC in a TIADC, making channel mismatch calibration essential. Channel mismatches are further categorized into offset mismatch, gain mismatch, and clock mismatch. Clock mismatch, being related to the input frequency, is the most difficult to calibrate.

[0003] Existing technologies use autocorrelation functions to detect the magnitude and direction of clock deviations between channels and perform calibrations between channels in a specific order. However, the inventors of this invention discovered during the clock calibration of a TIADC using autocorrelation functions that this method can only calibrate 2 channels. N For TIADCs with a limited number of channels, clock calibration is not possible because there is a limitation on the number of channels, making it impossible to perform clock calibration on TIADCs with an arbitrary number of channels. Summary of the Invention

[0004] To address the problems existing in the prior art, this invention provides a calibration method and apparatus for a time-interleaved analog-to-digital converter based on particle swarm optimization, enabling clock calibration of a TIADC with any number of channels.

[0005] This invention is achieved through the following technical solution:

[0006] In one aspect, an embodiment of the present invention provides a calibration method for a time-interleaved analog-to-digital converter based on particle swarm optimization, comprising:

[0007] The iteration count, the velocity of the previous generation particle swarm, and the optimal position of the previous generation particle swarm are obtained. The velocity of the previous generation particle swarm includes the optimal update direction of the particle swarm obtained in the previous iteration. The optimal position of the previous generation particle swarm includes the optimal clock information obtained in the previous iteration. The clock information includes clock information within the clock deviation range of the time-interleaved analog-to-digital converter (TIADC). The iteration count includes the number of iterations from the initial particle swarm position to the optimal position of the previous generation particle swarm.

[0008] The velocity and optimal position of the previous generation particle swarm are iteratively calculated to obtain the new number of iterations and the position of the new generation particle swarm.

[0009] When the new iteration count meets the preset iteration count, the global optimal position is determined based on the optimal position of the previous generation particle swarm and the position of the new generation particle swarm. The global optimal position includes the position information with the largest fitness value among the optimal positions of the previous generation particle swarm and the positions of the new generation particle swarm.

[0010] The global optimal position is used as the magnitude and direction of the clock deviation of the TIADC, and the clock deviation of the TIADC is compensated by a differentiator.

[0011] Furthermore, the step of iteratively calculating the velocity and optimal position of the previous generation particle swarm to obtain the new iteration number and the position of the new generation particle swarm also includes:

[0012] Achieving next-generation particle swarm velocities;

[0013] The velocity of the new generation particle swarm is calculated as: weight × velocity of the previous generation particle swarm + c1 × rand1 × (optimal position of the previous generation particle swarm - position of the new generation particle swarm) + c2 × rand2 × (optimal position of the previous generation particle swarm - position of the new generation particle swarm), where c1 is a preset first learning factor, c2 is a preset second learning factor, rand1 is a first random number, rand2 is a second random number, and the optimal position of the previous generation particle swarm is the position corresponding to the particle with the largest fitness value among the optimal positions of the previous generation particle swarm.

[0014] The position of the new generation particle swarm is the sum of the position of the previous generation particle swarm and the velocity of the new generation particle swarm.

[0015] Furthermore, after iteratively calculating the velocity and optimal position of the previous generation particle swarm to obtain the new iteration count and the position of the new generation particle swarm, the process further includes:

[0016] Obtain boundary range information, which includes: particle swarm velocity range and TIADC clock offset range;

[0017] The velocities of each particle in the new generation particle swarm velocity and the positions of each particle in the new generation particle swarm position are compared with the boundary range information, respectively.

[0018] If it is determined that a particle position in the new generation particle swarm position is not within the range of the particle swarm position, then a position is randomly selected within the range of the particle swarm position to update the particle position in the new generation particle swarm position.

[0019] If it is determined that the velocity of a particle in the new generation particle swarm velocity is not within the range of the particle swarm velocity, then a velocity is randomly selected within the range of the particle swarm velocity to update the velocity of the particle in the new generation particle swarm velocity.

[0020] Furthermore, after comparing the velocities of each particle in the new generation particle swarm velocity and the positions of each particle in the new generation particle swarm position with the boundary range information, the method further includes:

[0021] Obtain the fitness value of the new generation individuals at each particle position in the new generation particle swarm position, and the fitness value of the previous generation individuals at each particle position in the previous generation particle swarm position.

[0022] The fitness values ​​of the new generation individuals are compared one by one with the fitness values ​​of the previous generation individuals to determine whether the fitness value of the new generation individuals is greater than the fitness value of the previous generation individuals.

[0023] If so, then maintain the particle positions in the new generation particle swarm position;

[0024] If not, the particle positions in the new generation particle swarm position are updated using the particle positions in the optimal positions of the previous generation particle swarm.

[0025] Furthermore, after comparing the fitness values ​​of the new generation individuals with those of the previous generation individuals one by one to determine whether the fitness value of the new generation individuals is greater than that of the previous generation individuals, the process further includes:

[0026] Based on the location of the new generation particle swarm, determine the overall fitness value of the new generation particle swarm location.

[0027] The overall fitness value of the new generation is compared with the overall fitness value of the previous generation to determine whether the overall fitness value of the new generation is greater than the overall fitness value of the previous generation. The overall fitness value of the previous generation includes the overall fitness value of the optimal position of the particle swarm in the previous generation.

[0028] If so, sort the fitness values ​​corresponding to the individual positions in the optimal positions of the new generation of particle swarm, and determine the individual position with the largest fitness value as the global optimal position;

[0029] If not, then sort the fitness values ​​corresponding to the individual positions in the previous generation of particle swarm optimal positions, and determine the individual position with the largest fitness value as the global optimal position.

[0030] Furthermore, the step of iteratively calculating the velocity and optimal position of the previous generation particle swarm to obtain the new iteration number and the position of the new generation particle swarm also includes:

[0031] Obtain a new iteration count, which is the iteration count plus 1;

[0032] The step of determining the global optimal position based on the optimal position of the previous generation particle swarm and the position of the new generation particle swarm also includes:

[0033] Determine whether the new iteration number is greater than or equal to the preset iteration number;

[0034] If so, then the process of using the global optimal position as the magnitude and direction of the TIADC clock deviation is executed, and the clock deviation of the TIADC is compensated by a differentiator;

[0035] If not, then perform iterative calculations of the velocity and optimal position of the previous generation particle swarm to obtain a new number of iterations and the position of the next generation particle swarm.

[0036] In one aspect, another embodiment of the present invention provides a calibration apparatus for a time-interleaved analog-to-digital converter based on particle swarm optimization, characterized in that it comprises:

[0037] The acquisition module is used to acquire the number of iterations, the velocity of the previous generation particle swarm, and the optimal position of the previous generation particle swarm. The velocity of the previous generation particle swarm includes the optimal update direction of the particle swarm obtained from the previous iteration calculation. The optimal position of the previous generation particle swarm includes the optimal clock information obtained from the previous iteration calculation. The clock information includes clock information within the clock deviation range of the time-interleaved analog-to-digital converter (TIADC). The number of iterations includes the number of iterations from the initial particle swarm position to the optimal position of the previous generation particle swarm.

[0038] The iteration module is used to iteratively calculate the velocity and optimal position of the previous generation particle swarm to obtain the new number of iterations and the position of the new generation particle swarm.

[0039] The determination module is used to determine the global optimal position based on the optimal position of the previous generation particle swarm and the position of the new generation particle swarm when the new iteration number meets the preset iteration number. The global optimal position includes the position information with the largest fitness value among the optimal positions of the previous generation particle swarm and the positions of the new generation particle swarm.

[0040] The calibration module is used to take the global optimal position as the magnitude and direction of the clock deviation of the TIADC, and to compensate for the clock deviation of the TIADC through a differentiator.

[0041] Furthermore, the iteration module is used to obtain the velocity of the next generation particle swarm; the velocity of the next generation particle swarm = weight × velocity of the previous generation particle swarm + c1 × rand1 × (optimal position of the previous generation particle swarm - position of the next generation particle swarm) + c2 × rand2 × (optimal position of the previous generation particle swarm - position of the next generation particle swarm), where c1 is a preset first learning factor, c2 is a preset second learning factor, rand1 is a first random number, rand2 is a second random number, the optimal position of the previous generation particle swarm is the position corresponding to the particle with the largest fitness value in the optimal position of the previous generation particle swarm; the position of the next generation particle swarm is the sum of the position of the previous generation particle swarm and the velocity of the next generation particle swarm.

[0042] Furthermore, the determining module is also used to acquire boundary range information, which includes: the particle swarm velocity range and the clock deviation range of the TIADC; compare the velocity of each particle in the new generation particle swarm velocity and the position of each particle in the new generation particle swarm position with the boundary range information respectively; if it is determined that a particle position in the new generation particle swarm position is not within the particle swarm position range, then a position is randomly selected within the particle swarm position range to update the particle position in the new generation particle swarm position; if it is determined that a particle velocity in the new generation particle swarm velocity is not within the particle swarm velocity range, then a velocity is randomly selected within the particle swarm velocity range to update the particle velocity in the new generation particle swarm velocity.

[0043] Furthermore, the iteration module is also used to obtain a new iteration number, which is the iteration number plus 1;

[0044] The determining module is further configured to determine whether the new iteration number is greater than or equal to the preset iteration number; if so, it executes the step of using the global optimal position as the magnitude and direction of the clock deviation of the TIADC, and compensating for the clock deviation of the TIADC through a differentiator; if not, it executes the iterative calculation of the velocity of the previous generation particle swarm and the optimal position of the previous generation particle swarm to obtain the new iteration number and the position of the new generation particle swarm.

[0045] Compared with the prior art, the present invention has the following beneficial technical effects:

[0046] The calibration method for a time-interleaved analog-to-digital converter (TIADC) based on particle swarm optimization (PSO) provided in this invention involves obtaining the number of iterations, the previous generation PSO velocity, and the previous generation PSO optimal position. The previous generation PSO velocity includes the optimal update direction obtained from the previous iteration calculation, and the previous generation PSO optimal position includes the optimal clock information obtained from the previous iteration calculation. The clock information includes clock information within the clock deviation range of the TIADC. The number of iterations includes the number of iterations from the initial PSO position to the previous generation PSO optimal position. Next, the previous generation PSO velocity and the previous generation PSO optimal position are iteratively calculated to obtain a new number of iterations and a new generation PSO position. When the new number of iterations meets a preset number of iterations, a global optimal position is determined based on the previous generation PSO optimal position and the new generation PSO position. The global optimal position includes the position with the highest fitness value among the previous generation PSO optimal position and the new generation PSO position. The global optimal position is used as the magnitude and direction of the TIADC's clock deviation, and a differentiator is used to compensate for the TIADC's clock deviation. This enables clock calibration for TIADCs with any number of channels. Furthermore, by implementing calibration of the time-interleaved analog-to-digital converter based on particle swarm optimization, the efficiency of clock calibration for TIADC is improved. Attached Figure Description

[0047] Figure 1 This is a schematic diagram of the architecture of a TIADC according to an embodiment of the present invention;

[0048] Figure 2 This is a schematic diagram illustrating clock skew generation according to an embodiment of the present invention.

[0049] Figure 3 This is a schematic flowchart of a calibration method for a time-interleaved analog-to-digital converter based on particle swarm optimization according to an embodiment of the present invention;

[0050] Figure 4 This is a schematic flowchart of a calibration method for a time-interleaved analog-to-digital converter based on particle swarm optimization, according to another embodiment of the present invention.

[0051] Figure 5 This is a schematic diagram of the structure of a calibration device for a time-interleaved analog-to-digital converter based on particle swarm optimization according to an embodiment of the present invention. Detailed Implementation

[0052] The present invention will be further described in detail below with reference to specific embodiments. These descriptions are for explanation purposes only and are not intended to limit the scope of the invention.

[0053] like Figure 1As shown, this embodiment of the invention uses an M-channel interleaved TIADC as an example. The entire TIADC consists of a clock generation module, sub-ADC groups, and a data selector. Each sub-ADC operates at its corresponding sampling frequency fs, and its corresponding sampling period is ts. The TIADC converts M parallel sampled data into a serial output through the data selector; therefore, the sampling interval of the TIADC is M × ts = Ts, and its operating frequency is Fs. The clock for each sub-channel is obtained by distributing the TIADC input clock through a Delay Locked Loop (DLL).

[0054] like Figure 2 and Figure 3 As shown in the figure, the calibration method for a time-interleaved analog-to-digital converter based on particle swarm optimization provided by the present invention is characterized by comprising:

[0055] Step 101: Obtain the number of iterations, the velocity of the previous generation particle swarm, and the optimal position of the previous generation particle swarm.

[0056] In this embodiment, the previous generation particle swarm velocity includes the optimal update direction of the particle swarm obtained from the previous iteration calculation, the previous generation particle swarm optimal position includes the optimal clock information obtained from the previous iteration calculation, the clock information includes clock information within the clock deviation range of the time-interleaved analog-to-digital converter (TIADC), and the number of iterations includes the number of iterations calculated from the initial particle swarm position to the previous generation particle swarm optimal position.

[0057] It should be noted that the sampling time of each sub-ADC may actually be ahead of or behind the ideal sampling time. Therefore, detecting the direction of clock deviation is also essential. Thus, this method initializes particle positions by placing particles in a symmetrical positive and negative interval, which reflects the magnitude and direction of the clock deviation. Simultaneously, by adjusting the size of the particle swarm, its diversity is regulated, allowing it to cover more positions and accelerate convergence.

[0058] Furthermore, in this embodiment, the clock deviation range is set by adding 3% before and after the TIADC sampling interval (i.e., sampling period) M×ts=Ts. Since the clock deviation will basically not exceed this range, we generally consider the clock deviation to be very small. Because the magnitude of the TIADC clock deviation is generally on the order of ps or fs, if its size range is directly set as the solution space, the particles will have difficulty updating and iterating because the range is too small. Therefore, it is normalized to the order of 100s before setting the solution space.

[0059] Step 102: Iteratively calculate the velocity and optimal position of the previous generation particle swarm to obtain the new iteration number and the position of the new generation particle swarm.

[0060] Specifically, the velocity of the new generation particle swarm = weight × velocity of the previous generation particle swarm + c1 × rand1 × (optimal position of the previous generation particle swarm - position of the new generation particle swarm) + c2 × rand2 × (optimal position of the previous generation particle swarm - position of the new generation particle swarm), where c1 is a preset first learning factor, c2 is a preset second learning factor, rand1 is a first random number, rand2 is a second random number, and the optimal position of the previous generation particle swarm is the position corresponding to the particle with the largest fitness value among the optimal positions of the previous generation particle swarm.

[0061] The position of the new generation particle swarm is the sum of the position of the previous particle swarm and the velocity of the new generation particle swarm. The position of the previous particle swarm was calculated in the previous iteration using the position of the new generation particle swarm.

[0062] The new iteration number is the iteration number plus 1.

[0063] Step 103: Determine the global optimal position based on the new iteration number, the velocity of the new generation particle swarm, the velocity of the previous generation particle swarm, the optimal position of the previous generation particle swarm, and the position of the new generation particle swarm.

[0064] There are two ways to implement step 103:

[0065] The first implementation method compares the position of the new generation of particle swarm with the optimal position of the previous generation of particle swarm, and takes the larger comparison result as the global optimal position.

[0066] The second implementation method includes:

[0067] Obtain boundary range information, which includes: particle swarm velocity range and TIADC clock deviation range, wherein the TIADC clock deviation range may be the particle swarm position;

[0068] The velocities of each particle in the new generation particle swarm velocity and the positions of each particle in the new generation particle swarm position are compared with the boundary range information, respectively.

[0069] If it is determined that a particle position in the new generation particle swarm position is not within the range of the particle swarm position, then a position is randomly selected within the range of the particle swarm position to update the particle position in the new generation particle swarm position.

[0070] If it is determined that the velocity of a particle in the new generation particle swarm velocity is not within the range of the particle swarm velocity, then a velocity is randomly selected within the range of the particle swarm velocity to update the velocity of the particle in the new generation particle swarm velocity.

[0071] Furthermore, after comparing the velocity and position of the new generation particle swarm with the boundary range information, the fitness value of the new generation individual at each particle position in the new generation particle swarm position, and the fitness value of the previous generation individual at each particle position in the previous generation particle swarm position are obtained.

[0072] The fitness values ​​of the new generation individuals are compared one by one with the fitness values ​​of the previous generation individuals to determine whether the fitness value of the new generation individuals is greater than the fitness value of the previous generation individuals.

[0073] If so, then maintain the particle positions in the new generation particle swarm position;

[0074] If not, the particle positions in the new generation particle swarm position are updated using the particle positions in the optimal positions of the previous generation particle swarm.

[0075] Furthermore, based on the position of the new generation particle swarm, the overall fitness value of the new generation particle swarm position is determined;

[0076] The overall fitness value of the new generation is compared with the overall fitness value of the previous generation to determine whether the overall fitness value of the new generation is greater than the overall fitness value of the previous generation. The overall fitness value of the previous generation includes the overall fitness value of the optimal position of the particle swarm in the previous generation.

[0077] If so, sort the fitness values ​​corresponding to the individual positions in the optimal positions of the new generation of particle swarm, and determine the individual position with the largest fitness value as the global optimal position;

[0078] If not, sort the fitness values ​​corresponding to the individual positions in the previous generation of particle swarm optimal positions, and determine the position of the individual with the largest fitness value as the global optimal position. Step 104: Use the global optimal position as the magnitude and direction of the clock deviation of the TIADC, and compensate for the clock deviation of the TIADC through a differentiator.

[0079] The clock skew compensation method for the TIADC using a differentiator in this embodiment can be implemented using existing technologies, such as the method described in the paper D. Li, L. Zhao, L. Wang, Y. Shen and Z. Zhu, "A fast convergence second-order compensation for timing skew in time-interleaved ADCs," IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2022, doi:10.1109 / TVLSI.2022.3189541.

[0080] In this embodiment, the iteration count, the previous generation particle swarm velocity, and the previous generation optimal particle swarm position are first obtained. The previous generation particle swarm velocity includes the optimal update direction of the particle swarm obtained from the previous iteration calculation. The previous generation optimal particle swarm position includes the optimal clock information obtained from the previous iteration calculation. The clock information includes clock information within the clock deviation range of the Time-Interleaved Analog-to-Digital Converter (TIADC). The iteration count includes the number of iterations from the initial particle swarm position to the previous generation optimal particle swarm position. Next, the previous generation particle swarm velocity and the previous generation optimal particle swarm position are iteratively calculated to obtain a new iteration count and a new generation particle swarm position. When the new iteration count meets a preset iteration count, a global optimal position is determined based on the previous generation optimal particle swarm position and the new generation particle swarm position. The global optimal position includes the position information with the largest fitness value among the previous generation optimal particle swarm position and the new generation particle swarm position. The global optimal position is used as the magnitude and direction of the TIADC clock deviation, and a differentiator is used to compensate for the TIADC clock deviation. This achieves clock calibration for a TIADC with any number of channels. Furthermore, by employing particle swarm optimization to calibrate the time-interleaved analog-to-digital converter (TIADC), the efficiency of clock calibration for the TIADC is improved. Meanwhile, in existing technologies, the clock deviations of each channel converge sequentially and cannot converge simultaneously. This embodiment proposes a calibration method that overcomes the channel number limitation and is applicable to TIADCs with any channel interleaving.

[0081] Based on the above embodiments, before iteratively calculating the velocity and optimal position of the previous generation particle swarm to obtain the new iteration number and the position of the new generation particle swarm, the method further includes:

[0082] Obtain the position of the previous generation particle swarm;

[0083] Based on the position of the previous generation particle swarm, determine the fitness value corresponding to the position of each particle in the previous generation particle swarm, and the fitness value includes the signal-to-noise ratio (SNDR).

[0084] The fitness values ​​corresponding to each particle position are sorted, and the position of the particle with the largest fitness value is determined as the optimal position of the previous generation particle swarm.

[0085] Furthermore, based on the above embodiments, the step of iteratively calculating the velocity and optimal position of the previous generation particle swarm to obtain a new number of iterations and the position of the next generation particle swarm also includes:

[0086] Obtain a new iteration count, which is the iteration count plus 1;

[0087] The step of determining the global optimal position based on the optimal position of the previous generation particle swarm and the position of the new generation particle swarm also includes:

[0088] Determine whether the new iteration number is greater than or equal to the preset iteration number;

[0089] If so, then the process of using the global optimal position as the magnitude and direction of the TIADC clock deviation is executed, and the clock deviation of the TIADC is compensated by a differentiator;

[0090] If not, then perform iterative calculations of the velocity and optimal position of the previous generation particle swarm to obtain a new number of iterations and the position of the next generation particle swarm.

[0091] In this embodiment, after a certain number of generations of evolution, the globally optimal particle position begins to converge. Iteration parameters are adjusted based on the fitness value, and the iterative calculation is completed after a preset number of iterations. Finally, the globally optimal particle position is obtained, and this optimal position is used as the magnitude and direction of the clock deviation. A differentiator is then used to calibrate the clock deviation. This method is not limited by the number of channels in the TIADC system; as the number of channels increases, the detection speed is faster, and the advantages become more pronounced.

[0092] like Figure 4 As shown, the present invention provides another embodiment of the calibration method for a time-interleaved analog-to-digital converter based on particle swarm optimization, comprising:

[0093] Step 401: Obtain information on each parameter.

[0094] The parameter information includes: the clock offset range of TIADC, the initial particle swarm size, the dimension of each particle in the swarm, the number of iterations, the learning factor c1, the learning factor c2, the weights, and the flight speed range, which includes the maximum and minimum flight speeds.

[0095] In this embodiment, the clock deviation range is set to the solution space based on 3% of the TIADC sampling period. The particle swarm size, individual particle dimensions, iteration count, first learning factor c1, second learning factor c2, weights, maximum flight speed, and minimum flight speed are all initialized to preset values.

[0096] Initializing the particle swarm size refers to initializing the particle swarm position. The initial particle swarm position is determined by using the clock offset of each channel as the position of the particle swarm, and the initial position is random. This is to better cover the possible range of clock offsets, so that the particle swarm has better diversity and a more definite flight direction.

[0097] The dimension of an individual particle in a particle swarm refers to the number of sub-channels in the TIADC. One dimension represents the clock skew of one channel, which in the particle swarm algorithm refers to the position of each particle. Using eight channels as particles, this is the particle swarm Θ = [θ0, θ1, ..., θ]. P-1 ] T This is for each particle θ i =[Δt1,Δt2,…,Δt i [,…,Δt8], dimension and position are unrelated; velocity and position are concepts inherent to the algorithm itself. The globally optimal position refers to the θ with the highest fitness value among θ values. i The global optimal position refers to the value that should have converged to after the evolution is complete.

[0098] Step 402: Initialize the optimal position and optimal fitness value of the particle swarm, and determine the initial global optimal position and initial global optimal value.

[0099] The initialization here uses the clock offset range of TIADC as the range for random initialization within the position and velocity range of feasible solutions. The signal-to-noise ratio (SNDR) is used to measure the fitness value; that is, all fitness values ​​mentioned below refer to the SNDR value. Because the clock offset range is expanded when setting it, the particle swarm position information needs to be compressed when calculating the fitness value. This compression refers to restoring the originally amplified clock offset to within 3% of the TS before calculating the fitness value. The fitness values ​​are sorted, and the population with the highest fitness value in the initialized particle swarm is obtained. The position and fitness value of this population are then saved as the initial global optimum position and initial global optimum value.

[0100] Step 403: Iteratively calculate the particle swarm velocity and particle swarm position.

[0101] This embodiment performs iterative calculations of the velocity and position of the next-generation particle swarm based on the initial global optimal position and initial global optimal value, or based on the velocity and optimal position of the previous generation particle swarm.

[0102] First, generate two random numbers between 0 and 1, rand1 and rand2. Then, update the position and velocity of the individual according to the following formula.

[0103] The velocity of the new generation particle swarm is calculated as: weight × velocity of the previous generation particle swarm + c1 × rand1 × (optimal position of the previous generation particle swarm - position of the new generation particle swarm) + c2 × rand2 × (optimal position of the previous generation particle swarm - position of the new generation particle swarm), where c1 is a preset first learning factor, c2 is a preset second learning factor, rand1 is a first random number, rand2 is a second random number, and the optimal position of the previous generation particle swarm is the position corresponding to the particle with the largest fitness value among the optimal positions of the previous generation particle swarm.

[0104] The position of the new generation particle swarm is the sum of the position of the previous particle swarm and the velocity of the new generation particle swarm;

[0105] The new iteration number is the iteration number plus 1.

[0106] Step 404: Compare the velocity and position of the new generation particle swarm with the boundary range information.

[0107] Obtain boundary range information, which includes: particle swarm velocity range and TIADC clock offset range;

[0108] The velocities of each particle in the new generation particle swarm velocity and the positions of each particle in the new generation particle swarm position are compared with the boundary range information, respectively.

[0109] If it is determined that a particle position in the new generation particle swarm position is not within the range of the particle swarm position, then a position is randomly selected within the range of the particle swarm position to update the particle position in the new generation particle swarm position.

[0110] If it is determined that the velocity of a particle in the new generation particle swarm velocity is not within the range of the particle swarm velocity, then a velocity is randomly selected within the range of the particle swarm velocity to update the velocity of the particle in the new generation particle swarm velocity.

[0111] For example, in boundary handling, when the updated velocity of a particle exceeds the allowed range, the velocity of the particle will be re-randomized. When the updated position of a particle exceeds the scaled solution space, the particle's position will be re-randomized in the solution space.

[0112] Step 405: Determine the optimal position of the next-generation particle swarm;

[0113] Obtain the fitness value of the new generation individuals at each particle position in the new generation particle swarm position, and the fitness value of the previous generation individuals at each particle position in the previous generation particle swarm position.

[0114] The fitness values ​​of the new generation individuals are compared one by one with the fitness values ​​of the previous generation individuals to determine whether the fitness value of the new generation individuals is greater than the fitness value of the previous generation individuals.

[0115] If so, then the particle positions in the new generation particle swarm position are maintained, and this new generation particle swarm position can be used as the optimal position of the new generation particle swarm.

[0116] If not, the particle positions in the new generation particle swarm position are updated using the particle positions in the optimal positions of the previous generation particle swarm, and the updated new generation particle swarm position can be used as the optimal position of the new generation particle swarm.

[0117] Step 406: Determine the new global position and the global optimal fitness value.

[0118] In this embodiment, the overall fitness value of the next-generation particle swarm position is determined based on the position of the next-generation particle swarm.

[0119] The overall fitness value of the new generation is compared with the overall fitness value of the previous generation to determine whether the overall fitness value of the new generation is greater than the overall fitness value of the previous generation. The overall fitness value of the previous generation includes the overall fitness value of the optimal position of the particle swarm in the previous generation.

[0120] If so, sort the fitness values ​​corresponding to the individual positions in the optimal positions of the new generation of particle swarm, and determine the individual position with the largest fitness value as the global optimal position;

[0121] If not, then sort the fitness values ​​corresponding to the individual positions in the previous generation of particle swarm optimal positions, and determine the individual position with the largest fitness value as the global optimal position.

[0122] For example, the fitness value of the new generation population is calculated and compared with the global optimal fitness value of the previous generation. If the fitness value of the new generation population is greater than that of the previous generation, the global optimal position information is updated and the global optimal value is saved. Otherwise, the global position and global optimal fitness value are not updated.

[0123] Step 407: Determine whether the new iteration number exceeds the preset iteration number;

[0124] If so, then proceed to step 408, which is to use the global optimal position as the magnitude and direction of the clock deviation of the TIADC, and compensate the clock deviation of the TIADC through a differentiator.

[0125] If not, proceed to step 403.

[0126] Step 408: Compensate for the clock deviation of the TIADC system using a differentiator.

[0127] In this embodiment, the compensated output digital code will be obtained to complete the calibration.

[0128] like Figure 5 As shown, an embodiment of the invention provides a calibration device for a time-interleaved analog-to-digital converter based on particle swarm optimization, comprising: an acquisition module 51, an iteration module 52, a determination module 53, and a calibration module 54, wherein...

[0129] The acquisition module 51 is used to acquire the number of iterations, the velocity of the previous generation particle swarm, and the optimal position of the previous generation particle swarm. The velocity of the previous generation particle swarm includes the optimal update direction of the particle swarm obtained from the previous iteration calculation. The optimal position of the previous generation particle swarm includes the optimal clock information obtained from the previous iteration calculation. The clock information includes clock information within the clock deviation range of the time-interleaved analog-to-digital converter (TIADC). The number of iterations includes the number of iterations from the initial particle swarm position to the optimal position of the previous generation particle swarm.

[0130] Iteration module 52 is used to iteratively calculate the velocity and optimal position of the previous generation particle swarm to obtain the new iteration number and the position of the new generation particle swarm.

[0131] The determination module 53 is used to determine the global optimal position based on the optimal position of the previous generation particle swarm and the position of the new generation particle swarm when the new iteration number meets the preset iteration number. The global optimal position includes the position information with the largest fitness value among the optimal positions of the previous generation particle swarm and the positions of the new generation particle swarm.

[0132] The calibration module 54 is used to take the global optimal position as the magnitude and direction of the clock deviation of the TIADC, and to compensate for the clock deviation of the TIADC through a differentiator.

[0133] This invention obtains the iteration count, the previous generation particle swarm velocity, and the previous generation optimal particle swarm position. The previous generation particle swarm velocity includes the optimal update direction obtained from the previous iteration calculation, and the previous generation optimal particle swarm position includes the optimal clock information obtained from the previous iteration calculation. The clock information includes clock information within the clock deviation range of the Time-Interleaved Analog-to-Digital Converter (TIADC). The iteration count includes the number of iterations from the initial particle swarm position to the previous generation optimal particle swarm position. Then, the previous generation particle swarm velocity and the previous generation optimal particle swarm position are iteratively calculated to obtain a new iteration count and a new generation particle swarm position. When the new iteration count meets a preset iteration count, a global optimal position is determined based on the previous generation optimal particle swarm position and the new generation particle swarm position. The global optimal position includes the position with the highest fitness value among the previous generation optimal particle swarm position and the new generation particle swarm position. The global optimal position is used as the magnitude and direction of the TIADC clock deviation, and a differentiator is used to compensate for the TIADC clock deviation. This achieves clock calibration for a TIADC with any number of channels. Furthermore, by implementing calibration of the time-interleaved analog-to-digital converter based on particle swarm optimization, the efficiency of clock calibration for TIADC is improved.

[0134] Furthermore, the iteration module 52 is used to obtain the velocity of the next generation particle swarm; the velocity of the next generation particle swarm = weight × velocity of the previous generation particle swarm + c1 × rand1 × (optimal position of the previous generation particle swarm - position of the next generation particle swarm) + c2 × rand2 × (optimal position of the previous generation particle swarm - position of the next generation particle swarm), where c1 is a preset first learning factor, c2 is a preset second learning factor, rand1 is a first random number, rand2 is a second random number, the optimal position of the previous generation particle swarm is the position corresponding to the particle with the largest fitness value in the optimal position of the previous generation particle swarm; the position of the next generation particle swarm is the sum of the position of the previous particle swarm and the velocity of the next generation particle swarm.

[0135] Furthermore, the determining module 53 is also used to obtain boundary range information, which includes: the particle swarm velocity range and the clock deviation range of TIADC; compare the velocity of each particle in the new generation particle swarm velocity and the position of each particle in the new generation particle swarm position with the boundary range information respectively; if it is determined that a particle position in the new generation particle swarm position is not within the particle swarm position range, then a position is randomly selected within the particle swarm position range to update the particle position in the new generation particle swarm position; if it is determined that a particle velocity in the new generation particle swarm velocity is not within the particle swarm velocity range, then a velocity is randomly selected within the particle swarm velocity range to update the particle velocity in the new generation particle swarm velocity.

[0136] Furthermore, the determining module 53 is also used to obtain the fitness value of the new generation individual at each particle position in the new generation particle swarm position, and the fitness value of the previous generation individual at each particle position in the previous generation particle swarm position.

[0137] The fitness values ​​of the new generation individuals are compared one by one with the fitness values ​​of the previous generation individuals to determine whether the fitness value of the new generation individuals is greater than the fitness value of the previous generation individuals.

[0138] If so, then maintain the particle positions in the new generation particle swarm position;

[0139] If not, the particle positions in the new generation particle swarm position are updated using the particle positions in the optimal positions of the previous generation particle swarm.

[0140] Furthermore, the determining module 53 is also used to determine the new generation overall fitness value of the new generation particle swarm position based on the new generation particle swarm position.

[0141] The overall fitness value of the new generation is compared with the overall fitness value of the previous generation to determine whether the overall fitness value of the new generation is greater than the overall fitness value of the previous generation. The overall fitness value of the previous generation includes the overall fitness value of the optimal position of the particle swarm in the previous generation.

[0142] If so, sort the fitness values ​​corresponding to the individual positions in the optimal positions of the new generation of particle swarm, and determine the individual position with the largest fitness value as the global optimal position;

[0143] If not, then sort the fitness values ​​corresponding to the individual positions in the previous generation of particle swarm optimal positions, and determine the individual position with the largest fitness value as the global optimal position.

[0144] Furthermore, the iteration module 52 is also used to obtain a new iteration number, which is the iteration number plus 1;

[0145] The determining module 53 is further configured to determine whether the new iteration number is greater than or equal to the preset iteration number; if so, it executes the step of using the global optimal position as the magnitude and direction of the clock deviation of the TIADC, and compensating for the clock deviation of the TIADC through a differentiator; if not, it executes the iterative calculation of the velocity of the previous generation particle swarm and the optimal position of the previous generation particle swarm to obtain the new iteration number and the position of the new generation particle swarm.

[0146] The working principle and technical effects of the calibration device for a time-interleaved analog-to-digital converter based on particle swarm optimization provided in this embodiment of the invention are similar to the methods described above, and will not be repeated here.

Claims

1. A calibration method for a time-interleaved analog-to-digital converter based on particle swarm optimization, characterized in that, The method comprises the following steps: acquiring the iteration number, the last generation of particle swarm velocity and the last generation of particle swarm optimal position, wherein the last generation of particle swarm velocity comprises the update direction of the particle swarm optimum obtained by the last iteration calculation, the last generation of particle swarm optimal position comprises the optimal clock information obtained by the last iteration calculation, the clock information comprises clock information in the clock deviation range of the time-interleaved analog-to-digital converter (TIADC), and the iteration number comprises the number of iteration calculations from the initial particle swarm position to the last generation of particle swarm optimal position; performing iteration calculation on the last generation of particle swarm velocity and the last generation of particle swarm optimal position to obtain the new iteration number and the new generation of particle swarm position; acquiring the boundary range information, wherein the boundary range information comprises the particle swarm velocity range and the clock deviation range of the TIADC; comparing each particle velocity in the new generation of particle swarm velocity and each particle position in the new generation of particle swarm position with the boundary range information respectively; if it is determined that a particle position in the new generation of particle swarm position is not in the particle swarm position range, a position in the particle swarm position range is randomly selected to update the particle position in the new generation of particle swarm position; if it is determined that a particle velocity in the new generation of particle swarm velocity is not in the particle swarm velocity range, a velocity in the particle swarm velocity range is randomly selected to update the particle velocity in the new generation of particle swarm velocity; acquiring the new generation of individual fitness value of each particle position in the new generation of particle swarm position and the last generation of individual fitness value of each particle position in the last generation of particle swarm optimal position; comparing the new generation of individual fitness value and the last generation of individual fitness value one by one to determine whether the new generation of individual fitness value is greater than the last generation of individual fitness value; if yes, the particle position in the new generation of particle swarm position is kept; if no, the particle position in the new generation of particle swarm position is updated by using the particle position in the last generation of particle swarm optimal position; and the fitness value comprises the signal-to-noise distortion ratio (SNDR). When the new iteration number meets a preset iteration number, a global optimal position is determined according to the last generation particle swarm optimal position and the new generation particle swarm position, the global optimal position including position information with the largest fitness value in the last generation particle swarm optimal position and the new generation particle swarm position; specifically including: determining a new generation overall fitness value of the new generation particle swarm position according to the new generation particle swarm position; comparing the new generation overall fitness value with a last generation overall fitness value to determine whether the new generation overall fitness value is greater than the last generation overall fitness value, the last generation overall fitness value including an overall fitness value of the last generation particle swarm optimal position; if yes, sorting fitness values corresponding to individual positions in the new generation particle swarm to determine an individual position with the largest fitness value as the global optimal position; if no, sorting fitness values corresponding to individual positions in the last generation particle swarm to determine an individual position with the largest fitness value as the global optimal position; taking the global optimal position as a size and a direction of a clock offset of the TIADC, and compensating the clock offset of the TIADC through a differentiator.

2. The calibration method of a time-interleaved analog-to-digital converter based on particle swarm optimization according to claim 1, wherein, The iteration calculation of the last generation particle swarm speed and the last generation particle swarm optimal position to obtain the new iteration number and the new generation particle swarm position further includes: obtaining a new generation particle swarm speed; the new generation particle swarm speed = weight * last generation particle swarm speed + c1 * rand1 * (last generation particle swarm optimal position - new generation particle swarm position) + c2 * rand2 * (last generation particle swarm optimal position - new generation particle swarm position), wherein c1 is a preset first learning factor, c2 is a preset second learning factor, rand1 is a first random number, rand2 is a second random number, and the last generation particle swarm optimal position is a position corresponding to a particle with the largest fitness value in the last generation particle swarm; the new generation particle swarm position is a sum of the last generation particle swarm position and the new generation particle swarm speed.

3. The calibration method of a time-interleaved analog-to-digital converter based on particle swarm optimization according to any one of claims 1-2, characterized in that, The iteration calculation of the last generation particle swarm speed and the last generation particle swarm optimal position to obtain the new iteration number and the new generation particle swarm position further includes: obtaining a new iteration number, the new iteration number being the iteration number plus 1; The determination of the global optimal position according to the last generation particle swarm optimal position and the new generation particle swarm position further includes: determining whether the new iteration number is greater than or equal to a preset iteration number; if yes, performing the taking of the global optimal position as the size and the direction of the clock offset of the TIADC, and the compensating of the clock offset of the TIADC through the differentiator; if no, performing the iteration calculation of the last generation particle swarm speed and the last generation particle swarm optimal position to obtain the new iteration number and the new generation particle swarm position.

4. A calibration apparatus for a time-interleaved analog-to-digital converter based on particle swarm optimization, characterized by including: The acquisition module is configured to acquire an iteration number, a last generation particle swarm speed and a last generation particle swarm optimal position, wherein the last generation particle swarm speed comprises an updated direction of a particle swarm optimum obtained through last iteration calculation, and the last generation particle swarm optimal position comprises optimal clock information obtained through last iteration calculation, the clock information comprises clock information in a clock deviation range of a time-interleaved analog-to-digital converter (TIADC), and the iteration number comprises a number of iteration calculations from an initial particle swarm position to the last generation particle swarm optimal position; The iteration module is configured to perform iteration calculation on the last generation particle swarm speed and the last generation particle swarm optimal position to obtain a new iteration number and a new generation particle swarm position. The determination module is configured to acquire boundary range information, which comprises a particle swarm speed range and a clock deviation range of a TIADC; compare each particle speed in the new generation particle swarm speed and each particle position in the new generation particle swarm position with the boundary range information respectively; if it is determined that a particle position in the new generation particle swarm position is not in the particle swarm position range, randomly select a position in the particle swarm position range to update the particle position in the new generation particle swarm position; and if it is determined that a particle speed in the new generation particle swarm speed is not in the particle swarm speed range, randomly select a speed in the particle swarm speed range to update the particle speed in the new generation particle swarm speed. The determination module is further configured to acquire a new generation individual fitness value of each particle position in the new generation particle swarm position and a last generation individual fitness value of each particle position in the last generation particle swarm optimal position; compare the new generation individual fitness value and the last generation individual fitness value one by one to determine whether the new generation individual fitness value is greater than the last generation individual fitness value; if yes, keep the particle position in the new generation particle swarm position; and if no, update the particle position in the new generation particle swarm position by using the particle position in the last generation particle swarm optimal position; and the fitness value comprises a signal-to-noise distortion ratio (SNDR). The determination module is further configured to, when the new iteration number meets a preset iteration number, determine a global optimal position according to the last generation particle swarm optimal position and the new generation particle swarm position, wherein the global optimal position comprises position information with the largest fitness value in the last generation particle swarm optimal position and the new generation particle swarm position; and the determination comprises: determining a new generation overall fitness value of the new generation particle swarm position according to the new generation particle swarm position; comparing the new generation overall fitness value with a last generation overall fitness value to determine whether the new generation overall fitness value is greater than the last generation overall fitness value, wherein the last generation overall fitness value comprises an overall fitness value of the last generation particle swarm optimal position; if yes, sorting fitness values corresponding to individual positions in the new generation particle swarm to determine an individual position with the largest fitness value as the global optimal position; and if no, sorting fitness values corresponding to individual positions in the last generation particle swarm to determine an individual position with the largest fitness value as the global optimal position. The calibration module is configured to compensate the TIADC by means of a differentiator with the global optimal position as a size and a direction of a clock offset of the TIADC.

5. The calibration apparatus for a PSO-based time-interleaved analog-to-digital converter according to claim 4, wherein The iteration module is configured to obtain a new generation of particle swarm velocity; the new generation of particle swarm velocity=weight×last generation of particle swarm velocity+c1×rand1×(last generation of particle swarm optimal position-new generation of particle swarm position)+c2×rand2×(last generation of particle swarm optimal position-new generation of particle swarm position), wherein c1 is a preset first learning factor, c2 is a preset second learning factor, rand1 is a first random number, rand2 is a second random number, the last generation of particle swarm optimal position is a position corresponding to a particle with a maximum fitness value in the last generation of particle swarm, and the new generation of particle swarm position is a sum of the last generation of particle swarm position and the new generation of particle swarm velocity.

6. The calibration apparatus for a time-interleaved analog-to-digital converter based on particle swarm optimization according to any one of claims 4-5, characterized in that, The iteration module is further configured to obtain a new iteration number, and the new iteration number is the iteration number plus 1. The determination module is further configured to determine whether the new iteration number is greater than or equal to a preset iteration number; if yes, the calibration module is executed to compensate the TIADC by means of the differentiator with the global optimal position as the size and the direction of the clock offset of the TIADC; and if no, the iteration module is executed to perform iterative calculation on the last generation of particle swarm velocity and the last generation of particle swarm optimal position to obtain the new iteration number and the new generation of particle swarm position.