Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

I Can convolution be used to solve this?

  1. Apr 12, 2016 #1
    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?
  2. jcsd
  3. Apr 15, 2016 #2
    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
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted