Increased ADC noise going from analog to digital
8 views (last 30 days)
Show older comments
Hello everyone, I am trying to build an inverter with a closed loop control system using the F280049C DSP board and the C2000 Microcontroller Blockset, but I am getting verry noisy ADC readings. The switching frequency of the inverter is 30kHz, and I am recording data from the ADC at 2 kHz.
There is some noise on the ADC input (I checked with an oscilloscope), but it appears to be much worse when looking at the values recorded by the ADC. I think it might be captureing a lot of the spikes from the noise.
I can filter out most of the noise by applying a really aggressive filter (implemented using a discrete transfer function for a 1st order low pass filter with f_c at 10 Hz), but this makes the code run slower and also reduce the speed I can respond to changes in the ADC input.
So, my question is if there are any hardware or software modifications I can or should make to reduce the noise in the recorded ADC values?
Thank you verry much for your time!
2 Comments
Mathieu NOE
on 23 Oct 2024
hello
can you show the difference between your analog signal (scope ) and the ADc reading ?
there could be some grounding issues or EMI due to the power section of the converter disturbing the ADC
do you have an analog anti aliasing filter in front of the ADC ? usuallay we use 5th to 8th order LP filters for the job.
Star Strider
on 23 Oct 2024
I looked up the datasheet on that unit. I am not certain that it has an anti-aliiasing filter ahead of each of the ADCs. If it does not, a hardware analog lowpass Bessel filter with the cutoff frequency equal to the Nyquist frequency could help, and also prevent aliasing if that is a consideration. A hardware analog filter would not slow anything, since it operates in real tiime.
Answers (1)
Shivam Gothi
on 24 Oct 2024
As per my understanding, you are sampling an analog signal through ADC and facing the issue of noise signal appearing in the sampled signal. I understand that the noise appearing in the oscilloscope is somewhat less than the noise that you are observing in the sampled signal.
As mentioned by you: “There is some noise on the ADC input (I checked with an oscilloscope), but it appears to be much worse when looking at the values recorded by the ADC”, I will suggest you to verify the “filter” settings of the oscilloscope. If a noise filter is selected in an oscilloscope, it will remove the noise from the observed signal, and the signal you see on the oscilloscope is not the actual noisy signal.
I am giving some workarounds based on my experience while working on hardware. It might help to mitigate the issue of noise appearing in the sampled signal.
- Measured signal should not be directly passed to the ADC. An anti-aliasing filter should be used to filter the high-frequency components present in the analog signal, before passing it to ADC. An anti-aliasing filter is a low-pass filter which filters out the high-frequency noise. It can be easily made using some operational amplifiers, resistors and capacitors. “Low-pass Sallen-key filter” is one such example of anti-aliasing filter. Please refer the below Wikipedia document to know more about the “Sallen-key filter”. https://en.wikipedia.org/wiki/Sallen%E2%80%93Key_topology
- There is no need to put a digital filter to remove the noise. The anti-aliasing filter will do the task. This will also make the code run faster and complete within a desired time frame. (IMPORTANT: you must use an Anti-aliasing filter at the input of ADC. Digital filter is not a substitute for anti-aliasing filter).
- The anti-aliasing filter should be placed physically as near to the ADC of microcontroller as possible (in order to avoid longer wire lengths).
- The lower cut-off frequency off the anti-aliasing filter should be atmost equal to the half of the frequency at which your control loop is running. (Refer to the Nyquist criteria for sampling continuous time signals).
- If the DSP board is placed very near to the inverter (which is usuallt the case in order to avoid logn gate,source cables), ADC channels also experiences noise signals due to high-frequency electromagnetic interference from the three phase inverter switching.
- To mitigate the above issue, you need to use a common mode choke, right after the three phase inverter and then connect the motor terminals to it as shown in the below schematic diagram.
NOTE: the common mode choke should be as near to the inverter as possible. The common mode choke offers high impedence to the common mode component of the current and thus reducing the interference due to "Electromagnetic induction" effect. Refer to the below link to know more about common mode chokes:
(You can also surf the internet to find some content regarding its construction and working.)
0 Comments
See Also
Categories
Find more on Sources in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!