Where do I start in learning how to demodulate a BPSK31 signal in software?
This system uses phase shifts to encode characters (it is a differential encoding scheme). You need to design a system that can detect the phase changes, and that is able to synchronize, that is, find the start of a character. Your receiver must also be able to recover from ocassional errors in the phase change detection. Your question is where to start to learn how to do this; my answer is, read the book linked at the end of this page: http://sethares.engr.wisc.edu/telebreak.html. This book doesn't cover this specific modulation but you can learn everything you need from it.