Fourier Transform of an exponential function with sine modulation

Click For Summary
SUMMARY

The discussion focuses on the frequency domain spectrum of an exponentially modulated function with a sine component, represented as s(t) = e^{j \frac{4\pi}{\lambda} \mu \frac{\sin(\Omega t)}{\Omega}}. Participants detail a MATLAB implementation to visualize the spectrum, utilizing parameters such as lambda = 0.03, mu = 4 * 2/lambda, and Omega_rpm = 60. The analytical approach involves Bessel functions, leading to a discrete Fourier transform (DFT) formulation that captures the signal's periodic nature and its sampling requirements.

PREREQUISITES
  • Understanding of Fourier Transform and its applications
  • Familiarity with MATLAB programming and its FFT function
  • Knowledge of Bessel functions and their properties
  • Concept of discrete-time signals and sampling theory
NEXT STEPS
  • Study the properties of Bessel functions and their applications in signal processing
  • Learn MATLAB's FFT function and its parameters for effective signal analysis
  • Explore the implications of sampling theory on signal reconstruction
  • Investigate advanced topics in Fourier analysis, such as the relationship between continuous and discrete transforms
USEFUL FOR

Signal processing engineers, MATLAB users, researchers in communications, and anyone interested in the analytical aspects of Fourier Transforms and Bessel functions.

tworitdash
Messages
104
Reaction score
25
I want to know the frequency domain spectrum of an exponential which is modulated with a sine function that is changing with time.

The time-domain form is,

s(t) = e^{j \frac{4\pi}{\lambda} \mu \frac{\sin(\Omega t)}{\Omega}}

Here, \mu, \Omega and \lambda are constants.

A quick implementation in MATLAB gives me the following in the frequency/velocity domain.

Screen Shot 2021-06-28 at 10.06.56 AM.png


The code is given below.

[CODE lang="matlab" title="DFT"]clear;
close all;lambda = 0.03;mu = 4 * 2/lambda; % Mean Doppler frequency
Omega_rpm = 60; % in RPM
Omega = 2*pi/60 * Omega_rpm; % In rad/s
BW_deg = 1.8; % beam width in degree
BW = BW_deg * pi/180; % beam width in radian

v_amb = 7.5;PRT = 1e-3;
f_amb = 1/(2 .* PRT);p0 = 0*pi/180; % start angle
p1 = 360*pi/180; % end angle

N_BW = 1; % Number of beam widths to integrate

M = round((p1 - p0)/(BW * N_BW)); % Number of azimuth points
hs = N_BW * round(BW/Omega/PRT); % hits per scan -> Sweeps in one beamwidth

N = hs * M; % Total number of points in the time axis

th = linspace(p0, p1, N); % All the anglesphi = linspace(th(1), th(end), M); % Angle of the sectorst1 = 0:PRT:(N - 1)*PRT; % Time axis

ph_ = (2 * pi * mu .* t1);
s_ = (exp(1j .* ph_ .* (sin(eps + Omega .* t1)./(eps + Omega .* t1))));

vel_axis = linspace(-f_amb, f_amb, N); % frequency axis for the entire rotation

s_f = fftshift(fft(s_));
figure; plot(vel_axis*lambda/2, (abs(s_f)), 'LineWidth', 2); grid on;

xlabel('Doppler velocity [ms^{-1}]', 'FontSize', 12, 'FontWeight', 'bold');
ylabel('Spectrum', 'FontSize', 12, 'FontWeight', 'bold');
title('Spectrum function'); grid on;[/CODE]

I want to know what this function should look like in the spectrum domain analytically.
 
Physics news on Phys.org
I haven't looked at your Matlab code, but the way to get an analytical expression is to use the generating function for Bessel functions
$$
e^{\frac{1}{2} z ( x - x^{-1})} = \sum_{n=-\infty}^\infty x^n J_n(z)
$$
set ##x=e^{j\Omega t}## and ##z = 4\pi\mu/\lambda\Omega## to get
$$
e^{j \frac{4\pi\mu}{\lambda\Omega} \sin(\Omega t)} = \sum_{n=-\infty}^\infty e^{j n\Omega t} J_n\left(\frac{4\pi\mu}{\lambda\Omega}\right)
$$
You can analytically work out the DFT of ##e^{j n \Omega t}## for your given sampling. I expect it will be some kind of geometric series.

