I'm doing a project that has been done many times before, bouncing a signal off the moon, but I'm trying to do it with low power. I'm told the expected S/N ratio is -30dB. The problem I'm trying to figure out is whether or not it is theoretically possible to pull out the signal out from the noise, and if so, what is the best scheme for it? I've done some minor investigation and it seems like cross correlation is somewhere to start. I'm imagining a process where I send out a signal with some random alterations in it and store it in the program, receive the signal a few seconds later, and phase shift it whatever amount to cross correlate. The thing is, I don't know whether this is actually effective enough for this situation, and I don't know how to implement this in code. I don't currently have MatLab, so I don't want to waste the money on it if it isn't even theoretically possible to do what I want to. TLDR: I can find a bunch of info on the theory of signal processing but I don't know how to actually implement it or if it will work in this situation.