La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
conv
Convolution et multiplication polynomiale
Description
w = conv(
renvoie la convolution des vecteurs u,v
)u
et v
. Si u
et v
sont des vecteurs des coefficients polynomiaux, le fait de les convoluer revient à multiplier les deux polynômes.
w = conv(
renvoie une sous-section de la convolution, telle que spécifiée par u,v
,shape
)shape
. Par exemple, conv(u,v,'same')
renvoie uniquement la partie centrale de la convolution, de la même taille que u
; et conv(u,v,'valid')
renvoie uniquement la partie de la convolution calculée sans les zéros aux extrémités.
Exemples
Multiplication polynomiale via la convolution
Créez des vecteurs u
et v
contenant les coefficients des polynômes et .
u = [1 0 1]; v = [2 7];
Utilisez la convolution pour multiplier les polynômes.
w = conv(u,v)
w = 1×4
2 7 2 7
w
contient les coefficients polynomiaux pour .
Convolution vectorielle
Créez deux vecteurs et convoluez-les.
u = [1 1 1]; v = [1 1 0 0 0 1 1]; w = conv(u,v)
w = 1×9
1 2 2 1 0 1 2 2 1
La longueur de w
est length(u)+length(v)-1
, qui dans cet exemple correspond à 9
.
Partie centrale de la convolution
Créez deux vecteurs. Trouvez la partie centrale de la convolution de u
et v
ayant la même taille que u
.
u = [-1 2 3 -2 0 1 2];
v = [2 4 -1 1];
w = conv(u,v,'same')
w = 1×7
15 5 -9 7 6 7 -1
w
a une longueur de 7
. La convolution complète serait d’une longueur de length(u)+length(v)-1
, qui dans cet exemple correspondrait à 10.
Arguments d'entrée
u,v
— Vecteurs en entrée
vecteurs
Les vecteurs en entrée sont spécifiés en tant que vecteurs ligne ou colonne. Les vecteurs u
et v
peuvent avoir des longueurs ou des types de données différents.
Lorsque u
ou v
sont de type single
, la sortie est de type single
. À défaut, conv
convertit les entrées vers le type double
et renvoie le type double
.
Types de données : double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Support des nombres complexes : Oui
shape
— Sous-section de la convolution
'full'
(par défaut) | 'same'
| 'valid'
Sous-section de la convolution, spécifiée en tant que 'full'
, 'same'
ou 'valid'
.
'full' | Convolution totale (par défaut). |
'same' | La partie centrale de la convolution est de la même taille que |
'valid' | Uniquement les parties de la convolution qui sont calculées sans les zéros aux extrémités. Avec cette option, |
En savoir plus
La convolution
La convolution des deux vecteurs u
et v
représente la zone de superposition des points lorsque v
glisse sur u
. D’un point de vue algébrique, la convolution est une opération identique à la multiplication des polynômes dont les coefficients sont les éléments de u
et v
.
Prenons m = length(u)
et n = length(v)
. Dans ce cas, w
est leur vecteur de longueur m+n-1
dont le k
ème élément est
La somme est supérieure à toutes les valeurs de j
qui produisent des indices valides pour u(j)
et v(k-j+1)
, plus précisément j
=
max(1,k+1-n):1:min(k,m)
. Lorsque m
=
n
, cela donne
w(1) = u(1)*v(1) w(2) = u(1)*v(2)+u(2)*v(1) w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1) ... w(n) = u(1)*v(n)+u(2)*v(n-1)+ ... +u(n)*v(1) ... w(2*n-1) = u(n)*v(n)
Capacités étendues
Tall arrays
Calculer avec des arrays possédant plus de rangées que la mémoire ne peut en contenir.
Notes d’usage et limitations :
Les entrées
u
etv
doivent être des vecteurs colonne.Si
shape
est'full'
(par défaut), seulu
ouv
peut être un tall array.Si
shape
est'same'
ou'valid'
, alorsv
ne peut pas être un tall array.
Pour plus d’informations, consultez Tall array.
Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.
Pour plus d’informations sur les limites de la génération de code C/C++, consultez Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
Génération de code GPU
Générez du code CUDA® pour les GPU NVIDIA® avec GPU Coder™.
Environnement basé sur les threads
Exécutez du code en arrière-plan avec MATLAB® backgroundPool
ou accélérez le code avec Parallel Computing Toolbox™ ThreadPool
.
Cette fonction supporte entièrement les environnements basés sur des threads. Pour plus d’informations, consultez Run MATLAB Functions in Thread-Based Environment.
GPU Arrays
Accélérez le code en exécutant les calculs sur une unité de traitement graphique (GPU) avec Parallel Computing Toolbox™.
Cette fonction supporte entièrement les GPU arrays. Pour plus d’informations, consultez Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed arrays
Divisez les tableaux volumineux dans la mémoire combinée de votre cluster avec Parallel Computing Toolbox™.
Cette fonction supporte entièrement les distributed arrays. Pour plus d’informations, consultez Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historique des versions
Introduit avant R2006a
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)