How can I implement a simple difference equation and plot the resulting output, all using MATLAB

55 visualizzazioni (ultimi 30 giorni)
I have a simple case of all initial conditions to be zero. We can consider a general form as:
a0y(n) = b0x(n) + b1x(n-1) + b2x(n-2) + ...+ bM x(n-M)
-a1y(n-1) - a2y(n-2) - ...- aN y(n-N)
I have to plot the output y(n) with n varying from 0 to 500.
Both y(n) and x(n) are zero for n<0.

Risposte (4)

Wayne King
Wayne King il 4 Dic 2013
You have not said what x(n) is, is it a white noise input. Is it the Kronecker delta sequence.
If we don't know that x(n) is we certainly can't tell you what y(n) is.
If you know x(n), you can implement using filter
B = [b0 b1 b2 b3 .... bM];
A = [1 a1/a0 a2/a0 ... ];
x(n) = zeros(100,1);
x(1) = 1; % Kronecker delta input
y = filter(B,A,x);
  1 Commento
upinderjeet
upinderjeet il 5 Dic 2013
Actually x(n) is uniformly distributed random signal between -1 and 1. Now please tell me how to modify the above code according to this input and also how to define this x(n) in matlab.

Accedi per commentare.


Wayne King
Wayne King il 5 Dic 2013
Modificato: Wayne King il 5 Dic 2013
Please look at the help for rand
x = -1+ 2*rand(100,1);
B = [b0 b1 b2 b3 .... bM];
A = [1 a1/a0 a2/a0 ... ];
y = filter(B,A,x);
  1 Commento
upinderjeet
upinderjeet il 5 Dic 2013
dont you think it shud be -1+ 2*rand(1,500) since I want to plot for k=0 to k=500 and also it shud be a row vector of 500 elements instead of column vector.

Accedi per commentare.


sixwwwwww
sixwwwwww il 5 Dic 2013
may be you can try something like this:
N = 500;
for n = 1:N
xValues = sum(randi(10, 1, n) .* (rand(1, n) - 1));
yValues = sum(randi(10, 1, n - 1) .* (rand(1, n - 1) - 1));
y(n) = xValues - yValues;
end
plot(1:N, y)
  2 Commenti

Accedi per commentare.


Mohazam Awan
Mohazam Awan il 10 Ott 2017
y1=zeros(1,length(n)); % Pre-allocating
for i=1:length(n)
if(n(i)<0)
y1(i)=0; % $ y[n]=0 for n<0
end
if (n(i)>=0)
y1(i)=y1(i-1)+x(i);
end
end

Categorie

Scopri di più su Formatting and Annotation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by