La fonction « Impulse » est également connue sous le nom de fonction « Diracdelta », ou fonction δ (elle a été introduite par le psychiatre Paul Dirac). Dans le contexte du traitement numérique du signal (DSP), il est souvent appelé « fonction unitimpulse ».
C’est défini comme suit:
et a pour satisfaire l’identité:
La fonction dépend des paramètres d’entrée réels. La sortie de la fonction est parfaite lorsque l’entrée est exactement 0. La sortie est nulle pour toute autre valeur d’entrée.
Le delta dirac n’est pas strictement une fonction, car toute fonction réelle qui est égale à zéro partout mais en un seul point doit avoir une intégrale totale égale à zéro, mais à de nombreuses fins, cette définition peut être manipulée comme une fonction.
Créons quelques tracés discrets en utilisant la fonction Matlab ‘stem’.
Pour nos objectifs, nous allons définir la fonction comme 1 lorsque l’argument de la fonction Dirac est 0, et la sortie sera 0 pour toute autre valeur de l’argument d’entrée.
On peut définir la fonction ayant un scalaire en entrée. Par exemple:
fonction y = dd1(n)
% Notre valeur par défaut est 0
y = 0;
% La fonction est 1 seulement si l’entrée est 0
si n == 0
y = 1;
end
Trouvons la sortie appropriée pour ce vecteur:
n = -2 :2
Nous utilisons notre fonction ci-dessus (‘dd1’) comme ceci:
pour i = 1 :longueur(n)
f(i) = dd1(n(i));
fin
tige(n, f)
axe()
xlabel(‘n’)
ylabel(‘ImpulseFunction’)
Le résultat, comme prévu, est:
Maintenant, supposons un autre vecteur:
n =
Nous pouvons utiliser notre fonction ‘dd1’ pour trouver la sortie de la fonction delta:
pour i = 1: length(n)
f(i) = dd1(n(i));
end
stem(f)
Le résultat est:
Maintenant, disons que nous avons un vecteur (pas un scalaire) en entrée. Nous voulons calculer la fonction unité pour toutes les valeurs incluses dans le vecteur d’entrée.Nous pouvons créer une autre fonction (‘dd’) pour prendre en compte cette approche:
fonction y = dd(x)
%x est un vecteur
% Nous créons un vecteur de sortie de seulement 0 (notre valeur par défaut)
y = zéros (1, longueur(x));
% Nous trouvons des index de valeurs d’entrée égales à 0,
% et les faisons 1
y(find(x==0))= 1;
Nous n’avons pas besoin d’aloop maintenant, donc notre processus a été beaucoup simplifié.
n =
f = dd(n)
Le résultat est: d =0 0 0 1 0 0 1 0
Si nous voulons calculer y = 4δ(n) + 3δ(n-2), dans une plage d’entiers allant de -10 à 10, nous pouvons dosimplifier ceci:
n =-10: 10
y = 4 * dd(n) + 3 * dd(n-2)
tige(n, y)
xlabel(‘n’)
ylabel(‘DeltaFunction’)