Self-interference (SI) is usually generated by the simultaneous transmission and reception in the same system, and the variable SI channel and impulsive noise make it difficult to eliminate. Therefore, this paper proposes an adaptive digital SI cancellation algorithm, which is an improved normalized sub-band adaptive filtering (NSAF) algorithm based on the sparsity of the SI channel and the arctangent cost function. The weight vector is hardly updated when the impulsive noise occurs, and the iteration error resulting from impulsive noise is significantly reduced. Another major factor affecting the performance of SI cancellation is the variable SI channel. To solve this problem, the sparsity of the SI channel is estimated with the estimation of the weight vector at each iteration, and it is used to adjust the weight vector. Then, the convergence performance and calculation complexity are analyzed theoretically. Simulation results indicate that the proposed algorithm has better performance than the referenced algorithms.