Hibou inuit de © Kenojuak Ashevak

Jean DEMARTINI
Professeur des Universités
Docteur es Sciences
Ingénieur

Cours actifs

Automatique

Servo-mécanismes discrets

Physique/Ingéniérie

Mécanique des fluides

Processeurs digitaux

Machines Programmables

Architectures DSP

Traitement du signal

Processus stochastiques

Filtres numériques

Projets Polytech'Nice-Sophia

Projets 2007

Projets 2006

Conférences

La Vidéo Surveillance du futur

Les métiers de l'Ingénieur

Réflexions sur le génie logiciel

Une brève histoire des techniques

Ma page GNU/Linux

Mon PmWiki

Archives

API & RLI

La commande floue

Les Fondements du Numérique

L'information, la Machine et le Programme

La logique séquentielle

La programmation fonctionnelle

Mathématiques pour la physique

Méthodes formelles pour l'informatique

Réseaux pour les nuls

Forum  ♦ Annonces

jean.demartini@unice.fr

Login  ♦ Logout

pmwiki-2.2.0-beta68

Scilab : Convolution

Scilab : Convolution

Jean DEMARTINI17 May 2007, 11:04

La fonction de convolution Scilab convol(x,y) n'est pas toujours très facile à mettre en oeuvre car elle ne traite qu'une partie du problème. La définition du produit de convolution continu est :

(f \star g)(\tau) = \int_a^b{f(t) \cdot g(\tau-t) \cdot dt}

En fait, la fonction Scilab convol(x,y) implémente la convolution discrète dont la définition est :

(f \star g)(m) = \sum_n{f(n) \cdot g(m-n)}

On remarque tout de suite que cette définition suppose que la période d'échantillonnage est l'unité de temps. Ainsi, lorsqu'on se sert de cette fonction pour estimer une convolution continue, il ne faut pas oublier de multiplier le résultat par dt :

  ...
  dt = ....;
  s  = convol(h,e)*dt; // attention à dt
  ...

Thomas BOUILLOC?07 December 2007, 20:44

Un petit problème en MATLAB (ou en Scilab)

Cher monsieur,

Je vous écris pour vous faire part d'un petit problème de programmation. Etant donné que cette question se situe hors du cadre de votre enseignement, je ne vous sollicite. Le problème est le suivant.

Programmer une fonction scilab qui prend en en entrée trois paramètre: N, M et L. retourner une matrice de M lignes, L colonnes de la forme suivante:

[ 1  N+1  2*N+1  3*N+1.................L*N+1]
[ 2  N+2  2*N+2  3*N+2.................L*N+2]
[ 3  N+3  2*N+3  3*N+3.................L*N+3]
.............................................
.............................................
[ M  N+M  2*N+M  3*N+M.................L*N+M]       

Bien évidemment, la fonction ne nécessite aucune boucle....

Une petite idée?

Thomas BOUILLOC?07 December 2007, 20:46

Excusez moi, on dirait que la matrice est mal passée ainsi que le reste de l'énoncé

Thomas BOUILLOC?07 December 2007, 20:46

Bon ben tant pis

Jean DEMARTINI10 December 2007, 09:39

Pour introduire du code (genre programmation) qui doit être affiché tel quel (dans ce cas attention à la longueur des lignes) il faut l'encadrer par : [@ ... @]

Jean DEMARTINI11 December 2007, 12:49

C'est, en fait, assez facile si on remarque que l'expression que vous recherchez paut s'écrire:

[1 1 1 ...]     [0 1 2 ... L]
[2 2 2 ...]     [0 1 2 ... L]
[3 3 3 ...] + N*[0 1 2 ... L]
[.........]     [0 1 2 ... L]
[M M M ...]     [0 1 2 ... L]

Les deux matrices qui interviennent dans cette expression sont assez faciles à engendrer avec des générateurs Scilab standards.

Jean DEMARTINI12 December 2007, 08:09

Que pensez-vous de l'expression :

cumsum(ones(M,L+1),'r')+N*(cumsum(ones(M,L+1),'c')-1)
Add Comment 
Sign as Author 
Enter code: 458

Recent Changes (All) | Edit SideBar Page last modified on December 12, 2007, at 08:10 AM Edit Page | Page History