Noise handling algorithm in 8 wire touch screen

In summary, the proposed solution is to create a boundary circle around the touch point, effectively locking all other bad readings into the circle. However, this solution has two problems. First, for slow moving touch pen speed movements, due to this boundary circle, the cursor jumps from 1 circle to another. Second, the size of the boundary circle has to be expanded when the touch screen wears out because of more noise.
  • #1
hanhao
20
0
Noise handling algorithm in 8 wire touch screen
here's how a touch screen work http://focus.ti.com/lit/an/slaa298/slaa298.pdfProblem:
when the touch pen is stationary on a point and reading ADC values from a touch screen using the micro controller, the ADC values are never the same
eg, 1st reading might be 500, 2nd reading is 510, 3rd is 505. This causes the the cursor to drift about the touch point, not something nice for the user . caps are already in place. it's a standard schematic so hardware shouldn't be a problem.

Proposed solution:
Now what i did was to create a boundary circle around the point, effectively locking all other bad readings into the circle.

http://img263.imageshack.us/img263/8210/circlejy5.jpg [Broken]

http://img266.imageshack.us/img266/5989/circlehf0.jpg [Broken]
but the problem is that
- for slow moving touch pen speed movements, due to this boundary circle, the cursor jumps from 1 circle to another. very ugly and it disallows slow movement.
- the size of the boundary circle has to be expanded when the touch screen wears out because of more noise

does anyone have a better solution?
thanks in advance
- hanhao
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
Have you considered averaging a FIFO buffer?
 
  • #3
NoTime said:
Have you considered averaging a FIFO buffer?

yes i did average
averaging does help reduce "jumping mouse", but it still causes the problem
 
  • #4
Noise filtering is a relatively complex subject in my opinion. If I recall, most of the better algorithms are patented or kept secret by the companies and organizations that created them.

My suggestion here is to just try all the basic filtering techniques you have as for any digital signal. I assume you have no chance of improving the performance of the ADC at the circuit level. Is it possible to convert a reasonable sample of your data to the Fourier domain using the DFT and do some analysis of the signal there?
 
  • #5
mezarashi said:
Noise filtering is a relatively complex subject in my opinion. If I recall, most of the better algorithms are patented or kept secret by the companies and organizations that created them.

My suggestion here is to just try all the basic filtering techniques you have as for any digital signal. I assume you have no chance of improving the performance of the ADC at the circuit level. Is it possible to convert a reasonable sample of your data to the Fourier domain using the DFT and do some analysis of the signal there?

the micro controller takes ADC samples from a waveform like this, very highly zoomed in
http://img133.imageshack.us/img133/9835/sampleir1.jpg [Broken]
what analysis should i do?
 
Last edited by a moderator:
  • #6
It is difficult to do any sort of filtering other than some sort of averaging filter in the time domain. You should do a frequency domain analysis. Do any of your DSP programs support a Discrete Fourier Transform? A low-pass filter might help.
 
  • #7
mezarashi said:
It is difficult to do any sort of filtering other than some sort of averaging filter in the time domain. You should do a frequency domain analysis. Do any of your DSP programs support a Discrete Fourier Transform? A low-pass filter might help.

although averaging does reduce the problem, it did not give much of an effective result. mouse cursor drifts lesser, but the drifting is still there.

on the micro controller there is no frequency analysis feature, unless i program it myself. if i were to program a frequency analysis algorithm, what would be the algorithm for it? what analysis is needed to be done? how do i obtain a usable result from this analysis?
 
  • #8
make a dithering algorithim?:blushing:
 
  • #9
Well first of all, scour the internet for a frequency analysis program. There's bound to be something free out there. You'll need the graph to get a good look at where the noise is and what you can filter.

Then you can probably implement your own filters, but again, the internet is available. Search for an implementation of the type of filter you would need. For example if you see from the frequency domain that most of your signal is of low frequency and there's a noise spike in another band, a low-pass filter might be suitable. Googling for: c implementation low pass filter, I get:

http://ccrma.stanford.edu/~jos/filters/Definition_Simplest_Low_Pass.html

P.S. Oh, I'm talking from a results point of view here. If the purpose is to learn, then yeah, it'd be better you do all of this yourself. It will really reinforce your Digital Signals Processing knowledge.
 
Last edited:
  • #10
thanks for the ideas, ok i will check these out :wink:
 

1. What is a noise handling algorithm in 8 wire touch screens?

A noise handling algorithm in 8 wire touch screens is a set of mathematical calculations and programming techniques used to filter out unwanted signals and noise from the touch screen input. This ensures that the touch screen accurately detects and responds to user touch inputs without interference from external factors.

2. Why is a noise handling algorithm important in 8 wire touch screens?

A noise handling algorithm is important in 8 wire touch screens because it helps improve the overall performance and accuracy of the touch screen. Without a noise handling algorithm, external factors such as electromagnetic interference or accidental touches can result in false or inaccurate touch inputs.

3. How does a noise handling algorithm work in 8 wire touch screens?

A noise handling algorithm works by analyzing the incoming touch screen data and filtering out any signals that do not match expected patterns or fall within a certain range. This is usually achieved through digital signal processing techniques, such as averaging or thresholding, to remove noise while retaining legitimate touch inputs.

4. Can a noise handling algorithm be customized for different environments?

Yes, a noise handling algorithm can be customized for different environments. The algorithm can be adjusted to account for varying levels of noise and interference in different settings, such as industrial or outdoor environments. This ensures that the touch screen remains accurate and reliable in any situation.

5. Are there any limitations to a noise handling algorithm in 8 wire touch screens?

While a noise handling algorithm can greatly improve the performance of 8 wire touch screens, it is not a perfect solution. In some cases, extremely high levels of noise or interference may still result in false touch inputs. Additionally, the algorithm may also introduce a slight delay in touch response time, although this is usually negligible.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
2
Views
4K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
8
Views
3K
Back
Top