DSPRelated.com
Forums

Deconvolution

Started by CCoder April 13, 2010
Hello,
I am looking for a deconvolution algorithm to detect material transitions.
Can anyone point me in the right direction?



CCoder wrote:
> Hello, > I am looking for a deconvolution algorithm to detect material transitions. > Can anyone point me in the right direction?
What do you mean by "material transitions"? What's your source data? How is it related to these "material transitions" you want to detect? -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
CCoder <michel.timos@n_o_s_p_a_m.gmail.com> wrote:

> I am looking for a deconvolution algorithm to detect material transitions. > Can anyone point me in the right direction?
My favorite deconvolution book is "Deconvolution of Images and Spectra" (I believe that is the title). It is the second edition, the first had a slightly different title. That may or may not apply to your problem. -- glen
On 14 apr, 00:41, "CCoder" <michel.timos@n_o_s_p_a_m.gmail.com> wrote:
> Hello, > I am looking for a deconvolution algorithm to detect material transitions. > Can anyone point me in the right direction?
Pick any direction you want and walk straight ahead. Deconvolution is an art. There are no generic methods that work. The methods that kind of work rely extensively on very specific properties of the data at hand, and the measurement set-up that produced them. Describe what you are up to in some detail, and you might recieve more useful answers. Rune
Rune Allnor <allnor@tele.ntnu.no> wrote:
(snip)
 
> Deconvolution is an art. There are no generic methods > that work. The methods that kind of work rely extensively > on very specific properties of the data at hand, and the > measurement set-up that produced them.
The book I previously mentioned, "Deconvolution of Images and Spectra" by Jansson, describes non-linear deconvolution especially in the case where the data values are restricted. Consider absorption spectra: the absorption can't be less than zero (well, maybe for fluorescence) or greater than one. Linear deconvolution of signals with even a little noise will easily violate those restrictions. Jansson describes algorithms that work within those limits and, reasonably often, give good results. There is also an older book: "Deconvolution with applications in spectroscopy." -- glen
>The book I previously mentioned, "Deconvolution of Images and Spectra" >There is also an older book: "Deconvolution with applications >in spectroscopy." >
Okay, here is my setup: I generate an ultrasonic pulse which travels throught the object I want to measure. The resulting reflections are read back into the system. What comes back will have little peaks in it which indicate a change in material. Suppose I have a block that has 2 layers of (different) metals. One peak will indicate where the wave entered the object, a second one where the second layer starts. And a third where the wave exited the object. I want to measure the distances (thickness if you like) between the peaks. I know I do not need 'blind' deconvolution since I know the input pulse. But I am unsure what version I do need. It would be great if there is some code that gives me at least a starting point. Thanks
On 14 apr, 17:33, "CCoder" <michel.timos@n_o_s_p_a_m.gmail.com> wrote:
> >The book I previously mentioned, "Deconvolution of Images and Spectra" > >There is also an older book: "Deconvolution with applications > >in spectroscopy." &#4294967295; > > Okay, here is my setup: I generate an ultrasonic pulse which travels > throught the object I want to measure. The resulting reflections are read > back into the system.
How do you get reflections if the pulse travels *through* the object?
> What comes back will have little peaks in it which indicate a change in > material.
No, it doesn't. Any reflections indicate abrupt changes in acoustic impedance. If the materials have the same impedance or the change between materials is not abrupt, you will not see any reflections.
> Suppose I have a block that has 2 layers of (different) metals. > One peak will indicate where the wave entered the object, a second one > where the second layer starts. And a third where the wave exited the > object. > > I want to measure the distances (thickness if you like) between the peaks.
No, you don't. You want to measure the time delay between reflections.
> I know I do not need 'blind' deconvolution since I know the input pulse.
No, you don't. If you know the pulse shape emitted - and you use a 'simple' geometry (i.e. monostatic source-recever set-up) - you might get away with an ordinary matched filter. Now, explain *exactly* the set-up you use. Rune
>On 14 apr, 17:33, "CCoder" <michel.timos@n_o_s_p_a_m.gmail.com> wrote:
>> Okay, here is my setup: I generate an ultrasonic pulse which travels >> throught the object I want to measure. The resulting reflections are
read
>> back into the system. > >How do you get reflections if the pulse travels *through* the >object?
An ultrasound wave is sent at the object and it gives me reflections. You known, like a sonar.
>> What comes back will have little peaks in it which indicate a change in >> material. > >No, it doesn't. Any reflections indicate abrupt changes in acoustic >impedance. If the materials have the same impedance or the change >between materials is not abrupt, you will not see any reflections.
I have data from the ultrasonic transducer that shows me (little) peaks on entering, exiting and when the material changes. That is sufficient.
>> Suppose I have a block that has 2 layers of (different) metals. >> One peak will indicate where the wave entered the object, a second one >> where the second layer starts. And a third where the wave exited the >> object. >> >> I want to measure the distances (thickness if you like) between the
peaks=
>. > >No, you don't. You want to measure the time delay between >reflections.
I need to convert the time delay to distance, yes.
>> I know I do not need 'blind' deconvolution since I know the input
pulse.
>No, you don't.
Well okay I don't know for sure. But according to research papers I've read I am quite sure I need deconvolution. As far as I know 'Blind deconvolution' is used to deconvolve something (i.e. an image) that you don't know the source shape of. In my case I know the shape since I generate it. Problem is, there are quite a few variations on deconvolution, I don't know which one to start looking at. If you know the pulse shape emitted - and you use
>a 'simple' geometry (i.e. monostatic source-recever set-up) - you >might get away with an ordinary matched filter. > >Now, explain *exactly* the set-up you use. > >Rune
An ultrasonic generator, an object a few milimeters in size with different materials in it and a pickup sensor.
On 14 apr, 18:37, "CCoder" <michel.timos@n_o_s_p_a_m.gmail.com> wrote:

