Skip to content
Snippets Groups Projects
rapport.md 16.7 KiB
Newer Older
---
title: "Rapport Math"
author: [Troller Fabian, Rivier Nicolas]
date: "2022-04-25"
keywords: [Math, Intégrales]
lang: "fr"
titlepage: true,
titlepage-rule-height: 0
titlepage-background: "background5.pdf"
...
# Introduction Génerale
Pour ce TP de math, nous avons dû comprendre, calculer et implémentés des intégrales, nous devions comparer nos résultats de calcul à nos résultats d'implémentation pour calculer l'erreur entre les deux et la représenté sous la forme d'un graphique. Nous avons également dû comprendre la convolution de signaux à 1 dimension et de matrice à 2 dimensions pour pouvoir utiliser cette dernière pour débruiter des images en niveaux de gris en appliquant finalement une normalisation de l'image.

# Introduction théorique

## Intégration numérique
On définit une fonction **f(x)**,  
\begin{equation}
f(x)=-\frac{2x-1}{\exp(x^2-x+2)},
\end{equation}

Ou l'on veut calculer son intégration entre un intervalle de **[a,b]** a un certain **N** d'approximation.

\begin{equation}
I(a,b,N,f(x))=\sum_{i=0}^{N-1} f(a+i\delta x)\delta x,\quad \delta x=\frac{b-a}{N}.
\end{equation}

Og's avatar
Og committed
Afin de pouvoir faire une comparaison d'erreur entre la solution numérique et analytique nous allons prendre la meme intervalle **[a,b]** $=$ **[1,5]** 

## Intégration analytique
Afin de valider notre intégration analytique et étudié l'erreur en fonction du **N** nombre d'intervalle.  
Nous allons calculer la solution analytique de notre fonction.

\begin{equation}
f(x)=-\frac{2x-1}{\exp(x^2-x+2)},
\end{equation}

\begin{equation}
I=\int_a^b f(x)*dx = -\frac{2x-1}{\exp(x^2-x+2)}\mathrm{d}x.
\end{equation}

pour un intervalle [1,5].

\begin{equation}
\int_1^5 -\frac{2x-1}{e^{(-x^2+x-2)}}
\end{equation}

\begin{equation}
\int_1^5 -(2x-1) * \frac{1}{e^{(-x^2+x-2)}}
\end{equation}

\begin{equation}
\int_1^5 (-2x+1) * e^{(-x^2+x-2)^{-1}} 
\end{equation}

\begin{equation}
\int_1^5 (-2x+1) * e^{(-x^2+x-2)}
\end{equation}

Déterminer la transformée en u

\begin{equation}
\int_1^5 du * e^u
\end{equation}

\begin{equation}
u = f(x) = -x^2+x-2
\end{equation}
\begin{equation}
du = F{(x)}'= -2x+1
\end{equation}

\begin{equation}
\int_1^5 e^u * du = \mid_1^5 e^{(-x^2+x-2)}
\end{equation}

selon 
\begin{equation}
\mid_a^b f(x) = f(b) - f(a)
\end{equation}

on obtient

\begin{equation}
\mid_1^5 e^{(-x^2+x-2)} = e^{-5^2+5-2} - e^{-1^2+1-2}
\end{equation}

\begin{equation}
e^{-25+5-2} - e^{-1+1-2} = e^{-22} - e^{-2}
\end{equation}

finalement 

\begin{equation}
I = \frac {1}{e^{22}} - \frac {1}{e^{2}} = -0,135335283
\end{equation}

## Validation
Afin de comparer nos résultats nous allons varier **N** de 5,10,50,100,500,1000 pour une même intervalle a b $=$ **[1,5]** et calculer l'erreur de notre résultat numérique par rapport à la solution analytique.

\begin{equation}
 E(N)=\left|\frac{I-I(a,b,N,f(x))}{I}\right|
\end{equation}

