Interference identification suppression method and device for intra-pulse and inter-pulse Costas coding

Through the interference recognition and suppression method of Costas encoding intra-vein intervein, the interference recognition steps are simplified, the computing efficiency is improved, and the problems of complex computing and poor real-time performance in existing radar technologies are solved, and efficient interference suppression is achieved.

CN120490983APending Publication Date: 2025-08-15XIDIAN UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510576672.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-06
Publication Date
2025-08-15

AI Technical Summary

Technical Problem

In the existing radar technology, the time-frequency domain identification and suppression method of intermittent sampling and forwarding interference is complex in calculations and cannot meet the real-time requirements. The existing intra-orthogonal coded waveform interference suppression method requires estimation of interference parameters, which is complex in calculations and poor real-time performance.

Method used

The interference identification and suppression method of inter-vein inter-vein Costas encoding is adopted. By transmitting the encoded transmitting signal and receiving the echo signal, the Costas encoding sequence is used to perform inter-vein inter-vein coding, and the extreme value ratio of the maximum amplitude is calculated. If it is less than the preset factor, it is set to zero. The GPU thread parallel processing is used to determine the intra-vein interference and suppress it.

Benefits of technology

The interference recognition and suppression steps are simplified, the calculation amount is reduced, the computing efficiency is improved, and real-time and efficient interference recognition and suppression are achieved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120490983A_ABST
    Figure CN120490983A_ABST
Patent Text Reader

Abstract

The invention discloses an interference identification and suppression method and device for intra-pulse and inter-pulse Costas coding. The method comprises the following steps: receiving an echo signal of a coding emission signal; the coded transmitting signal is generated by performing intra-pulse and inter-pulse coding on the transmitting signal by using a Costas coding sequence; calculating an amplitude maximum value in each pulse signal in the echo signals, and calculating an extreme value ratio; if the extreme value ratio is smaller than or equal to the inter-pulse interference judgment factor, all the pulse signals corresponding to the global amplitude maximum value are set to be zero; each element in each pulse signal corresponds to a GPU thread, so that whether intra-pulse interference exists in the pulse signal or not is determined by calculating the square value of the module value of each element in the pulse signal through each thread; and if the GUP thread exists, elements in the pulse signal corresponding to the GUP thread with the intra-pulse interference are calculated to be zero, and high-efficiency interference identification suppression is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of radar technology, and in particular relates to a method and device for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding. Background Art

[0002] As a scene observation tool, radar has long played a vital role in multiple fields. Classic radar anti-interference technology exploits the differences between target echoes and interfering signals in the time, frequency, spatial, and polarization domains, suppressing them through methods such as pulse compression and sidelobe cancellation. However, with the rapid advancement of electronic devices and digital radio frequency storage technology, new types of jammers with both suppression and deception capabilities pose a serious threat to radar. Effectively identifying and rapidly suppressing interference has become a key concern.

[0003] To address these issues, an existing time-frequency domain identification and suppression method for intermittent sampling forwarding interference first derives analytical expressions for interference pulse compression and time-frequency distribution, analyzes the time-frequency characteristics of the target echo and typical interference signals, and constructs a time-frequency domain filter for interference suppression. However, time-frequency analysis typically involves a large number of matrix operations, which results in high computational costs and is not conducive to real-time applications. An existing method for combating intermittent sampling forwarding interference based on intra-pulse orthogonality proposes using inter-pulse orthogonal coded waveforms for interference suppression. This approach aims to effectively separate the true echo signal from the inter-pulse forwarding interference signal by designing a special coding sequence that achieves good cross-correlation between different pulses.

[0004] However, the above existing methods for suppressing interference require estimation of relevant interference parameters, which is computationally complex and the existing interference suppression methods require complex changes, thus failing to meet real-time requirements.

[0005] Therefore, how to provide an interference identification and suppression method that is computationally simple, efficient, and highly real-time has become an important issue. Summary of the Invention

[0006] In order to solve the above problems existing in the prior art, the present invention provides a method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding.

[0007] The technical problem to be solved by the present invention is achieved through the following technical solutions:

[0008] In a first aspect, the present invention provides a method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding, the method comprising:

[0009] Transmitting a coded transmit signal and receiving an echo signal reflected by a target according to the coded transmit signal; the coded transmit signal is generated by performing intra-pulse and inter-pulse coding on the transmit signal using a Costas coding sequence;

[0010] Calculating the maximum amplitude value in each pulse signal in the echo signal, and calculating the extreme value ratio among the multiple maximum amplitude values;

[0011] If the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values are set to zero to achieve inter-pulse interference suppression;

[0012] Each element in each pulse signal is assigned to a GPU thread, so as to determine whether there is intra-pulse interference in the pulse signal by calculating the square of the modulus value of each element in the pulse signal using each GPU thread;

[0013] If it exists, the elements in the pulse signal corresponding to the GUP thread with intra-pulse interference are set to zero to complete the suppression of the intra-pulse interference.

[0014] Optionally, the method of performing intra-pulse encoding on the transmit signal using the Costas coding sequence includes:

[0015] Slicing a transmit pulse signal in the transmit signal to obtain a plurality of sub-transmit pulse signals;

[0016] All sub-transmitting pulse signals are encoded using the Costas coding sequence to complete the intra-pulse coding operation on the transmitting signal.

[0017] Optionally, all sub-transmitted pulse signals are encoded using the Costas coding sequence, which is expressed as follows:

[0018]

