How do I compute impulse response?

9 vues (au cours des 30 derniers jours)
mustafa mutlu
mustafa mutlu le 9 Jan 2016
Commenté : Walter Roberson le 16 Fév 2025
How can I calculate the impulse response for the following equation:
y[n]=-5*X[n]+2*X[n-1]-5*X[n-2]+2*X[n-3]
  1 commentaire
Arundhathi
Arundhathi le 5 Nov 2024

import numpy as np import matplotlib.pyplot as plt

  1. Define the system equation y[n] = -5*X[n] + 2*X[n-1] - 5*X[n-2] + 2*X[n-3]
  1. Define the length of the signal (let's take a range from n=0 to n=10) n = np.arange(0, 11)
  1. Create the impulse response using numpy's delta function delta = np.zeros_like(n, dtype=float) delta[n == 0] = 1 # Impulse signal at n=0
  1. Initialize the output y[n] for the impulse response h = np.zeros_like(n, dtype=float)
  1. Compute the impulse response for i in range(len(n)): h[i] = -5 * delta[i] + 2 * delta[i-1] - 5 * delta[i-2] + 2 * delta[i-3]
  1. Print the impulse response print("Impulse Response h[n]:") for i in range(len(n)): print(f"h[{n[i]}] = {h[i]}")
  1. Plot the impulse response plt.stem(n, h, use_line_collection=True) plt.title('Impulse Response h[n]') plt.xlabel('n') plt.ylabel('h[n]') plt.grid(True) plt.show()

Connectez-vous pour commenter.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 9 Jan 2016
Modifié(e) : MathWorks Support Team le 22 Mai 2019
You can use the filter function with the coefficients as an input argument.
  1 commentaire
mustafa mutlu
mustafa mutlu le 10 Jan 2016
thank you for your contribution

Connectez-vous pour commenter.

Plus de réponses (2)

Akkinapalli
Akkinapalli le 6 Jan 2025
Modifié(e) : Walter Roberson le 16 Fév 2025
Xt=2sin5t
x^2=5sin10t
X^3=10sin20t
  1 commentaire
Walter Roberson
Walter Roberson le 16 Fév 2025
This is not valid MATLAB syntax. There is no implied multiplication in MATLAB, so 2sin5t is not permitted syntax. Also, sin needs to be called as a function, such as sin(5*t)
It is also not valid to have an expression on the left hand side of an = statement.
The closest to those statements that you could get in MATLAB would be
syms t Xt x X
Xt == 2*sin(5*t)
ans = 
x^2 == 5*sin(10*t)
ans = 
X^3 == 10*sin(20*t)
ans = 
This will not have much effect, as it is a series of equations and it is not assigning the equations to variables.

Connectez-vous pour commenter.


Ali
Ali le 15 Fév 2025
a=5; , x=2; , y=8;
y=exp(1)*sin(x)+10*sqrt(x)
  1 commentaire
Walter Roberson
Walter Roberson le 16 Fév 2025
This does not appear to have anything to do with the Question.

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by