Hey Natasha,
First of all, what is your assignment? I mean, what parameters/performance do
you know/need since you're doing noise cancellation for headsets.
That's the starting point for determining M and mu. (Maybe you already did
this)
Now as I look on your code I find 1 mistakes (I think): You only filter the
audio signal from an amplitude point of view. But, what happens with the phase
spectrum? (I was doing a similar filtering project, and that was my bad.
traditional lms approach doesn't handle the phase spectrum and that's
where distortions come from)
If this the problem then I would suggest you try a different approach:
1. one possibility is spectral subtraction (I know it is successfully
implemented in headsets, but i didn't use this method so far)
2. Wiener filtering. There are loads of documentation on the internet and there
are a few wiener functions implemented on mathworks.
Hope this was of any help. If can can help you further on please let me know and
I'll do my best.
Paul
Hello,
>I'm Natasha and I'm doing my project on
' active noise cancellation in headsets'. I am new to MATLAB and have
written a code for noise cancellation of an audio signal using a simple lms
filter. However, the program shows errors,particularly in the lms filter
designing area;
>[d,r] = wavread('df3_n0H.wav.wav');
>r 00
>size(d)
>ans B500
>M = 32;
>mu=0.004;
>[b,a]= adaptfilt.lms(M,mu);
>df= filter(b,a,d);
>specgram(df,1024,r);
>soundsc(df,r);
>wavwrite(df,r,'tmp.wav');
>
>I was hoping fr suggestions from someone more proficient in the filed. Many
thanks.