[0019] in, Indicates that the sub-transmitter transmits a pulse signal; represents fast time; n=1, 2, ..., N, N represents the number of transmission pulse signals in the transmission signal; k=1, 2, ..., K, K represents the number of sub-transmission pulse signals in each transmission pulse signal; represents the complex envelope of the sub-transmitted pulse signal; represents the window function; γ represents the frequency modulation slope; B sub represents the bandwidth of the sub-transmitted pulse signal; T sub Indicates the pulse width of the sub-transmitted pulse signal; a n,kis a random number in {0, 1, 2, ..., K-1}, belonging to the Costas code sequence, representing the frequency code of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; Δf represents the minimum frequency interval between sub-transmitted pulse signals; j represents the imaginary unit; rect(·) represents the rectangular function; u(·) represents the complex envelope of the sub-transmitted pulse signal.

[0020] Optionally, the method of performing inter-pulse encoding on the transmission signal using the Costas coding sequence includes:

[0021] The Costas coding sequence is used to encode the initial carrier frequency of each transmission pulse signal in the transmission signal, so as to complete the inter-pulse coding operation of the transmission signal.

[0022] Optionally, the initial carrier frequency of each transmission pulse signal in the transmission signal is encoded using the Costas coding sequence, which is expressed as follows:

[0023]

[0024] in, Indicates the transmission of pulse signal; Indicates fast time; t n represents slow time, t n =(n-1)T r , T r represents the pulse repetition period of the transmitted signal; j represents an imaginary unit; Indicates the sub-transmitted pulse signal; T sub Indicates the pulse width of the sub-transmitted pulse signal; f n Indicates the carrier frequency of the nth transmitted pulse signal, f n =f0+a(n)ΔF, where f0 represents the initial carrier frequency, ΔF represents the minimum frequency interval between transmitted pulse signals, a(n) is a random number in {0, 1, 2, ... M-1}, belongs to the Costas coding sequence, and represents the frequency modulation codeword of the nth transmitted pulse signal, M represents the total number of transmitted pulse signals; k = 1, 2, ..., K, K represents the number of sub-transmitted pulse signals in each transmitted pulse signal; u(·) represents the complex envelope; a n,k is a random number in {0, 1, 2, ..., K-1}, belongs to the Costas coding sequence, and represents the frequency code of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; n=1, 2, ..., N, where N represents the number of transmitted pulse signals in the transmitted signal.

[0025] Optionally, calculating the maximum amplitude value in each pulse signal in the echo signal and calculating the extreme value ratio among the multiple amplitude maximum values includes:

[0026] Calculate the maximum amplitude of each pulse signal in the echo signal, and store the maximum amplitude of each pulse signal in the max_value array in order of pulses;

[0027] Obtain the maximum and minimum global amplitudes in the max_value array;

[0028] The global amplitude minimum value and the global amplitude maximum value are compared to obtain an extreme value ratio.

[0029] Optionally, if the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values are set to zero to achieve inter-pulse interference suppression, including:

[0030] If the extreme value ratio is less than or equal to the preset inter-pulse interference judgment factor, determining the pulse signal corresponding to the global amplitude maximum value according to the address of the global amplitude maximum value in the max_value array and the first address of the max_value array;

[0031] All pulse signals corresponding to the global amplitude maximum are set to zero through parallel operation, thereby achieving suppression of inter-pulse interference.

[0032] In a second aspect, the present invention provides an interference identification and suppression device for intra-pulse and inter-pulse Costas coding, the interference identification and suppression device comprising:

[0033] A receiving module is configured to transmit a coded transmit signal and receive an echo signal reflected by a target according to the coded transmit signal; the coded transmit signal is generated by performing intra-pulse and inter-pulse coding on the transmit signal using a Costas coding sequence;

[0034] a calculation module, configured to calculate the maximum amplitude value in each pulse signal in the echo signal, and calculate the extreme value ratio among the multiple amplitude maximum values;

[0035] a first zeroing module, configured to set all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values to zero if the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, thereby suppressing inter-pulse interference;

[0036] a determination module, configured to map each element in each pulse signal to a GPU thread, so as to determine whether there is intra-pulse interference in the pulse signal by calculating the square of the modulus value of each element in the pulse signal using each GPU thread;

[0037] The second zeroing module is used to set the elements in the pulse signal corresponding to the GUP thread with intra-pulse interference to zero if any, so as to suppress the intra-pulse interference.

[0038] In a third aspect, the present invention provides an electronic device comprising a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other via the communication bus;

[0039] Memory for storing computer programs;

[0040] The processor is configured to implement the method steps described in any of the above methods for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding when executing the computer program stored in the memory.

[0041] In a fourth aspect, the present invention provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, the method steps described in any of the above-mentioned methods for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding are implemented.

[0042] The interference identification and suppression method of intra-pulse and inter-pulse Costas coding provided by the present invention can quickly identify and suppress interference only through amplitude maximum statistics, compared with the method in the prior art that achieves interference suppression by estimating interference parameters, thereby simplifying the interference identification and suppression steps and reducing the amount of calculation.

[0043] In addition, each element in each pulse signal is mapped to a GPU thread, so that each GPU thread can determine whether there is intra-pulse interference in the pulse signal by calculating the square value of the modulus value of each element in the pulse signal. By using the GPU thread unit for parallel processing, the computing efficiency can be greatly improved to meet the real-time requirements.

[0044] The present invention will be further described in detail below with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 1 is a flow chart of a method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention;

[0046] Figure 2 This is an interactive schematic diagram of an interference identification and suppression method for intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention;

[0047] Figure 3 This is a schematic diagram of the results of resisting intermittent sampling interference;

[0048] Figure 4 This is a schematic diagram of the results of resisting smart noise interference;

[0049] Figure 5 This is a schematic diagram of the results of resisting narrowband aiming frequency interference;

[0050] Figure 6 This is a schematic diagram of the results of resisting the interference of dense false targets;

[0051] Figure 7 1 is a schematic structural diagram of an apparatus for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention;

[0052] Figure 8 It is a structural diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0053] The present invention will be further described in detail below with reference to specific examples, but the embodiments of the present invention are not limited thereto.

