How can I run Code for Discrete time fourier transform of x[n] = a^u[n] where |a|<1

2 views (last 30 days)
kindly provide MATLAB code for this queston.

Answers (1)

TED MOSBY
TED MOSBY on 25 Jun 2025
Hi,
For the specific signal , where u[n] is the unit step function (meaning u[n]=1 for n≥0 and u[n]=0 for n<0), the sum starts from n=0:
This is a geometric series. A geometric series converges to 1/(1-r)​ if ∣r∣<1. In our case, . The series converges when . Since for any real ω, this condition simplifies to a<1. If this condition is met, the sum of the series is:
a = 0.8; % Choose a value for 'a' such that |a| < 1.0
N = 50;
omega = -pi:0.01:pi;
% 1. Generate the discrete-time signal x[n] = a^n u[n]
n = 0:N-1;
x_n = a.^n;
% 2. Compute the DTFT
X_jw_analytical = 1 ./ (1 - a * exp(-1i * omega));
% 3. Approximate the DTFT using Fast Fourier Transform
L = 1024; % Length of the DFT. Should be greater than N.
X_k = fft(x_n, L);
f_dft = (0:L-1) * (2*pi/L); % Frequency axis
f_dft_shifted = fftshift(f_dft - pi); % Shift to -pi to pi
X_k_shifted = fftshift(X_k);
% 4. You can now proceed to plotting the Magnitude and Phase Responses
Hope this helps!​
  1 Comment
Paul
Paul on 25 Jun 2025
The expression for f_dft_shifted appears to be incorrect.
a = 0.8; % Choose a value for 'a' such that |a| < 1.0
N = 50;
omega = -pi:0.01:pi;
% 1. Generate the discrete-time signal x[n] = a^n u[n]
n = 0:N-1;
x_n = a.^n;
% 2. Compute the DTFT
X_jw_analytical = 1 ./ (1 - a * exp(-1i * omega));
% 3. Approximate the DTFT using Fast Fourier Transform
L = 1024; % Length of the DFT. Should be greater than N.
X_k = fft(x_n, L);
f_dft = (0:L-1) * (2*pi/L); % Frequency axis
f_dft_shifted = fftshift(f_dft - pi); % Shift to -pi to pi
X_k_shifted = fftshift(X_k);
% 4. You can now proceed to plotting the Magnitude and Phase Responses
plot(omega,abs(X_jw_analytical),f_dft_shifted,abs(X_k_shifted))

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Products


Release

R2012a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!