Skip to content
Snippets Groups Projects
rapport.md 15.9 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
poulpe's avatar
poulpe committed
Pour ce TP, nous avons reçu comme objectif de calculer une convolution de signaux numériquement et à la main d'en calculer l'erreur entre les deux, Ainsi que réussir à enlever le bruit d'une 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% }
Og's avatar
Og committed
On déterminer que le filtre F0 ne prend pas en compte les pixels aux alentours du pixels focus (centre de la matrix) 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% }
Og's avatar
Og committed
On détermine que le filtre F1 fait la moyenne des différents valeurs au alentour du centre de la matrix,on a donc une filtre moyenneur / blur d'une matrix de 5x5. On aperçois sur l'image traitée un floutage générale.

#### 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% }
Og's avatar
Og committed
On détermine que le filtre F2 moyennes les différents valeurs au alentour du centre de la matrix, en donnant plus de pois aux valeurs les plus proches du centre. On aperçois sur l'image traitée un floutage générale en donnant plus d'importance au détails.

#### 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% }
Og's avatar
Og committed
On détermine en observant la matrice, que le filtre F3 soustrait les valeurs au alentours de la valeurs  central de la matrix, cela a pour effet d'accentuer les changement de valeurs, par exemple un ensemble uniforme ne subit pas de différence mais un pixels plus sombre entourer des nuances ce 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. 

#### 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 au alentours de la valeurs  central de la matrix. Ce qui va d'accentuer les changement de valeurs, comme le filtre précédant mais vas également noircir les zones uniforme. La soustraction d'une zone uniforme reviens a soustraire les valeusr alentour au centre sur une égalité, donc obtient une valeur de 0 (couleur noir). Le filtre reviens alors a mettre en contrats les zones de changement de valeur est noircir les zones uniforme. On obtient donc une détection de contours comme nous pouvons l'observer sur l'image traitées.

### Partie 3
Le but de cette dernier partie est de mettre en pratique nôtres implémentation de filtre affin d'afficher une image fortement bruitée, le filtre moyenner nous permet d'effectuer ce traitement.

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

L'image bruitée est la suivantes:  

![part3_5.pgm](img/part3_5.png){ width=50% }

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

![part3_5_convolv.pgm](img/part3_5_convolv.png){ width=50% }

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:

![part3_5_final.png](img/part3_5_final.png){ width=50% }