An emission power control algorithm for cognition radio based on game theory and utility theory is proposed. In this algorithm, a pure efficiency function is expressed as a difference between efficiency function and pricing function. For the efficiency function, the Sigmoid efficiency function is used to replace the power exponential efficiency function given by David, and the error caused by replacing is compensated. For the pricing function, history emission power is considered when using the pricing function so as to make a change in price trending smooth. Simulation results show that, compared with the original algorithm, the proposed algorithm not only improves the system stability, but also reduces the system error and control overhead.