MATLAB自带的Adaptive FIlter中遇到的困难
Hi everyone,My project is aiming on filtering Siren, helicopter noise which mixed into speech signal as much as we can.
by doing some research, I found adaptive filter might be the right filter for eliminate noises such as siren noise, helicopter noise, and so on. Then, I dig into adaptive filtering algorithm in matlab. I tried the adaptive algorithm by my own. Now the problem comes.
I give two sources. one is recording voice by microphone, another is noise source which read wave file from my computer.
Then, I did FIRST EXPERIMENT. I add them together to get a mixed signal(this is using simply '+' function in matlab). Now I tried cancel the noise from the mixed signal by calling adaptfilt.sd function. The result is what I expected. Siren noise has been filtered out.
For the SECOND EXPERIMENT. I tried a little difference. I used one microphone technology for canceling the noise signal. what I did is I place a microphone close to my mouth. a speaker playing a siren noise. the microphone will record my voice and also background Siren noise. So the microphone recorded data into matlab. this data is mixed signal contained voice and Siren noise. Since adaptive filter in matlab needs two signals feed in. one is desired signal which is my mixed signal, another is noise signal. In order to get a noise signal, I pass the mixed signal to an anti-speech filter which using yule-walker IIR filter to get a noise signal(most of voice are gone after anti-speech filter). Now, I have mixed signal and noise signal. then I did the same as what I did in FIRST EXPERIMENT calling adaptfilt.sd, and pass mixed signal and noise signal to the adaptive filter. the result is not
expected as 1st Experiment. The filtered signal is even same as mixed signal which picked up from microphone. I tried many different way and other adaptive filter algorithm as well. I cannot get any better SNR after filtering. The filtered signal are almost same as mixed signal. Now I am kind of desperate.
Anyone can give me a hint. why I cannot filter out the siren noise in my second experiment. I am so appreciated.
Sincerely Qusestion inenglish, it is a big challenge for us to understand or explain.
Now back to the Question, after comparing your two experiments,I think the problem is caused by the noise signal obtained by anti-speech filter, you said most of voice were gone, then what is the measure? time history shape, frequency components or other measures? I sugguest you check the correlation or coherence between the obtained noise signal and the real noise signal (the siren signal). On the other way, if you can obtain the right siren sigal from the mixed signal , why dont you just use the same method to obtain the speech signal?
页:
[1]