# arduino SNR of its output

Hello

i ' am working on a project that is a waveform generator, and i need to know the SNR of the digital output of the arduino uno and the arduino mega
thank you

How do you define the "noise" in this case?

As far as I know, SNR is a property of a radio receiver.
We usually test the total harmonic distortion, THD,
of a sine wave signal generator.
Herb

during this situation i don't have acess to the lab and i can't see my waveform and the waveform generated with the arduino will be amplified by 1000 using a high voltage amplifier and because of that i want to know how to calculate the SNR of the arduino output

Since there is no analog output, SNR doesn't apply. So, I don't know how you are making waveform generator...

The outputs are digital and from the ATmega datasheet, under normal operating conditions (Vcc = 5V and no excess current, etc.) output-high (VOH) is 4.1V or higher, and output-low (VOL) is 1V or less. That means you could have about 1V of noise, but that's meaningless for whatever you're trying to do.

If you are using PWM the results would depend on the filter.

the waveform generated with the arduino

You forgot to mention this in your first post.

Post the code, using code tags, and describe how waveform generation works.

i have fogot to explain my code, i have created a table of each wave the table containe a values of 8bit and then feed the values to an 8bit R2R dac network values of the resistors are 20k and 10Kohm, i need a way to calculate the SNR and resolution of my waveform

i'am using a 1% tolerance resistors

8 bits resolution means there are 256 possible values of the output, with at least one bit noise. So the SNR is worse than 20 log10(1/256), or -48 dB. The resistor tolerance brings that up to -40 dB or higher, probably much higher considering the binary weighting.

Noise is added in quadrature, so the two noise sources have at the very minimum SNR 20 log10(sqrt( (1/256)^2 +(1/100)^2)) = -39 dB

thank very much for your help sir

This all assumes no noise shaping or post-DAC filtering, nor any power rail noise.

You can also hand pick your resistors for a tighter tolerance. The 1% is just a factory spec. Of course, you need a highly accurate ohm meter for that. You should try to use resistors from the same reel, also use two resistors in series for the 2R so the 1R and 2R can be from the same batch.

I guess you know that there are DAC IC's and processors that have a built in DAC...