[0054] In order to solve the technical problems of the existing interference identification and suppression methods such as complex calculation and poor real-time performance, the embodiment of the present invention provides an interference identification and suppression method for intra-pulse and inter-pulse Costas coding, see Figure 1 and Figure 2 , Figure 1 1 is a flow chart of a method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention. Figure 2 This is an interactive diagram of an interference identification and suppression method for intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention. Figure 1 and Figure 2 A method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention is described below:

[0055] Step S101 , transmitting a coded transmission signal, and receiving an echo signal reflected by a target according to the coded transmission signal; the coded transmission signal is generated by performing intra-pulse and inter-pulse coding on the transmission signal using a Costas coding sequence.

[0056] The transmitted signal is an electromagnetic wave signal in the form of a pulse actively emitted by the radar, which can be used to detect the position, speed and information of the target.

[0057] In the embodiment of the present invention, the Costas coding sequence is a modulation technology used for digital communication. By using the Costas coding sequence to perform intra-pulse coding and inter-pulse coding on a transmission signal, a modulated coded transmission signal can be generated.

[0058] The following describes in detail the intra-pulse coding process and the inter-pulse coding process of the transmitted waveform of the intra-pulse and inter-pulse Costas coding:

[0059] a) Intra-pulse coding process:

[0060] In one implementation, the method of intra-pulse encoding the transmission signal using the Costas coding sequence includes:

[0061] Slicing a transmission pulse signal in the transmission signal to obtain a plurality of sub-transmission pulse signals;

[0062] All sub-transmitted pulse signals are encoded using a Costas coding sequence to complete the intra-pulse coding operation on the transmitted signal.

[0063] Specifically, all sub-transmitted pulse signals are encoded using the Costas coding sequence, which is expressed as follows:

[0064] Assume that the radar transmits a transmission signal including N transmission pulse signals, and each transmission pulse signal is sliced. Then, the kth sub-transmission pulse signal of the nth transmission pulse signal is expressed as:

[0065]

[0066] in, Indicates that the sub-transmitter transmits a pulse signal; represents fast time; n=1, 2, ..., N, N represents the number of transmission pulse signals in the transmission signal; k=1, 2, ..., K, K represents the number of sub-transmission pulse signals in each transmission pulse signal; represents the window function; γ represents the frequency modulation slope; B sub represents the bandwidth of the sub-transmitted pulse signal; T sub Indicates the pulse width of the sub-transmitted pulse signal; a n,k is a random number in {0,1,2,...,K-1}, belonging to the Costas coding sequence, representing the frequency coding of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; Δf represents the minimum frequency interval between sub-transmitted pulse signals; j represents the imaginary unit, j 2 =-1; rect(·) represents the rectangular function; u(·) represents the complex envelope of the sub-transmitted pulse signal.

[0067] b) Inter-pulse encoding process:

[0068] In one implementation, the method of using the Costas coding sequence to perform inter-pulse coding on the transmission signal includes:

[0069] The Costas coding sequence is used to encode the initial carrier frequency of each transmission pulse signal in the transmission signal to complete the inter-pulse coding operation of the transmission signal.

[0070] Specifically, since frequency agility is used between different transmit pulse signals, that is, the transmit frequency jumps randomly. The initial carrier frequency of each transmit pulse signal in the transmit signal is encoded using the Costas coding sequence, that is, the baseband signal is added to the transmit frequency, that is, after up-mixing, the nth transmit pulse signal is expressed as:

[0071]

[0072] in, Indicates the transmission of pulse signals. Indicates fast time; t n represents slow time, t n =(n-1)T r , T r represents the pulse repetition period of the transmitted signal, j represents the imaginary unit; k = 1, 2, ..., K, K represents the number of neutron emission pulse signals in each emission pulse signal; u(·) represents the complex envelope; a n,k is a random number in {0, 1, 2, ..., K-1}, belonging to a Costas code sequence, representing the frequency code of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; n=1, 2, ..., N, where N represents the number of transmitted pulse signals in the transmitted signal; Indicates the transmission pulse signal; f n Indicates the carrier frequency of the nth transmitted pulse signal, specifically expressed as:

[0073] f n =f0+a(n)ΔF;

[0074] Where f0 represents the initial carrier frequency, ΔF represents the minimum frequency interval between transmitted pulse signals, a(n) is a random number in {0, 1, 2, ... M-1}, belongs to the Costas coding sequence, and represents the frequency modulation codeword of the nth transmitted pulse signal; M represents the total number of transmitted pulse signals; and K represents the number of sub-transmitted pulse signals in each transmitted pulse signal.

[0075] Based on the above process, a coded transmit signal of intra-pulse and inter-pulse Costas coding is generated.

[0076] In this embodiment of the present invention, the echo signal refers to the signal reflected back to the radar receiving antenna after the coded transmit signal encounters a single target object. It carries characteristics such as the target's range, speed, and shape. The size of the echo signal for a single target object is Nr*Na, where Nr is the number of sampling points in the range direction and Na is the number of pulses in the azimuth direction.

[0077] Step S102 , calculating the maximum amplitude value in each pulse signal in the echo signal, and calculating the extreme value ratio among the multiple amplitude maximum values.

[0078] In the embodiment of the present invention, the maximum amplitude value in each pulse signal refers to the maximum data amplitude value in the pulse signal in the echo signal.

[0079] The number of pulses of the echo signal in the azimuth direction is Na, so by calculating the maximum amplitude of each pulse signal in the echo signal, Na maximum amplitudes can be obtained.

[0080] The extreme value ratio among multiple amplitude maxima refers to the ratio of the global amplitude minimum value to the global amplitude maximum value among the amplitude maximum values.

