Isso sempre faz minha cabeça doer, mas primeiro entenda que você tem apenas 256 frequências. Dependendo do algoritmo usado, o segundo 256 é apenas um espelho do primeiro ou representa os componentes imaginários correspondentes aos componentes reais no primeiro 256.
Entenda também que a resolução de frequência de uma FFT atinge apenas metade da frequência de amostragem; portanto, se você estiver amostrando a 10.000 amostras por segundo, a frequência mais alta resolvida será de 5.000 Hz.
A partir daí, você pode entender isso. Digamos que você tenha 256 buckets, o mais alto representando 5000Hz e o mais baixo representando DC. Cada balde tem uma largura de espectro de 5000/256 Hz, de modo que o zero sai em DC, o primeiro começa em 19,5 Hz, o segundo em 39 Hz, etc.
Enfim, é assim que eu sempre descobri.