Spectrum pooling based on centralized and distributed resource allocation strategies for cognitive radio networks