# Can convolution be used to solve this?

• I
mreff555
I'm working on a software application that is difficult to describe. I have a fixed printer that prints a binary image (black or white). The ultimate goal is to print columns of 1" diameter circular dots, slightly interlaced for efficiency. The caveat is that the printing substrate is not actually a straight line but a section of a rotating platen. To clarify the printer is stationary, the substrate rotates in a circular arc.

Assuming I had some type of scaling factor to jog the rings and assuming I could define a discrete equation to describe the location of black pixels in a given column as if the dots were being printed in a straight line, and assuming I knew the constant speed of the rotating substrate. would it be possible to combine that equation with the equation of a circular arc to produce an image appropriate to feed to this printer?

The resulting image would need to be linear columns of dots stretched accordingly to print on a rotating surface. In other words, very little stretching on the right side, quite a lot of stretching on the left.

Years ago I created a program which assembled the image in a doughnut shape and mapped the pixels to columns, filling in the blanks. While, at the time, I significantly increased the speed, it still takes a few minutes to process. There are more steps involved but this is the first. I'm a chemical engineer so convolution, or programming for that matter, wasn't exactly something I learned with much detail. However it occurred to me the other day that it might simplify this problem. Does this make sense to anyone? or do I completely misunderstand Convolution?

## Answers and Replies

Alpharup
Years ago I created a program which assembled the image in a doughnut shape and mapped the pixels to columns, filling in the blanks. While, at the time, I significantly increased the speed, it still takes a few minutes to process. There are more steps involved but this is the first. I'm a chemical engineer so convolution, or programming for that matter, wasn't exactly something I learned with much detail. However it occurred to me the other day that it might simplify this problem. Does this make sense to anyone? or do I completely misunderstand Convolution?
Yes, it is possible.....
But convolution can be done by programming the controller with a specific transfer function.
For you to perform convolution, you need input discrete function, the system transfer function and the output......The system transfer function is that of the printer.
Convolution is a complex process involving repeated addition and multiplication, so it may take a lot of memory in the controller ( of printer).
So, what I would advice is, white the discrete output required and transfer function in time domain. Then using MATLAB or manually, find the frequency response of both. Divide the frequency of output by the frequency response of the transfer function.
By property, you get the frequency response of input. Find the inverse Discrete Fournier transform to get the discrete input signal.
Now, by using convolution, you can program