Sim, você definitivamente deve usar o FSK, mas ele deve ser assíncrono e aqui está o porquê. A desmodulação do FSK de forma síncrona é chamada de desmodulação coerente. A desmodulação do FSK exige coerentemente o bloqueio de fase da portadora de entrada (sincronização de fase), o que normalmente é feito com loops de bloqueio de fase (PLL) que não funcionam bem, a menos que você tenha uma relação sinal / ruído (SNR) de pelo menos 10 dB. Normalmente, a transmissão de áudio não possui um SNR tão alto; portanto, esqueça a demodulação coerente. Além disso, na prática, com sinais eletromagnéticos, o FSK não coerente exige, no máximo, apenas 1 dB mais Eb / Não do que o FSK coerente para Pb ≤ 10-4 (isso significa que, para obter a mesma probabilidade de erro de bit Pb, você só precisa transmitir um valor extra). dB de potência em cada bit). No entanto, o desmodulador FSK não coerente é consideravelmente mais fácil de construir, pois não é necessário gerar sinais de referência coerentes. Portanto, em sistemas práticos, quase todos os receptores FSK usam demodulação não coerente, porque todo mundo prefere transmitir um dB extra de energia em vez de enfrentar todos os problemas de sincronização.
Respondendo às suas principais considerações:
Largura de banda de 200bps, se não mais: atingi 200 bps usando uma fase contínua de portadoras ortogonais 8fsk, definindo o smartphone a 1 m de distância do alto-falante.
Resiliente ao ruído até um certo nível: implementei um código de correção de erros BCH, com a capacidade de reparar até 8 erros por bloco de dados. Os códigos BCH têm seus maiores ganhos de codificação quando há uma redundância de 25 a 50% adicionada
preferencialmente onda portadora de 16khz - 20khz com amostragem de 44.1khz: eu sugeriria aumentar a frequência de amostragem em até 48 kHz (o que é bastante comum hoje em dia nos smartphones) e limitar sua banda de operação entre 17,5 ou 18 e 21,5 kHz. Se você usar 44,1, precisará trabalhar entre 17,5 ou 18 e 20,5 kHz. Mas é preciso ter muito cuidado com o alto-falante e o microfone que você seleciona, pois nem todos operam nessas altas frequências. Você deve fazer uma análise de resposta de frequência deles. Se você estiver usando um PC, eu recomendaria o ARTA ou o Audacity ou se você é um programador Matlab ou Octave. Se você estiver usando um smartphone, recomendo qualquer aplicativo de análise de espectro de áudio
Lógica de codificação não muito complexa: eu recomendaria o demodulador fsk de quadratura de correlação não coerente. Muito mais leve que qualquer implementação baseada em fft. Especialmente se você estiver a menos de 1 m de distância, onde o doppler e o multicaminho não o afetam tanto