Is what I am doing correct?
If not, how would I reproduce the SINAD function?
By replicating the exact same algorithm that the Matlab function uses.
Your answer is more correct, but you also "cheated". You have access to the original sine and noise signals. sinad() ONLY has access to the sum of both. Hence it needs to do an estimation using ...