GNU Radio
http://gnuradio.org/redmine/wiki/gnuradio (http://gnuradio.org/redmine/wiki/gnuradio)
Introduction
GNU Radio is a free software development toolkit that provides the signal processing runtime and processing blocks to implement software radios using readily-available, low-cost external RF hardware and commodity processors. It is widely used in hobbyist, academic and commercial environments to support wireless communications research as well as to implement real-world radio systems.
GNU Radio applications are primarily written using the Python programming language, while the supplied, performance-critical signal processing path is implemented in C++ using processor floating point extensions where available. Thus, the developer is able to implement real-time, high-throughput radio systems in a simple-to-use, rapid-application-development environment.
While not primarily a simulation tool, GNU Radio does support development of signal processing algorithms using pre-recorded or generated data, avoiding the need for actual RF hardware.
Arrrghh... Python! No!
Seriously though, software defined receivers (SDRs) are all the rage these days. They take a large portion of the signal processing out of the radio and do it in software instead. Its much more flexible and provides many benefits, such as monitoring multiple channels at once, for instance.