How can I implement this code several stages??

3 views (last 30 days)
I want to compute 15 stages of the my output , my problem is in the second loop, is it correct?? i want to implement yi+1(n) = yi(n) * wi+1 ie: y1(n) is the first stage and so on...when i run it i get Index exceeds matrix dimensions. error in y(i+1,:)=y(i)*w(i+1,:);
also, how can i plot the fourth stage??? thank you for the help.
% w = estimated FIR filter
% y = output array y(n)
% x = input array x(n)
% d = desired array d(n), length must be same as x
% mu = step size
% M=order of the filter;
N=300;
n=1:N;
M=4;
d(n) = sin(0.2*pi*n);
sigma = 0.5;
v(n) =sigma*randn(1,N);
x(n)= d+v; N=length(x);
subplot(311); plot(d(n))
mu=0.01; subplot(312); plot(x(n))
w=zeros(1,M); w1=zeros(1,M);e=zeros(1,N);y=zeros(1,N);
for n=M:N
x1=x(n:-1:n-M+1);
y(n) = w*x1';
e = d(n)-y(n);
w = w +mu*e*x1;
w1(n-M+1,:)=w(1,:);
end
% I is number of stages
I=15;
for i=2:I
y(i+1,:)=y(i)*w(i+1,:);
end
  8 Comments
Good mind
Good mind on 14 Oct 2019
Is the second loop correct???? in my case:the future out put is dependent on the present out put and the future filter
Walter Roberson
Walter Roberson on 14 Oct 2019
How can it be correct when you are asking for multiple rows of w when w only has one row?

Sign in to comment.

Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!