0
Follow
0
View

How does the echo of PD radar's linear frequency modulation signal sent by mechanical rotation reach the digital down conversion module?

danian66 注册会员
2023-02-25 11:17

The answer part of the reference to GPT, GPT_Pro better solve the problem
PD radar using mechanical rotation to send linear frequency modulation signal echo how to reach the digital down conversion module?

First, PD radar uses mechanical rotation to transmit the echo of the wired frequency modulation signal to the receiver through the optical lens, and then the photoelectric receiver converts the photoelectric signal into electrical signal.
Next, the electrical signal is given a digital sequence by the high speed AD sampling unit, which is passed to the digital down conversion module.
Digital down conversion module will process the input digital sequence, and effectively process the echo signal, so as to obtain effective information.
Among them, the most commonly used is fast Fourier transform(FFT), which can effectively convert the time domain sequence into the frequency domain sequence, so as to obtain the radar signal characteristics.
Finally, after the processing is completed in the digital down conversion module, the signal obtained is the effective radar echo signal, which can be used in the subsequent signal processing.

// 代码示例
void FFT(double data[], int length) {
    int k, j, m;
    double w_real, w_imag, temp_real, temp_imag;
    for (k = 2; k <= length; k <<= 1) {
        for (j = 0; j < k / 2; j++) {
            w_real = cos(2 * PI * j / k);
            w_imag = -sin(2 * PI * j / k);
            for (m = 0; m < length; m += k) {
                temp_real = data[m + j];
                temp_imag = data[m + j + k / 2];
                data[m + j] = temp_real + w_real * temp_imag - w_imag * temp_imag;
                data[m + j + k / 2] = temp_real - w_real * temp_imag + w_imag * temp_imag;
            }
        }
    }

    int i, l, r;
    for (i = 1, l = length / 2; i < length - 1; i++) {
        if (i < l) {
            double temp = data[l];
            data[l] = data[i]; 
            data[i] = temp; 
        } 

        r = length; 

        while (r <= l) { 
            l -= r; 
            r /= 2; 
        } 

        l += r; 

    } 

    return ; 
} 

If the answer is helpful, please accept it.