[0081] In one implementation, calculating the maximum amplitude value in each pulse signal in the echo signal and calculating the extreme value ratio among the multiple amplitude maximum values includes:

[0082] Calculate the maximum amplitude of each pulse signal in the echo signal, and store the maximum amplitude of each pulse signal in the max_value array in the order of the pulses;

[0083] Find the maximum and minimum global amplitudes in the max_value array;

[0084] The extreme value ratio is obtained by comparing the global amplitude minimum value with the global amplitude maximum value.

[0085] In an embodiment of the present invention, the radar echo signal is transferred from the CPU (Central Processing Unit) main memory to the GPU (Graphics Processing Unit) video memory, and the maximum amplitude of each pulse signal is obtained using the cuMaxIdx function, which is a function for finding the maximum value in a vector. The specific steps are as follows:

[0086] Since radar echo signals are mathematically complex numbers, we use the cuAbs function to find the modulus of each element of each pulse signal. The cuAbs function is used to find the modulus of each pulse signal. Each pulse signal is a column vector, and the elements are the values in the column vector.

[0087] The CUDA (Compute Unified Device Architecture) library uses the cublasIsamax function to quickly find the maximum amplitude of each pulse signal on the GPU. The cublasIsamax function finds the index of the element with the largest absolute value in a single-precision floating-point vector. This maximum amplitude is then transferred from the GPU to the max_value array on the CPU in pulse order.

[0088] On the CPU side, use the max_element and min_element functions to obtain the address max_it of the global maximum amplitude and the address min_it of the global minimum amplitude in the max_value array, and then use the "*" address operator to obtain the global maximum amplitude max_v of the global maximum amplitude address and the global minimum amplitude min_v in the global minimum amplitude address. Compare the two to get the extreme value ratio ratio = min_v / max_v.

[0089] Step S103 : If the extreme value ratio is less than or equal to the preset inter-pulse interference judgment factor, all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values are set to zero to suppress the inter-pulse interference.

[0090] In the embodiment of the present invention, the extreme value ratio is compared with a preset inter-pulse interference judgment factor index to determine whether inter-pulse interference exists. The preset inter-pulse interference judgment factor can be set by technicians based on the ratio of signal to interference and daily experience.

[0091] In the embodiment of the present invention, by setting all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values to zero, this is equivalent to clearing this part of interference and retaining other normal parts.

[0092] In one implementation, if the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values are set to zero to achieve inter-pulse interference suppression, including:

[0093] If the extreme value ratio is less than or equal to the preset inter-pulse interference judgment factor, the pulse signal corresponding to the global amplitude maximum value is determined according to the address of the global amplitude maximum value in the max_value array and the first address of the max_value array;

[0094] Through parallel operation, all pulse signals corresponding to the global maximum amplitude are set to zero to achieve the suppression of inter-pulse interference.

[0095] In the embodiment of the present invention, the extreme value ratio is compared with a preset inter-pulse interference judgment factor index to determine whether inter-pulse interference exists.

[0096] If ratio≤index, it means there is inter-pulse interference. In this case, the AntiInterPulse function (a function used to set all elements in the column vector corresponding to the pulse signal with inter-pulse interference to zero) is called to suppress the inter-pulse interference. The difference between the global maximum amplitude address max_it and the first address of the max_value array obtained above is taken as the value:

[0097] max_index=max_it-max_value;

[0098] Among them, the first address of the max_value array refers to the starting address of a piece of memory space. This memory space refers to the space where the max_value array stores the maximum amplitude of each pulse signal. The memory space has a corresponding starting address. According to this starting address combined with the offset, every value in this memory space can be accessed.

[0099] By obtaining the max_index value, it can be concluded that max_v is located in the k-th pulse signal. Then, on the GPU side, all the pulse signals are set to zero through parallel operations, and other undisturbed pulse signals are retained, so that the inter-pulse interference can be quickly suppressed.

[0100] The following is an example to further illustrate the above process:

[0101] After finding the maximum amplitude of each pulse signal, the max_value array stores the maximum amplitude of each pulse signal in pulse order using continuous memory space. The first address of this memory space is max_value. The address corresponding to the previously obtained max_v is an absolute address. That is, if the address of the entire memory space starts at 0 and the starting address of this allocated memory space is 20, then the address corresponding to the maximum amplitude of the first pulse signal is 21, and the address corresponding to the maximum amplitude of the second pulse signal is 22. If the address corresponding to the previously obtained max_v is 25, it does not mean that the global maximum amplitude is the maximum amplitude of the 25th pulse, but rather 25-20=5, which is the maximum amplitude corresponding to the 5th pulse signal. At this point, the pulse signal corresponding to the global maximum amplitude is the 5th pulse signal. Then, on the GPU side, the 5th pulse signal is reset to zero through parallel operations, retaining the other undisturbed pulse signals, thus achieving rapid suppression of inter-pulse interference.

[0102] In one implementation, if ratio>index, it means that there is no inter-pulse interference, and the determination of intra-pulse interference is continued.

[0103] In this embodiment of the present invention, interpulse interference (IPI) refers to the interference signal that occurs between two consecutive radar pulse signals. This type of interference does not directly overwrite the radar's transmitted pulse signal. The basis for determining IPI is that the IPI is simply added to a certain pulse signal, while the other pulse signals are free of interference. In this case, the amplitude of the interfering pulse signal is significantly higher than that of the remaining uninterrupted pulse signals. By finding the maximum value of each pulse signal and then calculating the maximum and minimum values of these maximum values, and comparing these two values with the decision factor, the presence of IPI can be determined.

[0104] Step S104 , mapping each element in each pulse signal to a GPU thread, so as to use each GPU thread to calculate the square of the modulus value of each element in the pulse signal to determine whether there is intra-pulse interference in the pulse signal.