poulpe's avatar
poulpe committed
![Graphique E(N) LOG](Graphic_Error_n.pdf "Graphique E(N) Echelle LOG"){ width=50% }
![Graphique E(N)](Graphic_Error_n_2.pdf "Graphique E(N)"){ width=50% }

Sur ces deux graphiques, on peut constater que l'erreur diminue plus l'itération est grande, sur le premier graphique, l'échelle est logarithmique. Pour le deuxième graphique, l'échelle est standard et permet de voir également cette diminution de l'erreur sous une autre forme.


# Convolutions et filtrage
Afin de se familiariser avec les convolutions, nous allons filtrer des signaux à 1 dimension.

Pour cela nous définition un signal composé de deux signaux avec chacun une fréquence différents w1 et w2.

\begin{equation}
s(x)=\sin(2\pi\omega_1 x)+\sin(2\pi\omega_2 x).
\end{equation}

et un certain filtre

\begin{equation}
f(x)=\left\{\begin{array}{ll}
                \frac{1}{\psi},&\mbox{ si }x\in[-\psi/2,\psi/2]\\
                0,&\mbox{ sinon.}
               \end{array}\right.
\end{equation}

Le but est de déterminer l'intervalle du filtre
\begin{equation}
[-\psi/2,\psi/2]
\end{equation} 
afin que la convolution de ces deux fonctions (f*s)(x) annule une des deux composantes sinusoïdales du signal.

## Solution analytique
### Délimitation
La convolution de deux fonctions est définie de la sorte:
\begin{equation}
\int_{-\infty }^{\infty} S(x - t)*f(x)dt
\end{equation}

On va développer dans les intervalles que nous recherchons.

\begin{equation}
\int_{-\infty }^{-\psi/2} S(x - t)*f(x)dt + \int_{-\psi/2 }^{\psi/2} S(x - t)*f(x)dt + \int_{\psi/2 }^{\infty} S(x - t)*f(x)dt
\end{equation}

En observant f(x) on constate que dans l'intervalle [-psi/2, psi/2] f(x) vaut 1/psi sinon 0 :

\begin{equation}
f(x)=\left\{\begin{array}{ll}
                \frac{1}{\psi},&\mbox{ si }x\in[-\psi/2,\psi/2]\\
                0,&\mbox{ sinon.}
               \end{array}\right.
\end{equation}

donc notre domaine de convolution recherché s’étant a  
\begin{equation}
\int_{-\psi/2 }^{\psi/2} S(x - t)*f(x)dt = \int_{-\psi/2 }^{\psi/2} (\sin(2\pi\omega_1 (x - t))+\sin(2\pi\omega_2 (x - t))) * \frac{1}{\psi} dt
\end{equation}

### Transformée primaire

On cherche à déterminer la dérivée primaire du sinus et de sa composante par la factorisation de primitive en fonction de t :

\begin{equation}
f(g(t))' = f'(g(t))*g'(t)
\end{equation}

pour :
\begin{equation}
\int \sin(2\pi\omega(x-t)dt
\end{equation}

\begin{equation}
f(t) = sin(x) 	\quad étant \quad f'(t) = -cos(x)
\end{equation}
\begin{equation}
g(t) = 2\pi\omega(x-t) 	\quad étant \quad g'(t) = 2\pi\omega*0 - 2\pi\omega*1 = - 2\pi\omega
\end{equation}

Ce qui nous donne:
\begin{equation}
\int \sin(2\pi\omega(x-t)dt \neq -\cos(2\pi\omega(x-t) * -2\pi\omega
\end{equation}

Donc pour y remédier on multiplie par 1 l’intégrale:
\begin{equation}
\frac{-2\pi\omega}{-2\pi\omega} = 1
\end{equation}
\begin{equation}
\frac{-2\pi\omega}{-2\pi\omega} * \int \sin(2\pi\omega(x-t)dt = \frac{-2\pi\omega}{-2\pi\omega} * -\cos(2\pi\omega(x-t) * -2\pi\omega
\end{equation}

Ce qui nous donne finalement comme résultat:
\begin{equation}
\int \sin(2\pi\omega(x-t)dt = \frac{-\cos(2\pi\omega(x-t)}{-2\pi\omega} = \frac{\cos(2\pi\omega(x-t)}{2\pi\omega}
\end{equation}

#### Transformée primaire de l’intégral au complet
\begin{equation}
\int_{-\psi/2 }^{\psi/2} (\sin(2\pi\omega_1 (x - t))+\sin(2\pi\omega_2 (x - t))) * \frac{1}{\psi} dt
\end{equation}

\begin{equation}
\mid_{-\psi/2 }^{\psi/2} (\frac{\cos(2\pi\omega_1(x-t))}{2\pi\omega_1} + \frac{\cos(2\pi\omega_2(x-t))}{2\pi\omega_2}) * \frac{1}{\psi}
\end{equation}

Distribution des constante et factoriser au mème dénominateur commun:

\begin{equation}
\mid_{-\psi/2 }^{\psi/2} \frac{\cos(2\pi\omega_1(x-t))}{2\pi\omega_1\psi} + \frac{\cos(2\pi\omega_2(x-t))}{2\pi\omega_2\psi}
\end{equation}

\begin{equation}
\mid_{-\psi/2 }^{\psi/2} \frac{\cos(2\pi\omega_1(x-t))}{2\pi\omega_1\psi}*\frac{\omega_2}{\omega_2} + \frac{\cos(2\pi\omega_2(x-t))}{2\pi\omega_2\psi}*\frac{\omega_1}{\omega_1}
\end{equation}

\begin{equation}
\mid_{-\psi/2 }^{\psi/2} \frac{\cos(2\pi\omega_1(x-t))\omega_2 + \cos(2\pi\omega_2(x-t))\omega_1}{2\pi\omega_1\omega_2\psi}
\end{equation}

### Distribution de la constante de temps

Selon la règle:
\begin{equation}
\mid_{\pi}^{-\pi} f(x-t) = f(x-\pi) - f(x+\pi)
\end{equation}

Notre convolution devient:

\begin{equation}
\mid_{-\psi/2 }^{\psi/2} \frac{\cos(2\pi\omega_1(x-t))\omega_2 + \cos(2\pi\omega_2(x-t))\omega_1}{2\pi\omega_1\omega_2\psi} 
\end{equation}

\begin{equation}
= \frac{\cos(2\pi\omega_1(x-\psi/2))\omega_2 + \cos(2\pi\omega_2(x-\psi/2))\omega_1}{2\pi\omega_1\omega_2\psi} - \frac{\cos(2\pi\omega_1(x+\psi/2))\omega_2 + \cos(2\pi\omega_2(x + \psi/2))\omega_1}{2\pi\omega_1\omega_2\psi}
\end{equation}

\begin{equation}
= \frac{\cos(2\pi\omega_1(x-\psi/2))\omega_2 + \cos(2\pi\omega_2(x-\psi/2))\omega_1 - \cos(2\pi\omega_1(x+\psi/2))\omega_2 - \cos(2\pi\omega_2(x + \psi/2))\omega_1}{2\pi\omega_1\omega_2\psi}
\end{equation}

### Regroupement des variables communes
Pour simplifier, je regroupe la formule en différentes parties :

\begin{equation}
\frac{A + B}{C}
\end{equation}
\begin{equation}
A = \cos(2\pi\omega_1(x-\psi/2))\omega_2 - \cos(2\pi\omega_1(x+\psi/2))\omega_2
\end{equation}

\begin{equation}
B = \cos(2\pi\omega_2(x-\psi/2))\omega_1 - \cos(2\pi\omega_2(x + \psi/2))\omega_1
\end{equation}

\begin{equation}
C = 2\pi\omega_1\omega_2\psi
\end{equation}

### Règles de transformation sinusoïdal

Selon une des régles de transformation de somme en produit du sinus:

\begin{equation}
cos(p) - cos(q) = - 2 sin(\frac{p+q}{2}) sin(\frac{p-q}{2})
\end{equation}

Nous allons appliquer cette régle sur A et B

\begin{equation}
A = \cos(2\pi\omega_1(x-\psi/2))\omega_2 - \cos(2\pi\omega_1(x+\psi/2))*\omega_2
\end{equation}

\begin{equation}
(\cos(2\pi\omega_1(x-\psi/2)) - \cos(2\pi\omega_1(x+\psi/2)))*\omega_2
\end{equation}

\begin{equation}
- 2 sin(\frac{2\pi\omega_1(x-\psi/2) + 2\pi\omega_1(x+\psi/2))}{2}) sin(\frac{2\pi\omega_1(x-\psi/2) - 2\pi\omega_1(x+\psi/2)}{2})*\omega_2
\end{equation}

\begin{equation}
- 2 sin(\frac{2\pi\omega_1((x-\psi/2)+(x+\psi/2))}{2}) sin(\frac{2\pi\omega_1((x-\psi/2) - (x+\psi/2))}{2})*\omega_2
\end{equation}

\begin{equation}
- 2 sin(\frac{2\pi\omega_1(2x)}{2}) sin(\frac{2\pi\omega_1(-2*\psi/2) )}{2})*\omega_2
\end{equation}

\begin{equation}
- 2 sin(\pi\omega_1(2x)) sin(\pi\omega_1(-\psi)))*\omega_2
\end{equation}

\begin{equation}
- 2 sin(2\pi\omega_1x) sin(-\pi\omega_1\psi)*\omega_2
\end{equation}

Puis sur B de la même façon.

\begin{equation}
B = \cos(2\pi\omega_2(x-\psi/2))\omega_1 - \cos(2\pi\omega_2(x + \psi/2))\omega_1
\end{equation}

\begin{equation}
(\cos(2\pi\omega_2(x-\psi/2)) - \cos(2\pi\omega_2(x + \psi/2)))*\omega_1
\end{equation}

\begin{equation}
...
\end{equation}

\begin{equation}
- 2 sin(2\pi\omega_2x) sin(-\pi\omega_2\psi)*\omega_1
\end{equation}


Og's avatar
Og committed
### Finalement en rassemblant A,B et C nous obtenons

\begin{equation}
\frac{- 2 sin(2\pi\omega_1x) sin(-\pi\omega_1\psi)*\omega_2 - 2 sin(2\pi\omega_2x) sin(-\pi\omega_2\psi)*\omega_1}{2\pi\omega_1\omega_2\psi}
\end{equation}

\begin{equation}
\frac{- sin(2\pi\omega_1x) sin(-\pi\omega_1\psi)*\omega_2 - sin(2\pi\omega_2x) sin(-\pi\omega_2\psi)*\omega_1}{\pi\omega_1\omega_2\psi}
\end{equation}

\begin{equation}
\frac{sin(2\pi\omega_1x) sin(\pi\omega_1\psi)*\omega_2 + sin(2\pi\omega_2x) sin(\pi\omega_2\psi)*\omega_1}{\pi\omega_1\omega_2\psi}
\end{equation}

Og's avatar
Og committed
\begin{equation}
Og's avatar
Og committed
\frac{sin(2\pi\omega_1x) sin(\pi\omega_1\psi)}{\pi\omega_1\psi} + \frac {sin(2\pi\omega_2x) sin(\pi\omega_2\psi)}{\pi\omega_2\psi}
Og's avatar
Og committed
\end{equation}



On peut alors observer que les deux composent du signal (les deux signaux sinusoïdaux) dépende d'un sinus(w * x) et sinus(w * phi).
On notera alors que si phi équivaut à la période d'un des deux composant 1/w. phi annule la composent visé.

Démonstration:
\begin{equation}
\psi = \frac{1}{\omega_1}
\end{equation}

Og's avatar
Og committed

Og's avatar
Og committed
\frac{sin(2\pi\omega_1x) sin(\pi\omega_1\frac{1}{\omega_1})}{\pi\omega_1\frac{1}{\omega_1}} + \frac {sin(2\pi\omega_2x) sin(\pi\omega_2\frac{1}{\omega_1})}{\pi\omega_2\frac{1}{\omega_1}}
\end{equation}

\begin{equation}
Og's avatar
Og committed
\frac{sin(2\pi\omega_1x) sin(\pi\frac{\omega_1}{\omega_1})}{\pi\frac{\omega_1}{\omega_1}} + \frac {sin(2\pi\omega_2x) sin(\pi\frac{\omega_2}{\omega_1})}{\pi\frac{\omega_2}{\omega_1}}
Og's avatar
Og committed
\begin{equation}
\frac{sin(2\pi\omega_1x) sin(\pi)}{\pi} + \frac {sin(2\pi\omega_2x) sin(\pi\frac{\omega_2}{\omega_1})}{\pi\frac{\omega_2}{\omega_1}}
\end{equation}
Og's avatar
Og committed

Vu que sinus(PI) équivaut a 0. (calcule en radiant) cela revient a faire:

\begin{equation}
Og's avatar
Og committed
0 + \frac {sin(2\pi\omega_2x) sin(\pi\frac{\omega_2}{\omega_1})}{\pi\frac{\omega_2}{\omega_1}}
\end{equation}

On a belle est bien annulé la premier composant (signal sinusoïdal) composent le signal de base S(x)

Og's avatar
Og committed
### Convolution discrète
poulpe's avatar
poulpe committed

Og's avatar
Og committed

## Convolution en 2 dimensions

### Partie 1 
Og's avatar
Og committed
Calculer a la main le produite de convolution suivant, en utilisant la méthode de gestion de bord par une valeur de zéro:
poulpe's avatar
poulpe committed
$$
\underline{\underline{A}}=\begin{pmatrix}
0 & 1 & 0\\
-1 & 0 & -1\\
0 & 1 & 0
\end{pmatrix}, \underline{\underline{B}}=\begin{pmatrix}
1 & 2 & 3\\
4 & 5 & 6\\
7 & 8 & 9
\end{pmatrix}
$$

$$\underline{\underline{A}} \times \underline{\underline{B}} = \begin{pmatrix}
1 & 1 & 4\\
3 & 0 & 7\\
-4 & -11 & 2
\end{pmatrix}$$

### Partie 2
Appliquer différents filtres sur l'image suivante "part2.pgm" :  
poulpe's avatar
poulpe committed
![part2.pgm](img/part2.png){ width=50% }

#### filtre F0
\begin{equation*}
\underline{\underline{F_0}} = \begin{pmatrix}
0 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 0
\end{pmatrix}
\end{equation*}

Résultat de la convolution obtenu:

poulpe's avatar
poulpe committed
![part2_identitaire.pgm](img/part2_identitaire.png){ width=50% }
On déterminer que le filtre F0 ne prend pas en compte les pixels aux alentours du pixel focus (centre de la matrice) ce qui revient a copier l'image sans effectuer de changement. On identifie alors un filtre identitaire.

#### filtre F1
\begin{equation*}
\underline{\underline{F_1}} = \frac{1}{25}\begin{pmatrix}
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1
\end{pmatrix}
\end{equation*}

Résultat de la convolution obtenu :
poulpe's avatar
poulpe committed
![part2_blur25.pgm](img/part2_blur25.png){ width=50% }
On détermine que le filtre F1 fait la moyenne des différentes valeurs au alentour du centre de la matrice, on a donc une filtre moyenneur / blur d'une matrice de 5x5. On aperçoit sur l'image traitée un floutage général.

#### filtre F2
\begin{equation*}
\underline{\underline{F_2}} = \frac{1}{256}\begin{pmatrix}
1 & 4 & 6 & 4 & 1\\
4 & 16 & 24 & 16 & 4\\
6 & 24 & 36 & 24 & 6\\
4 & 16 & 24 & 16 & 4\\
1 & 4 & 6 & 4 & 1
\end{pmatrix}
\end{equation*}
 
Résultat de la convolution obtenu:

poulpe's avatar
poulpe committed
![part2_blurCent.pgm](img/part2_blurCent.png){ width=50% }
On détermine que le filtre F2 fait une moyenne des différentes valeurs au alentour du centre de la matrice, en donnant plus de poids aux valeurs les plus proches du centre. On aperçoit sur l'image traitée un floutage général qui impact moins les details de l'image.

#### filtre F3
\begin{equation*}
\underline{\underline{F_3}} = \begin{pmatrix}
0 & -1 & 0\\
-1 & 5 & -1\\
0 & -1 & 0
\end{pmatrix}
\end{equation*}

Résultat de la convolution obtenu:

poulpe's avatar
poulpe committed
![part2_contourF3.pgm](img/part2_contourF3.png){ width=50% }
On détermine en observant la matrice, que le filtre F3 soustrait les valeurs aux alentours de la valeur centrale de la matrice, cela a pour effet d'accentuer les changements de valeurs, par exemple un ensemble uniforme ne subit pas de différence, mais un pixel plus sombre entourer des nuances se retrouve augmenter de valeur et inversement pour un pixels plus claire au alentour de plus sombre. On constate donc que notre image traitée perçoit une augmentation de contraste.
Og's avatar
Og committed

#### filtre F4
\begin{equation*}
\underline{\underline{F_4}} = \begin{pmatrix}
0 & -1 & 0\\
-1 & 4 & -1\\
0 & -1 & 0
\end{pmatrix}
\end{equation*}

Résultat de la convolution obtenu:

Og's avatar
Og committed
![part2_contourF4.pgm](img/part2_contourF4.png){ width=50% }

On détermine en observant la matrice, que le filtre F4 soustrait les valeurs aux alentours de la valeur centrale de la matrice. Ce qui va d'accentuer les changements de valeurs, comme le filtre précédent, mais va également noircir les zones uniformes. La soustraction d'une zone uniforme revient à soustraire les valeurs alentour au centre sur une égalité, donc obtient une valeur de 0 (couleur noire). Le filtre revient alors à mettre en contraste les zones de changement de valeur et noircir les zones uniformes. On obtient donc une détection de contours comme nous pouvons l'observer sur l'image traitée.
Og's avatar
Og committed

### Partie 3
Le but de cette dernier partie est de mettre en pratique notre implémentation de filtre afin d'afficher une image fortement bruitée, le filtre moyenner nous permet d'effectuer ce traitement.
Og's avatar
Og committed

\begin{equation*}
\underline{\underline{F}} = \frac{1}{9}\begin{pmatrix}
1 & 1 & 1\\
1 & 1 & 1\\
1 & 1 & 1
\end{pmatrix}
\end{equation*}

poulpe's avatar
poulpe committed
L'image bruitée est la suivantes: 
Og's avatar
Og committed

![Image original avec bruit](img/part3_5.png){ width=50% }
Og's avatar
Og committed

Une fois la convolution avec un filtre moyenneur appliquer, on obtient une magnifique image grise.

![image après convolution](img/part3_5_convolv.png){ width=50% }
Og's avatar
Og committed

En zoomant dans l'image on aspersoir des formes très légèrement marquée. Il faut donc normaliser les nuances de couleurs afin d'y faire ressortir les différences de contrats.

Formules de normalisation:  

\begin{equation*}
new valeur = (2^n-1)*\frac{x-min}{max-min}
\end{equation*}

Résultat finalement obtenu:

![Image convoluée après normalisation](img/part3_5_final.png){ width=50% }
poulpe's avatar
poulpe committed

# Conclusion

Ce TP nous a permis de travailler avec des intégrales et des matrices, nous avons donc implémenté des équations mathématiques dont une équation modifiable facilement. Nous avons également fait le traitement analytique des intégrales et ensuite numérique pour constater leurs différences, de plus, nous avons effectué la convolution des matrices pour pouvoir appliquer des kernels sur celle-ci, cela nous à permis de filtrer les images reçus et donc de les "décodée".