private boolean getSymbolFreqBin (CircularDataBuffer circBuf,WaveData waveData,int start)	{
		boolean bit;
		// Run FFTs on the early and late parts of the symbol
		double early[]=do160FFTHalfSymbolBinRequest(circBuf,start,lowBin,highBin);
		start=start+((int)samplesPerSymbol/2);
		double late[]=do160FFTHalfSymbolBinRequest(circBuf,start,lowBin,highBin);
		// Now work out the binary state represented by this symbol
		double lowTotal=early[0]+late[0];
		double highTotal=early[1]+late[1];
		if (theApp.isInvertSignal()==false)	{
			if (lowTotal>highTotal) bit=true;
			else bit=false;
		}
		else	{
			// If inverted is set invert the bit returned
			if (lowTotal>highTotal) bit=false;
			else bit=true;
		}
		
		// Early/Late gate code
		if (lowTotal>highTotal) kalmanFilter(getPercentageDifference(early[0],late[0]),KALMAN1,KALMAN2);
		else kalmanFilter(getPercentageDifference(early[1],late[1]),KALMAN1,KALMAN2);
		symbolCounter=adjAdjust();
		
		//double avj=adjAverage();
		//String line;
		//if (bit==true) line="1";
		//else line="0";
		//if (errorState==0) line=line+",OK,";
		//else line=line+",ERROR,";
		//line=line+Double.toString(avj)+","+Long.toString(symbolCounter)+","+getSpectrumValsString();
		//theApp.debugDump(line);
		
		// All done return the bit value
		return bit;
	}