Un concept clé souvent présenté à ceux qui poursuivent l’ingénierie électronique est la convolution linéaire. Il s’agit d’un élément crucial du traitement du signal numérique et des signaux et systèmes. En gardant à l’esprit l’intérêt général et les implications académiques, cet article présente le concept et ses applications et l’implémente en utilisant C et MATLAB.
Convolution: En parlant purement mathématiquement, la convolution est le processus par lequel on peut calculer le chevauchement de deux graphes. En fait, la convolution est également interprétée comme la zone partagée par les deux graphiques au fil du temps. Métaphoriquement, c’est un mélange entre les deux fonctions comme l’une passe sur l’autre. Ainsi, étant données deux fonctions F(n) et G(n), la convolution des deux est exprimée et donnée par l’expression mathématique suivante :
Noter: Les lecteurs sont encouragés à essayer la même chose en utilisant des signaux à temps continu. Dans ces cas, l’entrée est considérée comme un signal continu prédéfini tel que y = sin x. En outre, utilisez plot(x_axis, y_axis) et non stem(x_axis, y_axis).
Vous trouverez ci-dessous le programme C pour mettre en œuvre l’approche ci-dessus :
Table des matières
C
#include #include void calc_conv(int*, int*); entier x[10], h[10], oui[10]; entier l1, l2 = 0 ; vide principal() { printf(« Entrez la longueur de « « la première séquence : « ); scanf(« %d », &l1); printf(« Entrez la longueur du » » deuxième séquence : « ); scanf(« %d », &l2); calc_conv(l1, l2) ; } void calc_conv(int* len1, int* len2) { entier l = (*len1) + (*len2) – 1; entier i, j, n, k = 0 ; pour (i = 0; i < *len1; i++) { scanf(« %d », &x[i]); } pour (j = 0; j < *len2; j++) { scanf(« %d », &h[i]); } pour (n = 0; n < l; n++) { oui[n] = 0 ; pour (k = 0; k < len1; k++) { si ((n – k) >= 0 && (n – k) < *len2) { oui[n] = oui[n] + x[k] * h[n – k]; } printf(« %dt », y[n]); } } } |
Saisir:
Saisissez la longueur de la première séquence : 4 Saisissez la longueur de la deuxième séquence : 4 Saisissez x[0]: 1 Entrez x[1]: 2 Entrez x[2]: 3 Entrez x[3]: 4 Entrez h[0]: 1 Entrez h[1]: 2 Entrez h[2]: 2 Entrez h[3]: 1
Sortir:
1 4 9 15 16 11 4
Vous voulez apprendre des meilleures vidéos organisées et des problèmes de pratique, consultez le Cours de base C pour Basic à Advanced C.