DSPRelated.com
Forums

Predistortion of Wideband Chirp

Started by LearningDSP March 21, 2008
I am trying to predistort a wideband chirp for a RADAR system with
approximately 1GHz of bandwidth.  Currently as the frequency increases
the power drops off about 4dBm, and I am trying to create a flat
frequency response.  I have looked online at predistortion techniques
and most involve a feedback loop to adjust the output of the
waveform.  I will be unable to do that because the equipment I have to
generate my RF will require a parameters update.  This will require
the system to temporarily halt for adjustments and that is
unacceptable in this application.  What I did was look at signal in
the time domain and measured how much the signal dropped off and added
the lost power back in the digitally created chirp.  I then readjusted
the voltages to keep the device out of saturation, and that fixed most
of the problem.  Unfortunately, there is still some variation in the
signal that isn't linear, there is a small amount of ripple in the
output signal.  The drop in power is consistent so I believe it can be
removed.  What would be the best way to take this out?  I hope I
explained this well and that all the needed details are there and any
advice would be greatly appreciated.

Thanks in advance.
On Mar 22, 8:51&#4294967295;am, LearningDSP <birdfors...@gmail.com> wrote:
> I am trying to predistort a wideband chirp for a RADAR system with > approximately 1GHz of bandwidth. &#4294967295;Currently as the frequency increases > the power drops off about 4dBm, and I am trying to create a flat > frequency response. &#4294967295;I have looked online at predistortion techniques > and most involve a feedback loop to adjust the output of the > waveform. &#4294967295;I will be unable to do that because the equipment I have to > generate my RF will require a parameters update. &#4294967295;This will require > the system to temporarily halt for adjustments and that is > unacceptable in this application. &#4294967295;What I did was look at signal in > the time domain and measured how much the signal dropped off and added > the lost power back in the digitally created chirp. &#4294967295;I then readjusted > the voltages to keep the device out of saturation, and that fixed most > of the problem. &#4294967295;Unfortunately, there is still some variation in the > signal that isn't linear, there is a small amount of ripple in the > output signal. &#4294967295;The drop in power is consistent so I believe it can be > removed. &#4294967295;What would be the best way to take this out? &#4294967295;I hope I > explained this well and that all the needed details are there and any > advice would be greatly appreciated. > > Thanks in advance.
Hi The predistortion techniques you have read about are designed to compensate for #non-linear# distortion in amplifiers. This is the type of distortion where the gain of the amplifier changes depending on the input signal power, and it causes the generation of new frequency components (e.g. harmonics) in the frequency domain. In the case of your radar transmitter, you are talking about #linear# distortion, where the gain changes over frequency (dropping off by 4dB like you said), but is (hopefully) not dependent on input power. In other words, it is like you had a linear gentle low-pass filter on the output of a perfect transmitter. Hopefully the shape of this response will also not vary much over time - for example as the amplifier warms up from cold. In that case, you don't need any adaptive equalizer and should just be able to calibrate once and then compensate in your digitally generated chirp (I assume you are using a DAC to generate the baseband chirp). I'm not exactly sure why your method is not working so well... but it would probably be better to do it in the frequency domain: First capture the chirp signal from the output of your transmitter (it's a good idea to zero pad it somewhat at the end), and FFT it. Then take the "reference" signal (the waveform you put into the DAC), zero pad it so it is the same length as the received signal, and FFT that too. Use the complex FFT output rather than its magnitude/power so you have phase information too. Then divide the FT of the received signal by the FT of the reference signal - that gives you an estimate of the transfer function of your transmitter chain. Now you need to "tidy up" this transfer function a bit. Firstly, assuming your chirp does not extend exactly from DC to the nyquist frequency, the estimated transfer function at frequencies outside the frequency range of the chirp will be very noisy/inaccurate, so you might want to set them to some mean value. Also, if there are any deep nulls in the transfer function (close to zero), you might want to artificially increase them otherwise you may cause problems in the compensation in the next stage. Might be a good idea to normalize the transfer function too, to minimise the chance of numerical errors (Matlab or similar is good for this kind of thing). Finally, take the FT of the reference signal, divide it by this tidied- up transfer function, then take the IFT. You might find there is some ringing in the time domain at the end of the main chirp, so you will have to decide where you want to truncate it. Now try transmitting using that signal. Of course, I assume you have a coherent receiver with sampling rate of at least 2 GHz to allow you to do this (quite close to the current state of the art in commercially available ADCs). These tend to only have about 7 bits of dynamic range, although that needn't be an issue for your current problem. Finally, if you are mainly interested in range resolution, you will probably find that the cross correlation between the output of the transmitter and the reference signal is quite intolerant of small errors in frequency response - mostly you are worried about increased range sidelobes. Also, after doing the main calibration, you could try recording the actual output of the transmitter again, and using that in the range processor (cross correlator), as that might have a better range profile than using the ideal reference. Hope that helps Tom
On Mar 22, 3:48&#4294967295;am, Tom <tom.der...@gmail.com> wrote:
> On Mar 22, 8:51&#4294967295;am, LearningDSP <birdfors...@gmail.com> wrote: > > > > > > > I am trying to predistort a wideband chirp for a RADAR system with > > approximately 1GHz of bandwidth. &#4294967295;Currently as the frequency increases > > the power drops off about 4dBm, and I am trying to create a flat > > frequency response. &#4294967295;I have looked online at predistortion techniques > > and most involve a feedback loop to adjust the output of the > > waveform. &#4294967295;I will be unable to do that because the equipment I have to > > generate my RF will require a parameters update. &#4294967295;This will require > > the system to temporarily halt for adjustments and that is > > unacceptable in this application. &#4294967295;What I did was look at signal in > > the time domain and measured how much the signal dropped off and added > > the lost power back in the digitally created chirp. &#4294967295;I then readjusted > > the voltages to keep the device out of saturation, and that fixed most > > of the problem. &#4294967295;Unfortunately, there is still some variation in the > > signal that isn't linear, there is a small amount of ripple in the > > output signal. &#4294967295;The drop in power is consistent so I believe it can be > > removed. &#4294967295;What would be the best way to take this out? &#4294967295;I hope I > > explained this well and that all the needed details are there and any > > advice would be greatly appreciated. > > > Thanks in advance. > > Hi > > The predistortion techniques you have read about are designed to > compensate for #non-linear# distortion in amplifiers. This is the type > of distortion where the gain of the amplifier changes depending on the > input signal power, and it causes the generation of new frequency > components (e.g. harmonics) in the frequency domain. > > In the case of your radar transmitter, you are talking about #linear# > distortion, where the gain changes over frequency (dropping off by 4dB > like you said), but is (hopefully) not dependent on input power. In > other words, it is like you had a linear gentle low-pass filter on the > output of a perfect transmitter. > Hopefully the shape of this response will also not vary much over time > - for example as the amplifier warms up from cold. In that case, you > don't need any adaptive equalizer and should just be able to calibrate > once and then compensate in your digitally generated chirp (I assume > you are using a DAC to generate the baseband chirp). > > I'm not exactly sure why your method is not working so well... but it > would probably be better to do it in the frequency domain: > > First capture the chirp signal from the output of your transmitter > (it's a good idea to zero pad it somewhat at the end), and FFT it. > Then take the "reference" signal (the waveform you put into the DAC), > zero pad it so it is the same length as the received signal, and FFT > that too. Use the complex FFT output rather than its magnitude/power > so you have phase information too. > Then divide the FT of the received signal by the FT of the reference > signal - that gives you an estimate of the transfer function of your > transmitter chain. > Now you need to "tidy up" this transfer function a bit. Firstly, > assuming your chirp does not extend exactly from DC to the nyquist > frequency, the estimated transfer function at frequencies outside the > frequency range of the chirp will be very noisy/inaccurate, so you > might want to set them to some mean value. Also, if there are any deep > nulls in the transfer function (close to zero), you might want to > artificially increase them otherwise you may cause problems in the > compensation in the next stage. Might be a good idea to normalize the > transfer function too, to minimise the chance of numerical errors > (Matlab or similar is good for this kind of thing). > Finally, take the FT of the reference signal, divide it by this tidied- > up transfer function, then take the IFT. You might find there is some > ringing in the time domain at the end of the main chirp, so you will > have to decide where you want to truncate it. Now try transmitting > using that signal. > > Of course, I assume you have a coherent receiver with sampling rate of > at least 2 GHz to allow you to do this (quite close to the current > state of the art in commercially available ADCs). These tend to only > have about 7 bits of dynamic range, although that needn't be an issue > for your current problem. > > Finally, if you are mainly interested in range resolution, you will > probably find that the cross correlation between the output of the > transmitter and the reference signal is quite intolerant of small > errors in frequency response - mostly you are worried about increased > range sidelobes. Also, after doing the main calibration, you could try > recording the actual output of the transmitter again, and using that > in the range processor (cross correlator), as that might have a better > range profile than using the ideal reference. > > Hope that helps > > Tom- Hide quoted text - > > - Show quoted text -
Thank you so much for that detail response. I have one question. You said, 'Use the complex FFT output rather than its magnitude/power so you have phase information too.' Because the AD produces real data, I am not sure how you would produce a complex FFT. I know I could do a Hilbert transform but will that add some error to my calculations. Was there something else you had in mind? Also the last paragraph about using a sampled transmit signal for correlation instead of the ideal reference is a great idea and I am glad you mentioned it. Thanks.
> Thank you so much for that detail response. &#4294967295;I have one question. &#4294967295;You > said, 'Use the complex FFT output rather than its magnitude/power > so you have phase information too.' &#4294967295;Because the AD produces real > data, I am not sure how you would produce a complex FFT. &#4294967295;I know I > could do a Hilbert transform but will that add some error to my > calculations. &#4294967295;Was there something else you had in mind?
Hi You have a bit of a misunderstanding there. Just because the signal is real does not mean its Fourier transform is! In fact in almost all cases it is complex. In fact, the Fourier transform of a real signal is conjugate symmetric - i.e. the negative frequencies are equal to the positive ones (same magnitude) but with conjugated phase. You can generate (an approximation to) the "analytic signal" by setting those negative frequencies to zero (and, strictly, halving the amplitude of the DC and Nyquist terms), and then doing an IFFT. The real part of the analytic signal is the same as your original real signal, while the imaginary part equals the Hilbert transform of the real signal (again, they are approximations since the captured signal is of finite length). In your case, just for simplicity, you might be as well to ignore (ie set to zero) the negative frequencies, then take the real part of the time-domain signal once you are finished. Finally, to understand the meaning of phase in the frequency domain, you might like to try playing around with some different spectrums with the same magnitude but different phases, then taking the IFT to find the time-domain signal. For a spectrum with more-or-less flat and wideband magnitude, if its phase is flat or linear you end up with a delta-like pulse in the time domain, if it changes quadratically you end up with a chirp, and if it is random you end up with (pseudo) noise! Tom
> Finally, if you are mainly interested in range resolution, you will > probably find that the cross correlation between the output of the > transmitter and the reference signal is quite intolerant of small > errors in frequency response - mostly you are worried about increased > range sidelobes.
I just noticed a small error in what I wrote: "intolerant" should be "tolerant"! The first thing that occurs will probably be some asymmetry in the range sidelobes on either side of the mainlobe, although if you are time-domain amplitude weighting the chirp (either sq-root on tx and rx, or the full weighting function on rx only - "weighting on receive"), then you might not even notice that. Greater errors will cause an asymmetric mainlobe, higher close-in sidelobes, and probably a general increase in the correlation response at large lags. Tom