Optimizing code from spectral subtraction algorithm
I don't have a clue about spectral subtraction, so just some minor, general notes about code:



public int fix(double val) {
    if (val &lt; 0) {
        return (int) Math.ceil(val);
    }
    return (int) Math.floor(val);
}



It should be called truncate.
A few variables could be renamed to follow the Java code conventions. 


Variables, parameters:

signal_in to inputSignal or signal
HW to hw
seg maybe to segments or segment (?)
Matrixseg to matrixSeg

Methods:

HammingWindow to calculateHammingWindow



(Effective Java, 2nd edition, Item 56: Adhere to generally accepted naming conventions and The Java Language Specification, Java SE 7 Edition, 6.1 Declarations).
This comments looks unnecessary:


// hamming window
double[] hammingWindow = this.HammingWindow(samplesPerWindow);



(Clean Code by Robert C. Martin: Chapter 4: Comments, Noise Comments)

The this. prefix also unnecessary.