This book treats the design and development of algorithms that allow successful autonomous operation of a software-defined radio (SDR) system. Unlike a software radio that is simply reconfigurable, this book treats the problem of autonomously reconfiguring a radio to receive whatever type of signal happens to come in. Each chapter begins with a self-contained problem statement, and continues with a full mathematical derivation of an appropriate solution, a decision metric or loop-structure as appropriate, and performance results. Many of the algorithms developed are new and have not been previously reported in the literature. The algorithms are then integrated with each other to demonstrate their ability to function in a unified design where iteration amongst them continues to enhance the performance of the resulting receiver. A review of one SDR, NASA's Electra radio developed for space applications, is also discussed and the final chapter represents the performance of an actual software implementation of the various algorithms working in concert with each other thereby demonstrating the manner in which each component part of the system contributes to the success of the overall unified operation.