}
//calculates the derived frequency border table from the master table
private void calculateDerivedFrequencyTable(int k2) throws AACException {
final int xOverBand = header.getXOverBand(false);
if(N_master<=xOverBand) throw new AACException("SBR: derived frequency table: N_master="+N_master+", xOverBand="+xOverBand);
int i;
N_high = N_master-xOverBand;
N_low = (N_high>>1)+(N_high-((N_high>>1)<<1));
n[0] = N_low;
n[1] = N_high;
//fill high resolution table
for(i = 0; i<=N_high; i++) {
ftRes[HI_RES][i] = mft[i+xOverBand];
}
M = ftRes[HI_RES][N_high]-ftRes[HI_RES][0];
kx = ftRes[HI_RES][0];
if(kx>32) throw new AACException("SBR: kx>32: "+kx);
if(kx+M>64) throw new AACException("SBR: kx+M>64: "+(kx+M));
//fill low resolution table
final int minus = N_high&1;
int x = 0;
for(i = 0; i<=N_low; i++) {