I would like to determine the SINAD of a distorted signal from a measurement and have troubles to get consistent data. The problem is (at least to my understanding) that I only have a very limited number of signal periods and I'm not sure, whether I have enough data to provide this measurement at all.
In order to determine the SINAD I need the power of my signal as well as the power of "all the rest", i.e. the power of noise and distortion. To obtain these powers, I took my oscilloscope data and calculated the spectrum via an FFT. I didn't use any window function (i.e. I used a rectangular window) to calculate the FFT since I know the fundamental frequency I expect from my signal and can choose an integer multiple of the fundamental period as my window width. From the frequency bin at my desired frequency I determined the fundamental amplitude. The noise + distortion power was then calculated by subtracting the signal's RMS value from the total RMS value according to
From these two RMS values I then calculated the SINAD according to:
The problem is now that my results vary depending on the number of fundamental periods (I took between 1 and 33 periods, I don't have more) from the measurement I take to calculate the FFT, where increasing the number of fundamental periods degrades the SINAD. This makes sense to me to a certain extent since if I extend the window size of my input data, the frequency resolution of my spectrum increases. This means that parts of the noise + distortion in the vicinity of the fundamental bin which were combined into this bin for a course frequency resolution are now contained in the neighboring bins of the fundamental and treated as noise/distortion and not as part of the signal anymore.
I couldn't really find a lot on how to eliminate this issue. Googling on how to measure SINAD mostly leads to the definitions themselves. Is there a way to determine the SINAD for the limited amount of signal periods? How would I have to calculate it? I also tried the matlab function sinad(), however, it has similar issues (although with this function, the dependence on the number of signal periods is less compared to my own calculation).