FSK demodulation can be implemented pretty well either using envelopes or matched filters. For now the matched filters seems to be a better candidate. However, some normalization issues should be solved.