jason
 
  • Like
Likes   Reactions: Twigg, tworitdash and Delta2
Nice Bessel function property. However, when finding the DFT I see that it is not just a geometric progression, as ##n## appears in the Bessel function order. I am writing the steps here. Correct me if I am wrong.

$$
S(v) = \sum_{n=-\infty}^{+\infty} e^{jn\Omega t} J_{n}\Big(\frac{4\pi \mu}{\lambda \Omega}\Big) e^{-j \frac{4\pi}{\lambda} n v t}
$$

$$\implies$$

$$
S(v) = \sum_{n=-\infty}^{+\infty} e^{jnt(\Omega - \frac{4\pi\mu}{\lambda})} J_{n}\Big(\frac{4\pi\mu}{\lambda \Omega}\Big)
$$

My variable for DFT is ##v##.
 
Last edited:
Or, am I stupid enough to not see something in the above formulation? :confused:
 
The equation I gave is a continuous waveform. You first need to sample it at discrete times, then for each frequency component of the DFT you need to compute a sum. If the sample period is ##T## and we collect ##L## samples, then the ##\ell^{th}## sample of the discrete-time signal is
$$ X(\ell) = e^{j \frac{4\pi\mu}{\lambda\Omega} \sin(\Omega (\ell-1) T)} = \sum_{n=-\infty}^\infty e^{j n\Omega (\ell-1) T} J_n\left(\frac{4\pi\mu}{\lambda\Omega}\right)$$
where ##\ell## goes from ##1## to ##L##, just like Matlab vectors. This is the signal you are taking the FFT of.

I hope you know that the DFT (and hence the FFT) assumes that this signal consisting of ##L## samples is one period of a periodic signal. Assuming this is what you want, the DFT in Matlab is then defined as
$$Y(k) = \sum_{\ell=1}^L X(\ell) e^{-j\frac{2 \pi}{L}(\ell-1)(k-1) } $$
where ##k## goes from ##1## to ##L##. So the DFT is
$$Y(k) = \sum_{n=-\infty}^\infty J_n\left(\frac{4\pi\mu}{\lambda\Omega}\right) \sum_{\ell=1}^L e^{-j\frac{2 \pi}{L}(\ell-1)(k-1) } e^{j n\Omega (\ell-1) T} $$
The inner sum is a geometric series. Since ##J_n(z)## decreases fairly quickly once ##|n| > |z|## I expect this should be a practical formula.

jason
 
  • Like
Likes   Reactions: tworitdash
jasonRF said:
The equation I gave is a continuous waveform. You first need to sample it at discrete times, then for each frequency component of the DFT you need to compute a sum. If the sample period is ##T## and we collect ##L## samples, then the ##\ell^{th}## sample of the discrete-time signal is
$$ X(\ell) = e^{j \frac{4\pi\mu}{\lambda\Omega} \sin(\Omega (\ell-1) T)} = \sum_{n=-\infty}^\infty e^{j n\Omega (\ell-1) T} J_n\left(\frac{4\pi\mu}{\lambda\Omega}\right)$$
where ##\ell## goes from ##1## to ##L##, just like Matlab vectors. This is the signal you are taking the FFT of.

I hope you know that the DFT (and hence the FFT) assumes that this signal consisting of ##L## samples is one period of a periodic signal. Assuming this is what you want, the DFT in Matlab is then defined as
$$Y(k) = \sum_{\ell=1}^L X(\ell) e^{-j\frac{2 \pi}{L}(\ell-1)(k-1) } $$
where ##k## goes from ##1## to ##L##. So the DFT is
$$Y(k) = \sum_{n=-\infty}^\infty J_n\left(\frac{4\pi\mu}{\lambda\Omega}\right) \sum_{\ell=1}^L e^{-j\frac{2 \pi}{L}(\ell-1)(k-1) } e^{j n\Omega (\ell-1) T} $$
The inner sum is a geometric series. Since ##J_n(z)## decreases fairly quickly once ##|n| > |z|## I expect this should be a practical formula.

jason
Wow! now it is clear for me. Sometimes I get confused even if I know how to proceed. Thanks a lot. I will try this soon.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 18 ·
Replies
18
Views
9K