Please explain how a software defined radio works and how it eliminates the need for some of the actual hardware blocks. Also, what are the advantages and limitations of the same.