[0105] In this embodiment of the present invention, a pulse signal is randomly extracted and an all-zero array is constructed for it. Each element in the pulse signal corresponds to a position in the all-zero array. For example, if the length of the pulse signal is Nr, an all-zero array d_zero of length Nr is defined in the video memory.

[0106] Take the kth pulse signal where the max_v value is located as an example, and then call the allnum kernel function (a function used to determine the number of all elements in a column signal that are greater than a given value) to execute on the GPU side. The allnum kernel function performs the following operations:

[0107] All the data in the k-th pulse signal, a pulse signal is a column vector, all the data refers to all the elements in the column vector, all correspond to the GPU threads, each thread corresponds to a value in the column vector, and then each thread calculates the element, that is, the square value of the modulus value of the complex data, and then calculates max_v as an example:

[0108] Th_value1=Th*max_v*Th*max_v;

[0109] Wherein, Th is the intra-pulse interference threshold factor; Th_value1 is the first threshold.

[0110] Compare value with Th_value1. When value > Th_value1, set the element corresponding to value to 1 in the corresponding position in d_zero.

[0111] Copy the resulting array d_zero from the GPU to h_zero on the CPU using the accumulate function. This is the cumulative sum of all the values in the array, which gives the sum of the number of data points in the k-th pulse signal that exceed the first threshold Th_value1.

[0112] In the embodiment of the present invention, the intra-pulse interference judgment factor index1 is calculated as follows:

[0113] index1=1.2*Tarlength / 2;

[0114] Where Tarlength is the effective length of each pulse signal.

[0115] The intra-pulse interference is judged based on sum and the intra-pulse interference judgment factor, as follows:

[0116] If sum>index1, it means there is no inter-pulse interference at this time;

[0117] If sum>index1 / 2 and sum≤index1, it means there are two interference segments in the pulse signal;

[0118] If sum≤index1 / 2, it means that there is an interference segment in the pulse signal.

[0119] Step S105: If so, the elements in the pulse signal corresponding to the GUP thread with intra-pulse interference are set to zero to complete the suppression of the intra-pulse interference.

[0120] In an embodiment of the present invention, if intra-pulse interference exists in a pulse signal, intra-pulse interference suppression is performed on it by calling the AntiJamGenmainMod function. The AntiJamGenmainMod function compares all elements in a column vector with a given value. If the element value is greater than the given value, the corresponding position of the element in the column vector is set to zero; otherwise, it remains unchanged. The specific operation is as follows:

[0121] The obtained array max_value containing the maximum amplitude of each pulse signal is transferred from the CPU side to the GPU side d_max_value;

[0122] Call the cuJamAbs kernel function (a function for obtaining modulus values) to obtain the complex data in each pulse signal, that is, the modulus value of the element, and store the result in the d_abs_str array in the video memory;

[0123] Call the AntiJamKernel function (a function used to set elements in an array greater than a given value to zero) to suppress intra-pulse interference. Each element of the pulse signal is assigned to a thread. Each thread performs the following operations: obtain the corresponding radar echo data modulus value2 from the d_abs_str array, extract the corresponding pulse amplitude maximum value d_max from the d_max_value array, and then calculate:

[0124] Th_value2 = Th*d_max;

[0125] Where Th is the intra-pulse interference threshold factor; Th_value2 is the intra-pulse interference threshold, and then compare the value2 value with the Th_value2 value. If value2>Th_value2, the element corresponding to the thread is set to zero, otherwise it remains unchanged.

[0126] Waiting for all threads to be executed completes the rapid suppression of intra-pulse interference.

[0127] In the embodiment of the present invention, if there is no intra-pulse interference in the pulse signal, the original signal remains unchanged.

[0128] In the embodiments of the present invention, intra-pulse interference refers to an interference signal present throughout the entire radar pulse duration, which overwhelms the radar's transmit pulse and contaminates the received echo. Inter-pulse interference is determined based on the fact that when an echo signal is affected by intra-pulse interference, each pulse signal exhibits intra-pulse interference. Select a pulse signal and determine the number of data points within that signal that exceed a threshold. If intra-pulse interference is absent, the signal amplitudes remain essentially uniform, and the amplitudes of the data points within that signal are generally all below the threshold. However, if intra-pulse interference is present, the amplitude of the signal segment experiencing the interference will experience a large sudden change, resulting in a significant amount of data points exceeding the threshold, indicating the presence of intra-pulse interference.

[0129] In the embodiment of the present invention, compared with the method of achieving interference suppression by estimating interference parameters in the prior art, interference can be quickly identified and suppressed only by amplitude maximum statistics, which simplifies the interference identification and suppression steps and reduces the amount of calculation.

[0130] In addition, each element in each pulse signal is mapped to a GPU thread, so that each GPU thread can determine whether there is intra-pulse interference in the pulse signal by calculating the square value of the modulus value of each element in the pulse signal. By using the GPU thread unit for parallel processing, the computing efficiency can be greatly improved to meet the real-time requirements.

[0131] A simulation experiment of an interference identification and suppression method for intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention is shown below:

[0132] The parameters of the simulated radar are shown in Table 1.

[0133] Table 1 Simulation radar parameters

[0134] carrier frequency bandwidth Pulse repetition frequency Pulse Width Number of pulses Intra- and inter-vein Costas coding sequences 5.5GHz 40MHz 10KHz 10us 13 {4,2,3,1}

[0135] In this simulation experiment, intermittent sampling interference, smart noise interference, narrowband aiming frequency interference and dense false target interference are used as interference signals to interfere with the radar echo signal.

