Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- x[n]=d^[n]=e[n]+s^[n]*y[n]
- y[n]=w[n]*x[n]
- x'[n]=s^[n]*x[n]
- w[n+1]=w[n]+u.e[n].x'[n]
- e[n]=d[n]-y'[n]
- %%%%%%%%%% Initalize Wz %%%%%%%%%%
- Wz = zeros(M,1); % adaptive filter weigths; coloumn array
- %%%%%%%%%% Initalize step size mu %%%%%%%%%%
- % Initialize "mu"
- %%%%%%%%%% Initialize input %%%%%%%%%%
- % Initialize input "x[n]" of length"N"
- %%%%%%%%%% Generate desired response %%%%%%%%%%
- % Generate the desired response d[n]
- %%%%%%%%%% Generate x'[n] %%%%%%%%%%
- x_prime = conv(Szh,x); % x'[n] = x[n]*s^[n]
- % Make sure that x and d are coloumn arrays
- x = x(:);
- d = d(:);
- %%%%%%%%%% FBFXLMS algorithm %%%%%%%%%%
- for n=M:N
- x_reverse = x(n:-1:n-M+1); % input in reverse order
- x_prime_reverse = x_prime(n:-1:n-M+1); % x'[n] in reverse order
- y = Wz'*x_reverse; % y[n] = w[n]*x[n];
- y_prime = conv(Sz,y); % y'[n] = y[n]*s[n]
- e(n) = d(n)-y_prime(n); % update error: e[n]=d[n]-y'[n]
- Wz = Wz+mu*x_prime_reverse*(e(n)); % update weigths
- end
- %%%%%%%%%% generate y''[n] %%%%%%%%%%
- y_second = conv(Szh,y); % y'[n] = y[n]*s[n]
- %%%%%%%%%% generate x[n] %%%%%%%%%%
- x = e + y_second; % x[n] = d^[n] = e[n]+y''[n]
Add Comment
Please, Sign In to add comment