Mark, N8MH commented
Actually, this is a great idea, Greg. It's the basis for AE4JY Moe Wheatley's AO40RCv program--the 400BPSK demodulator. In fact, his source coded is posted--it should help with the programming I'd think. It provided button pushes, com port selection, radio choices, etc.
Not sure there is ENOUGH carrier..at least from what I've been hearing. But I haven't looked at it with a waterfall yet; Drew KO4MA was doing that during our initial tests--he could see the carrier well as I recall.
The BPSK modulator should have zero carrier in the middle unless it has drifted out of balance. I would be surprised if the carrier rejection is any greater than ~-20 dB below the sideband level -- this corresponds to the supposed 180° phase shift being off by about 0.1 radians (i.e. ~6°).
If you try to inject carrier by simply turning on a BFO and receiving the signal as DSB, you will get distortion. This is because you want to extract the 2 sidebands with the same phase. You will be better off throwing away half the signal and receiving it as a SSB signal.
One way to properly phase the signal is with a Costas loop demodulator. Such widgets were the hardware PSK demodulators offered by TAPR (designed by K3IO & N7CL) and a different design by G3RUH; the TAPR design was sold commercially by Paccomm as the PSK-1 (Google Paccomm PSK-1). These designs have been built with both 400 BPS (for AO-40) and 1200 BPS (for the PACSATs) data filters. These devices have a PLL to generate a coherent carrier and do not suffer the 3dB SNR loss; the PLLs will also help to track the satellites Doppler.
As Mark pointed out, a similar design was done in software for use with a Soundblaster for AO40's 400 BPS BPSK by Moe Wheatley, AE4JY. You can fetch a copy at Moe's web site at http://www.moetronix.com/ae4jy/ao40rcv.htm. Moe's web site has the source code in C++ and you will probably want to modify the data filters by a factor of 3-4. Moe has also implemented a DSB demodulator in his SpectraVue SDR software that supports N4IP's RF Space SDR-14 and SDR-IQ receivers (see http://rfspace.com/Home.html).
For those of you using a Flex SDR (http://www.flex-radio.com)like the SDR-1000 or -5000 (or the SoftRock, or a similar QSD design)as your receive IF, you should be able to do a proper demod on the AO-16 signal (including a properly phased carrier generated in a software PLL) using the [DSB] mode (also please try the Synchronous AM [SAM] detector)in PowerSDR.
I haven't tried any of the SDR approaches myself, so I don't know about the AFC characteristics in [DSB] and [SAM]. Perhaps AE4JY or N4HY or AB2KT can comment.
73, Tom