> >Now, explain *exactly* the set-up you use. > > >Rune > > An ultrasonic generator, an object a few milimeters in size with different > materials in it and a pickup sensor.
When I say 'exactly' I actually mean 'exactly'. For starters, what are 1) The dimensions of the object? 2) The number of materials involved? 3) The expected impedances of the matreials involved? 4) The expected relative sizes of the materials? 5) The carrier frequency for the pulse? 6) The bandwidth of the pulse? 7) The type of pulse? (Frequency sweep? Monochromatic?) 8) The duration of the pulse? 9) The geometric configuration of the sensor? (Mono/bistatic? Dimensions?) 10) The physical dimensions of the sensor(s)? And again: When I say 'exactly' I *mean* 'exactly'. Rune
CCoder wrote:
>> On 14 apr, 17:33, "CCoder" <michel.timos@n_o_s_p_a_m.gmail.com> wrote: > >>> Okay, here is my setup: I generate an ultrasonic pulse which travels >>> throught the object I want to measure. The resulting reflections are > read >>> back into the system. >> How do you get reflections if the pulse travels *through* the >> object? > > An ultrasound wave is sent at the object and it gives me reflections. You > known, like a sonar. > >>> What comes back will have little peaks in it which indicate a change in >>> material. >> No, it doesn't. Any reflections indicate abrupt changes in acoustic >> impedance. If the materials have the same impedance or the change >> between materials is not abrupt, you will not see any reflections. > > I have data from the ultrasonic transducer that shows me (little) peaks on > entering, exiting and when the material changes. That is sufficient. > >>> Suppose I have a block that has 2 layers of (different) metals. >>> One peak will indicate where the wave entered the object, a second one >>> where the second layer starts. And a third where the wave exited the >>> object. >>> >>> I want to measure the distances (thickness if you like) between the > peaks= >> . >> >> No, you don't. You want to measure the time delay between >> reflections. > > I need to convert the time delay to distance, yes. > >>> I know I do not need 'blind' deconvolution since I know the input > pulse. >> No, you don't. > > Well okay I don't know for sure. But according to research papers I've read > I am quite sure I need deconvolution. As far as I know 'Blind > deconvolution' is used to deconvolve something (i.e. an image) that you > don't know the source shape of. In my case I know the shape since I > generate it. > Problem is, there are quite a few variations on deconvolution, I don't know > which one to start looking at.
How old are the research papers? How much did the researchers actually use the results? How well respected were these researchers in industry? How many ultrasonic imaging companies actually used the results? And in case you're wondering -- yes, I'm doing my part for the Diogenes Appreciation Society today. Many academic fields have drifted away from actual useful results, and are investigating various ramifications that are either unreasonably computationally intensive, put unreasonable demands on the input data, solve hardware problems that have already been fixed, or offer improvements that are only trivial. OTOH, there's still a lot of good stuff out there -- so you have to do some sorting.
> If you know the pulse shape emitted - and you use >> a 'simple' geometry (i.e. monostatic source-recever set-up) - you >> might get away with an ordinary matched filter. >> >> Now, explain *exactly* the set-up you use. >> >> Rune > > An ultrasonic generator, an object a few millimeters in size with different > materials in it and a pickup sensor.
Do you know the phase of the pulse picked up, or do you just get a magnitude back? How does the damping/blanking time of the generator and pickup compare with the travel time in your 'few millimeter' sample? I'll wager that knowing the phase would make a huge difference to what you can do, and having to deal with residue of the pulse when your first reflection is coming back complicates things in itself. Are you trying to get a detailed picture, ala the prenatal baby pictures that expecting parents get from the nice technician during prenatal exams? Or are you sliding in a material with a known construction and looking for the exact positioning of known discontinuities? Or are you doing something else yet again? Which question you're trying to answer makes a big difference -- for imaging you probably want some form of deconvolution, and the closer you can get to something that has already been done with your materials the better your starting point. For identifying the presence and location of discontinuities, a matched filter is probably a better choice. Either one will have to take the presence of noise into account; correct deconvolution in a no-noise environment would be a horrible noise enhancer, in the matched filter case the filter itself wouldn't change much, but setting the threshold properly would get more and more dicey as the noise went up. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com