Skip to content

Instantly share code, notes, and snippets.

@Maciek416
Forked from corbanbrook/snippet.js
Created January 11, 2010 21:50
Show Gist options
  • Save Maciek416/274641 to your computer and use it in GitHub Desktop.
Save Maciek416/274641 to your computer and use it in GitHub Desktop.
p.FFT = function(_bufferSize) {
var bufferSize = _bufferSize;
var self = {
initialize: function() {
self.buildReverseTable();
self.buildTrigTables();
return self;
}
buildReverseTable: function() {
self.reverseTable = new Array(bufferSize);
self.reverseTable[0] = 0;
var limit = 1;
var bit = bufferSize >> 1;
while ( limit < bufferSize ) {
for ( var i = 0; i < limit; i++ ) {
self.reverseTable[i + limit] = self.reverseTable[i] + bit;
}
limit = limit << 1;
bit = bit >> 1;
}
},
buildTrigTables: function() {
for ( var i = 0; i < bufferSize; i++ ) {
self.SinTable[i] = Math.sin(-Math.PI/i);
self.CosTable[i] = Math.cos(-Math.PI/i);
}
}
}
return self.initialize();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment