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.

# Noise Cancellation using MATLAB

Started by ●December 3, 2009

Posted by ●December 3, 2009

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.

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.

Posted by ●December 3, 2009

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.

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.

Posted by ●December 3, 2009

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.

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.