I'm using a Costas loop for carrier recovery. The BER vs SNR (from GNU Radio Simulation) curve for different loop bandwidths (0.03,0.05 and 0.07) is shown in the graph below. It can be seen that the PLL "lock threshold SNR" is about (3dB, 5dB, and 6.5dB) respectively. The implication is lower loop bandwidth values have a lower locking threshold. On the other hand, the lower loop bandwidth values have a longer acquisition period. There is a tradeoff between noise performance and acquisition time. I was thinking of solving this problem by using a Costas loop where the loop bandwidth can be adjusted on-the-fly. I'm more interested in algorithms that can adjust the loop bandwidth without the estimation of SNR. Any suggestions?