Linear FM, pulse compression and Matlab

Status
Not open for further replies.

kviksand81

Newbie level 5
Joined
Jan 6, 2013
Messages
8
Helped
5
Reputation
10
Reaction score
4
Trophy points
1,283
Activity points
1,356
Hi there!

I have an assignment that goes as follows:

Pulse compression by using a Linear FM signal
1) Consider a (real) Linear FM signal with a center frequency, f0= 1250 MHz, a bandwidth, B = 100 MHz, and a length, T = 0.15 µs.

- What is the required sampling frequency, fs?​
- Derive an expression for the pulse.​
- Generate 1024 samples with the signal in MATLAB.​
- Display the signal (time vs. magnitude). Display the spectrum (freq. vs. magnitude).​
- Generate the same signal with a factor 8 over-sampling. Observe the difference
between the appearance of the signal without and with over sampling. Does the latter
provide more information for a computer? Does it provide more information for a
human?​
- Display the signal (time vs. magnitude). Display the spectrum (freq. vs. magnitude).​

What puzzles me here is what to expect. In general, I would expect a linear compression of frequency to look like this in time:



But using an expression from the lecture material which is as follows (initial phase is omitted...):

\[\cos\left(2\pi\left(\frac{B }{2T }{\left(t-\frac{T }{2 }\right)}^{2 }\right)\]

Where "B" is the bandwidth of the pulse and "T" is the pulse duration, I get something that looks like this (which is seemingly correct, at least according to ESA):


Source: https://earth.esa.int/handbooks/asar/aux-files/ephimg-22242712.gif

Why is that? Is this due to something about the sampling of the signal or what is it? In this code I've only sampled the signal at 2 times fmax but I have been playing around a bit with the samplerate without getting much wiser.

The code I've written is following:
Code:
clear, close all;
fc = 1250*10^6; %Carrier frequency
BW = 100*10^6; %Bandwidth
fh = fc+(BW/2); %Highest frequency component
fs = 2*fh; %Nyqvist sample rate
Tpulse = 150*10^-9; %Pulse duration
Tstep = 1/fs; %Time-step resolution of input signal
t = [0:Tstep:Tpulse]; %Time vector generation
y = cos(2*pi*(BW/(2*Tpulse)*(t-(Tpulse/2)).^2));
plot(t,y);

If I insert the carrier frequency in the expression as follows (initial phase is omitted...):

\[\cos\left(2\pi\left({f}_{c}\cdot {t}+\frac{B }{2T }{\left(t-\frac{T }{2 }\right)}^{2 }\right)\]

I get this:


Code:
clear, close all;
fc = 1250*10^6; %Carrier frequency
BW = 100*10^6; %Bandwidth
fh = fc+(BW/2); %Highest frequency component
fs = 2*fh; %Nyqvist sample rate
Tpulse = 150*10^-9; %Pulse duration
Tstep = 1/fs; %Time-step resolution of input signal
t = [0:Tstep:Tpulse]; %Time vector generation
y = cos(2*pi*(fc*t+BW/(2*Tpulse)*(t-(Tpulse/2)).^2));
plot(t,y);

This does not at all look like what I would expect. Am I on the right or wrong track here? Any help, comments or clues is appreciated! I've spend quite a bit of time trying figuring this out but now I have to ask for a little bit of help!

Best Regards,
 
Last edited:

Hi, kviksand81

Your figures correspond do LFM signals (chirps) not compressed yet.
The first figure sweeps frequency from 0 (seemingly) to some positive value.
The second figure sweeps frequencies from negative to positive, passing by instantaneous frequency f=0 at the center.
In the 3rd figure, you would need to increase sampling frequency in order to "see" what you expect. Try for example

fs = 8*fh; % 4*Nyqvist sample rate

instead of

fs = 2*fh; %Nyqvist sample rate

Another suggestion: use, for example 1250e6 instead of 1250*10^6 .

Regards

Z
 
Thanks for your input, zorro. I've come a long way since then. I have a final question, which goes:

Apply a Hamming weight to the matched filter spectrum before the pulse compression
and plot the correlation in the time and frequency domain (amplitude only). Compare
the correlation with and without weighting.

Initially, I thought: "Now, that's gonna be easy!" But it has turned out not to be easy. Applying the Hamming window in the time-domain is of course easy, but how do I apply it to the spectrum? I've oversampled the signal with Matlab's FFT function and created a corresponding Hamming-window of the same length, but that barely has an effect on the spectrum, or, at least the part of the spectrum where it should have an effect. I've also tried with creating a Hamming-window in time with the same length as the original signal and zero-padded it to match the length of the spectrum and then Fourier-transformed it and applied it to the signal. By doing the last thing means that I end up with a weird looking time-domain signal when I inverse Fourier transform it and a frequency spectrum that looks more like the time-domain signal I was expecting.

Any inputs or clues are more than welcome. The level of frustration is HIGH!

Best Regards,
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…