[0136] See also Figure 3 , Figure 3 This is a schematic diagram of the results of resisting intermittent sampling interference. Figure 3 Figure (a) represents the initial radar echo signal without superimposed interference. Figure 3 Figure (b) shows a fragment of intermittent sampling interference signal, which occupies one quarter of the radar echo signal width. Figure 3 Figure (c) shows that the initial radar echo signal is superimposed with the interference signal. Figure 3 Figure (d) and Figure 3 Figure (e) shows the result obtained after processing by the fast interference identification and suppression method proposed in the embodiment of the present invention. Figure 3 Figure (d) is the radar echo signal after the interference signal is suppressed. Figure 3 Figure (e) shows that the interference signal type is determined to be intra-pulse interference, and a fragment of the interference signal is superimposed on the radar echo signal.

[0137] See also Figure 4 , Figure 4 This is a schematic diagram of the results of resisting smart noise interference. Figure 4 Figure (a) represents the initial radar echo signal without superimposed interference. Figure 4 Figure (b) shows a two-segment smart noise jammer that occupies half the width of the radar echo signal. Figure 4 Figure (c) shows that the initial radar echo signal is superimposed with the interference signal. Figure 4 Figure (d) and Figure 4 Figure (e) shows the results obtained after processing by the fast interference identification and suppression method proposed in the present invention. Figure 4 Figure (d) is the radar echo signal after the interference signal is suppressed. Figure 4 Figure (e) shows that the interference signal type is determined to be intra-pulse interference, and two fragments of interference signals are superimposed on the radar echo signal.

[0138] See also Figure 5 and Figure 6 , Figure 5 This is a schematic diagram of the results of resisting narrowband aiming frequency interference. Figure 6 This is the result diagram of resisting dense false target interference. Figure 5 and Figure 6 Figure (a) represents the initial radar echo signal without superimposed interference. Figure 5 Figure (b) shows a narrowband aiming frequency jammer. Figure 6 Figure (b) represents dense false target interference signals. Figure 5 and Figure 6 The (c) diagram in the figure shows the initial radar echo signal superimposed with the interference signal, Figure 5 and Figure 6 Figure (d) and Figure 5 and Figure 6 Figure (e) shows the result obtained after processing by the fast interference identification and suppression method proposed in the embodiment of the present invention. Figure 5 and Figure 6 Figure (d) in the figure is the radar echo signal diagram after the interference signal is suppressed. Figure 5 and Figure 6 Figure (e) shows that the type of interference signal superimposed in the signal is judged to be inter-pulse interference.

[0139] Based on the above simulation experiments, the correctness, effectiveness and reliability of the interference identification and suppression method for intra-pulse and inter-pulse Costas coding provided by the embodiment of the present invention are verified.

[0140] Based on the same inventive concept, the embodiment of the present invention further provides an interference identification and suppression device for intra-pulse and inter-pulse Costas coding, see Figure 7 , Figure 7 1 is a schematic structural diagram of an interference identification and suppression device for intra-pulse and inter-pulse Costas coding provided by an embodiment of the present invention, the interference identification and suppression device comprising:

[0141] The receiving module 701 is used to transmit a coded transmit signal and receive an echo signal reflected by a target; the coded transmit signal is generated by performing intra-pulse and inter-pulse coding on the transmit signal using a Costas coding sequence;

[0142] a calculation module 702 for calculating the maximum amplitude value in each pulse signal in the echo signal, and calculating the extreme value ratio among the multiple maximum amplitude values;

[0143] A first zeroing module 703 is configured to set all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values to zero if the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, thereby suppressing inter-pulse interference;

[0144] a determination module 704 for mapping each element in each pulse signal to a GPU thread, so as to determine whether intra-pulse interference exists in the pulse signal by calculating the square of the modulus value of each element in the pulse signal using each GPU thread;

[0145] The second zeroing module 705 is used to set the elements in the pulse signal corresponding to the GUP thread with intra-pulse interference to zero, if any, to suppress the intra-pulse interference.

[0146] In the embodiment of the present invention, compared with the method of achieving interference suppression by estimating interference parameters in the prior art, interference can be quickly identified and suppressed only by amplitude maximum statistics, which simplifies the interference identification and suppression steps and reduces the amount of calculation.

[0147] In addition, each element in each pulse signal is mapped to a GPU thread, so that each GPU thread can determine whether there is intra-pulse interference in the pulse signal by calculating the square value of the modulus value of each element in the pulse signal. By using the GPU thread unit for parallel processing, the computing efficiency can be greatly improved to meet the real-time requirements.

[0148] Optionally, the method of performing intra-pulse encoding on the transmission signal using the Costas coding sequence includes:

[0149] Slicing a transmit pulse signal in the transmit signal to obtain a plurality of sub-transmit pulse signals;

[0150] All sub-transmitting pulse signals are encoded using the Costas coding sequence to complete the intra-pulse coding operation on the transmitting signal.

[0151] Optionally, all sub-transmitted pulse signals are encoded using the Costas coding sequence, which is expressed as follows:

[0152]

[0153] in, Indicates that the sub-transmitter transmits a pulse signal; represents fast time; n=1, 2, ..., N, N represents the number of transmission pulse signals in the transmission signal; k=1, 2, ..., K, K represents the number of sub-transmission pulse signals in each transmission pulse signal; represents the window function; γ represents the frequency modulation slope; B sub represents the bandwidth of the sub-transmitted pulse signal; T sub Indicates the pulse width of the sub-transmitted pulse signal; a n,kis a random number in {0, 1, 2, ..., K-1}, belonging to the Costas code sequence, representing the frequency code of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; Δf represents the minimum frequency interval between sub-transmitted pulse signals; j represents the imaginary unit; rect(·) represents the rectangular function; u(·) represents the complex envelope of the sub-transmitted pulse signal.

[0154] Optionally, the method of performing inter-pulse encoding on the transmission signal using the Costas coding sequence includes:

[0155] The Costas coding sequence is used to encode the initial carrier frequency of each transmission pulse signal in the transmission signal, so as to complete the inter-pulse coding operation of the transmission signal.

