Google for Emails

It is one of the programs I know that I needed to write ever since I found the open source search engine Lucene. I guess Nicholas Riley has already done it with Zoe . I don't know much about it except it acts as a mail proxy and archieves the emails so that they are searchable. I have to check it out.

The article on O'Reilly Network by Jon Udell was interesting engouh to tempt me to try it once I have access to a computer.

Finally My LMS Algo in Matlab

Wow, after hours of fooling around what was wrong with my implementation of LMS. I just had a wrong equation for calculating the filter coefficients. Anyway here is the final LMS algorithm!

By the way see my posting in the LonelyLane about my experience on getting it!

% lsm.m
% initial implementation 8/10/02
% fixed error in weight calculation equation 9/10/02
function [e, wmat] = lms(x, d, mu, L)
N = length(x)
% initially we start with all zeros for weights
wk = zeros(L, 1);
e = zeros(N,1)

for k = 1:N
% getting the slice of x that we need for current iteration
xk = zeros(L,1);
for i = 1:L
index = k - i + 1;
if index < 1
xk(i) = 0; % setting x(0), x(-1) ... to zero
else
xk(i) = x(index);
end
end
% calculate the error
e(k) = d(k) - wk' * xk;

% append the w(k) to the matrix
wmat(k, 1:L) = wk';

% calculate the w(k+1)
wk1 = wk + 2 * mu * xk * e(k);
% for next iteration
wk = wk1
end


And to call it you just do:

[error_array, weight_matrix] = lsm(x,d,mu, L)

Shift in Posting Subjects

Now that I am busy with my M Sc at Imperial , trying to figure out signal processing, you will find that most of my posting on computers will slowly disappear and instead more postings on signal processing and related stuffs will begin to appear in these pages.

Well, currently, the experiment I am working on is adaptive filters and least mean square algorithm . I am trying to implement the LSM algorithm in MatLab. Even before that, I need to figure out how to use MatLab! Well, it doesn't really look so bad, and I do have my first version of the LSM algorithm. Funny thing is I don't know if I have implemented it correctly. I don't know how to test it or rather I don't have a set of inputs and corresponding set of outputs to check my implementation against!