Signals - Removing Blocks I'm after some advice on a problem that I am facing regarding signal processing.

I am processing a voice clip (.wav) and this voice clip contains noise, and I need to remove the noise and just concentrate on the Phones so I can analise them.

What I have thought about, and, what I have researched is, if I use zero-crossing as well as the total energy I can remove the blocks that do not contain sufficient energy or frequency. 

The problem at the minute is that I have a 1D vector, acting as a 2D vector and let's assume the following data is used:

v1 = {128, 128, 128, 127}


Now my current algorithm squares each of these numbers and then sums the entire vector up. This, would therefore not be able to give me an accurate identification of noisy signals. So should I therefore split the signal into blocks (In that I get a 2D vector)? e.g. 

B1 = {128, 128};
B2 = {128, 127};

e1 = {sum( (128^2) (128^2) )};
e2 = {sum( (128*2) (127^2) )};


Therefore, this would mean I am given 2 (In this example) energies which I can then check to see if they match the threshold. 

Last question, do you think the methods of zero-crossing AND energy are good an accurate way of determining noise and removing it? 

Hope someone can help me, thanks :)!
An energy or zero-crossing criterion might help in detecting segments containing no voice, but it won't help in removing the noise superimposed with speech. Since you are mentioning removing noise for improving speech analysis, this doesn't look like the right technique to use.

If you compute your energy using small windows, down to summing a few adjacent coefficient, you will see fluctuation in energy which are just due to the periodic variation of the waveform itself! As a rule of thumb, the window size on which you compute an energy feature must be at least one magnitude bigger than the period of the signal to analyze. Assuming a f0 of 200 Hz, this gives you a minimal integration window of 50ms, or 400 samples at 8kHz.