Doppler Shifting A Chirp Signal So I have a digital linear chirp signal:

$$ x[n] = \sqrt{\frac{2}{N}} \cdot \cos\Big( 2 \pi \frac{f_{0}}{f_{s}}n + \pi \frac{B}{N} n^{2}\Big) $$

Where $f_{0}$ is the initial frequency, $f_{s}$ is the sampling frequency, $B$ is the bandwidth and $N$ is the number of samples.

I want to simulate a Doppler shift. I am not sure exactly how to do this.

I know I need to multiply by initial frequency $f_{0}$ by the Doppler shift $d$, and do the same with the bandwidth. This will give me:

$$ x_{d}[n] = \sqrt{\frac{2}{N}} \cdot \cos\Big( 2 \pi \frac{d \cdot f_{0}}{f_{s}}n + \pi \frac{d \cdot B}{N} n^{2}\Big) $$

I know Doppler compresses or expands my waveform in time, and I know how to simulate the Doppler shift in the case of a simple sinusoid. However, I am a bit confused here.

Do I need to change the number of samples $N$ as well? If so, by how much exactly?

Thanks
You need to resample the signal to simulate the Doppler induced dilation. The resampling factor is I=Td/Ts
where
Td = Duration of the signal after dilation
Ts = Actual duration of the transmitted signal

In Matlab you can use the function resample(), but you need to find the resampling parameters P and Q from I.

Also, I=1+v/c for signal expansion and I=1-v/c for signal compression. v=speed of movement in m/s and c=speed of wave propagation in the medium. For instance sound underwater c=1500 m/s.

In Matlab, you can find P and Q as [P,Q]=rat(I);