According to my understanding, the subcarriers spacing Δf=B/N so increasing the number of subcarriers B will decrease the subcarrier spacing and hence increase the achieved data rate at the expense of performance. Is that analysis correct or there are other reasons?
No, it's not correct (by itself without a lot of assumptions that you'd need to do, which usually aren't true!)
The DFT, no matter the length, just divides the overall bands in orthogonal subbands. If your noise was white before, that means the average SNR is totally regardless of number of subcarriers.
If we don't ignore the guard interval: On the contrary, given that your channel's impulse response is independent of what OFDM system you build, the guard interval/cyclic prefix has constant length. Since with more subcarriers, you get more samples per OFDM symbol, and hence longer symbols, that means with more subcarriers, you spend a smaller percentage of your transmit time and energy on cyclic prefix/guard interval, and your amortized symbol rate grows.
So, it's not clear why you're seeing what your seeing. Things that might happen:
- Your frequency synchronization is not perfect. Then, a fixed amount of frequency offset will lead to more inter-carrier interference. But: the more subcarriers you have, the longer your synchronization symbol can be, and typically, your frequency estimator variance drops by the same amount. If you have more subcarriers, adjust your frequency synchronization accordingly! This is inherent with techniques like Schmidl&Cox, as these use full OFDM symbols for estimation, and hence get more energy with longer OFDM symbols, but not for all possible frequency estimation methods.
- Your timing synchronization is not perfect. The phase of the same subcarrier in consecutive OFDM symbols rotates. Of course, that means that the longer the OFDM symbol, the more it rotates. But: for the same amount of data, you'd need proportionally more OFDM symbols with shorter symbols (=fewer subcarriers), so that's again a case of "amortized" identical error. What might be happening is that you do a per-subcarrier phase recovery (this is not usual in practical OFDM system, but who knows what kind of synchronization you have!) and the PLLs on each subcarrier need to be adjusted to the length of the symbols, and you forgot to do that.
- Your channel is time-variant, so that with longer symbols, your pilots just don't occur often enough. But more subcarriers also allow you to put in proportionally more pilots without losing rate. So, that would be a design mistake in increasing symbol duration without adjusting pilot insertion