[0156] Optionally, the initial carrier frequency of each transmission pulse signal in the transmission signal is encoded using a Costas coding sequence, which is expressed as follows:

[0157]

[0158] in, Indicates the transmission pulse signal; t n =(n-1)T r Indicates slow time, T r represents the pulse repetition period of the transmitted signal; f n Indicates the carrier frequency of the nth transmitted pulse signal, f n =f0+a(n)ΔF, where f0 represents the initial carrier frequency, ΔF represents the minimum frequency interval between transmitted pulse signals, a(n) is a random number in {0, 1, 2, ... M-1}, belongs to the Costas coding sequence, and represents the frequency modulation codeword of the nth transmitted pulse signal, M represents the total number of transmitted pulse signals, K represents the number of sub-transmitted pulse signals in each transmitted pulse signal; u(·) represents the complex envelope; a n,k is a random number in {0, 1, 2, ..., K-1}, belongs to the Costas coding sequence, and represents the frequency code of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; n=1, 2, ..., N, where N represents the number of transmitted pulse signals in the transmitted signal.

[0159] Optional computing module, specifically used for:

[0160] Calculate the maximum amplitude value in each pulse signal in the echo signal, and store the maximum amplitude values in each pulse signal in the max_value array in pulse order; obtain the global maximum amplitude value and the global minimum amplitude value in the max_value array; compare the global minimum amplitude value with the global maximum amplitude value to obtain the extreme value ratio.

[0161] Optionally, the first zeroing module is specifically configured to:

[0162] If the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, the pulse signal corresponding to the global amplitude maximum value is determined according to the address of the global amplitude maximum value in the max_value array and the first address of the max_value array; and the pulse signals corresponding to the global amplitude maximum value are all set to zero through parallel operation to achieve inter-pulse interference suppression.

[0163] The embodiment of the present invention further provides an electronic device, such as Figure 8 As shown, it includes a processor 801, a communication interface 802, a memory 803 and a communication bus 804, wherein the processor 801, the communication interface 802, and the memory 803 communicate with each other through the communication bus 804.

[0164] Memory 803, used for storing computer programs;

[0165] The processor 801 is configured to implement the method steps of any of the above-mentioned methods for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding when executing the program stored in the memory 803 .

[0166] The communication bus mentioned in the electronic device mentioned above may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. This communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is used in the figure, but this does not mean that there is only one bus or only one type of bus.

[0167] The communication interface is used for communication between the above electronic device and other devices.

[0168] The memory may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage. Alternatively, the memory may be at least one storage device located away from the processor.

[0169] The above-mentioned processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, and discrete hardware components.

[0170] The present invention also provides a computer-readable storage medium having a computer program stored therein, which, when executed by a processor, implements the steps of any of the above-mentioned methods for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding.

[0171] Optionally, the computer-readable storage medium may be a non-volatile memory (NVM), such as at least one disk memory.

[0172] Optionally, the computer-readable storage medium may also be at least one storage device located away from the processor.

[0173] In another embodiment of the present invention, a computer program product comprising instructions is provided. When the computer program product is executed on a computer, the computer is enabled to execute the method steps described in any one of the above methods for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding.

[0174] It should be noted that the terms "first," "second," and the like are used to distinguish similar objects and are not necessarily used to describe a particular order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate, so that the embodiments of the present invention described herein can be implemented in sequences other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present invention. Instead, they are merely examples of devices and methods consistent with some aspects of the present invention.

[0175] In the description of this specification, the reference terms "one embodiment," "some embodiments," "example," "specific example," or "some examples" mean that the specific features or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features or characteristics described can be combined in any suitable manner in any one or more embodiments or examples. In addition, those skilled in the art can combine and combine different embodiments or examples described in this specification.

[0176] Although the present invention is described herein in conjunction with various embodiments, in the process of implementing the claimed invention, those skilled in the art can understand and implement other variations of the disclosed embodiments by viewing the drawings and the disclosed content. In the description of the present invention, the word "comprising" does not exclude other components or steps, "one" or "a" does not exclude multiple situations, and "multiple" means two or more, unless otherwise clearly and specifically defined. In addition, certain measures are recorded in different embodiments, but this does not mean that these measures cannot be combined to produce good results.

[0177] The method provided in the embodiments of the present invention can be applied to electronic devices. Specifically, the electronic devices can be desktop computers, portable computers, smart mobile terminals, servers, etc. This is not limited here; any electronic device that can implement the present invention falls within the scope of protection of the present invention.

[0178] As for the device / electronic device / storage medium embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0179] It should be noted that the device, electronic device and storage medium of the embodiments of the present invention are respectively the device, electronic device and storage medium that apply the above-mentioned method for interference identification and suppression of intra-pulse and inter-pulse Costas coding. All embodiments of the above-mentioned method for interference identification and suppression of intra-pulse and inter-pulse Costas coding are applicable to the device, electronic device and storage medium, and can achieve the same or similar beneficial effects.

[0180] The above is a further detailed description of the present invention in conjunction with specific preferred embodiments, and the specific implementation of the present invention should not be considered to be limited to these descriptions. For those skilled in the art of the present invention, without departing from the concept of the present invention, several simple deductions or substitutions can be made, which should be considered to fall within the scope of protection of the present invention.

Claims

1. A method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding, characterized in that: The interference identification and suppression method comprises: Transmitting a coded transmit signal and receiving an echo signal reflected by a target according to the coded transmit signal; the coded transmit signal is generated by performing intra-pulse and inter-pulse coding on the transmit signal using a Costas coding sequence; Calculating the maximum amplitude value in each pulse signal in the echo signal, and calculating the extreme value ratio among the multiple maximum amplitude values; If the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values are set to zero to achieve inter-pulse interference suppression; Each element in each pulse signal is assigned to a GPU thread, so as to determine whether there is intra-pulse interference in the pulse signal by calculating the square of the modulus value of each element in the pulse signal using each GPU thread; If it exists, the elements in the pulse signal corresponding to the GUP thread with intra-pulse interference are set to zero to complete the suppression of the intra-pulse interference.

