segunda-feira, 2 de março de 2009

Convolution

What's convolution? Who studies functional analysis in mathematics or signal and/or image processing, they ask themselves: "what's convolution?" and now we'll try to show a light.

Give a generic function f(t), for example a signal of voice.

We want to analyze the similarity between f(t) and another function h(t) (known). The similarity should be calculated for all t, because we don't know the moment that f(t) is most similar to h(t).

Okay, now we know what we have to do, let's learn how we do.

We have a function f(t), the most similar function to f(t) is f(t) (obvious), so if we dislocate f(t) over itself, for each lag (t - s) we calculate the similarity between f(t) and f(t - s), the maximum similarity occurs for s = 0.

But, if we have the function f(t - a) (f(t) shifted to left of a), thus if we dislocate h(t) = f(t - a) over f(t) the similarity between f(t) and f(t - s), the maximum similarity occurs for s = -a.

If we have a function h(t) and we don't know the moments and the values of similarity between f(t) and h(t), then we need calculate the similarity for each t, and I say: this calculus is the convolution.

For finish, Why do we want to calculate the similarity between two functions?

Because we can find known patterns in given functions. Return to signal of voice, we can find phonemes (known patterns) over a captured signal.

--------------
The command in Scilab that calculates the convolution is convol().

Um comentário:

David disse...

Thanks. Help me understand a bit about my current study on convolution. I don't know the language here though, just guessing.