2. The interference identification and suppression method according to claim 1, characterized in that: The method of performing intra-pulse encoding on the transmission signal using the Costas coding sequence includes: Slicing a transmit pulse signal in the transmit signal to obtain a plurality of sub-transmit pulse signals; All sub-transmitting pulse signals are encoded using the Costas coding sequence to complete the intra-pulse coding operation on the transmitting signal.

3. The interference identification and suppression method according to claim 2, characterized in that: All sub-transmitted pulse signals are encoded using the Costas coding sequence, and the formula is expressed as follows: in, Indicates that the sub-transmitter transmits a pulse signal; represents fast time; n=1, 2, ..., N, N represents the number of transmission pulse signals in the transmission signal; k=1, 2, ..., K, K represents the number of sub-transmission pulse signals in each transmission pulse signal; represents the window function; γ represents the frequency modulation slope; B sub represents the bandwidth of the sub-transmitted pulse signal; T sub Indicates the pulse width of the sub-transmitted pulse signal; a n,k is a random number in {0, 1, 2, ..., K-1}, belonging to the Costas code sequence, representing the frequency code of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; Δf represents the minimum frequency interval between sub-transmitted pulse signals; j represents the imaginary unit; rect(·) represents the rectangular function; u(·) represents the complex envelope of the sub-transmitted pulse signal.

4. The interference identification and suppression method according to claim 3, characterized in that: The method of using the Costas coding sequence to perform inter-pulse coding on the transmission signal includes: The Costas coding sequence is used to encode the initial carrier frequency of each transmission pulse signal in the transmission signal, so as to complete the inter-pulse coding operation of the transmission signal.

5. The interference identification and suppression method according to claim 4, characterized in that: The initial carrier frequency of each transmission pulse signal in the transmission signal is encoded using the Costas coding sequence, which is expressed as follows: in, Indicates the transmission of pulse signal; Indicates fast time; t n represents slow time, t n =(n-1)T r , T r represents the pulse repetition period of the transmitted signal; j represents an imaginary unit; Indicates the sub-transmitted pulse signal; T sub Indicates the pulse width of the sub-transmitted pulse signal; f n Indicates the carrier frequency of the nth transmitted pulse signal, f n =f0+a(n)ΔF, where f0 represents the initial carrier frequency, ΔF represents the minimum frequency interval between transmitted pulse signals, a(n) is a random number in {0, 1, 2, ... M-1}, belongs to the Costas coding sequence, and represents the frequency modulation codeword of the nth transmitted pulse signal, M represents the total number of transmitted pulse signals; k = 1, 2, ..., K, K represents the number of sub-transmitted pulse signals in each transmitted pulse signal; u(·) represents the complex envelope; a n,k is a random number in {0, 1, 2, ..., K-1}, belongs to the Costas coding sequence, and represents the frequency code of the kth sub-transmitted pulse signal in the nth transmitted pulse signal; n=1, 2, ..., N, where N represents the number of transmitted pulse signals in the transmitted signal.

6. The interference identification and suppression method according to claim 1, characterized in that: Calculating the maximum amplitude value in each pulse signal in the echo signal and calculating the extreme value ratio among the multiple amplitude maximum values, including: Calculate the maximum amplitude of each pulse signal in the echo signal, and store the maximum amplitude of each pulse signal in the max_value array in order of pulses; Obtain the maximum and minimum global amplitudes in the max_value array; The global amplitude minimum value and the global amplitude maximum value are compared to obtain an extreme value ratio.

7. The interference identification and suppression method according to claim 6, characterized in that: If the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values are set to zero to achieve inter-pulse interference suppression, including: If the extreme value ratio is less than or equal to the preset inter-pulse interference judgment factor, determining the pulse signal corresponding to the global amplitude maximum value according to the address of the global amplitude maximum value in the max_value array and the first address of the max_value array; All pulse signals corresponding to the global amplitude maximum are set to zero through parallel operation, thereby achieving suppression of inter-pulse interference.

8. An interference identification and suppression device for intra-pulse and inter-pulse Costas coding, characterized in that: The interference identification and suppression device comprises: A receiving module is configured to transmit a coded transmit signal and receive an echo signal reflected by a target according to the coded transmit signal; the coded transmit signal is generated by performing intra-pulse and inter-pulse coding on the transmit signal using a Costas coding sequence; a calculation module, configured to calculate the maximum amplitude value in each pulse signal in the echo signal, and calculate the extreme value ratio among the multiple amplitude maximum values; a first zeroing module, configured to set all pulse signals corresponding to the global amplitude maximum value among the multiple amplitude maximum values to zero if the extreme value ratio is less than or equal to a preset inter-pulse interference judgment factor, thereby suppressing inter-pulse interference; a determination module, configured to map each element in each pulse signal to a GPU thread, so as to determine whether there is intra-pulse interference in the pulse signal by calculating the square of the modulus value of each element in the pulse signal using each GPU thread; The second zeroing module is used to set the elements in the pulse signal corresponding to the GUP thread with intra-pulse interference to zero if any, so as to suppress the intra-pulse interference.

9. An electronic device, characterized in that: It includes a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other via the communication bus; Memory for storing computer programs; The processor is configured to implement the method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding as described in any one of claims 1 to 7 when executing a computer program stored in the memory.

10. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method for identifying and suppressing interference of intra-pulse and inter-pulse Costas coding according to any one of claims 1 to 7 is implemented.