Fonction carrée dans Matlab

Fonction carrée dans Matlab
Cet article explique comment générer des vagues carrées à l'aide de la fonction Matlab Square ().

Ce puissant langage de programmation pour l'informatique scientifique a une vaste bibliothèque de fonctions pour générer des vagues de différentes formes.

La section suivante explique l'utilisation de la fonction carrée () pour générer des ondes carrées. Dans ce qui suit, nous vous montrerons des exemples pratiques et des images de la façon de créer des vagues carrées avec différents paramètres et de les afficher graphiquement dans l'environnement Matlab.

Syntaxe de la fonction carrée matlab

x = carré (t)
x = carré (t, devoir)

DESCRIPTION DE FONCTION DE MATLAB Square

La fonction Matlab Square () génère des ondes carrées à partir de vecteurs ou de matrices de temps. Cette fonction vous permet également de définir des valeurs de cycle de service, souvent utilisées dans les modèles électroniques pour contrôler les modules de modulation de largeur d'impulsion CC (PWM). La fonction MATLAB Square () génère une onde carrée à «x» de la matrice temporelle «T». La période de l'onde générée à «X» est 2PI sur les éléments de «T». Les valeurs de sortie de «x» sont -1 pour les demi-cycles négatifs et 1 pour les demi-cycles positifs. Le cycle de service est défini via l'entrée «en service» envoyant le pourcentage du cycle positif saisi lorsque la fonction est appelée.

Qu'est-ce que c'est et comment créer un vecteur temporel pour générer des vagues dans Matlab

Avant de voir comment une onde carrée est générée avec cette fonction, nous vous montrerons brièvement ce que sont les vecteurs et les matrices temporelles. Ils font partie des arguments d'entrée de toutes les fonctions utilisées pour créer des ondes, quelle que soit leur forme ou la fonction qui les génère. Ce qui suit est un vecteur temporel «t» représentant une seconde de durée:

t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000


Il est essentiel de préciser qu'un vecteur temporel avec dix éléments correspond à un taux d'échantillonnage de 10 Hz et n'est pas recommandé dans la pratique. Par conséquent, nous le faisons seul Par exemple, vous pouvez mieux voir de quoi nous parlons à cause d'un vecteur avec un échantillon de 1kz. Il se composerait de 1000 éléments affichés à l'écran. Un faible taux d'échantillonnage fausserait la forme d'onde, comme indiqué ci-dessous:


Ensuite, regardons l'expression de l'une des façons dont Matlab crée ce type de vecteur temporel à intervalle régulier:

T = Démarrage du temps: Intervalle en secondes: Time Fin;


Ainsi, pour générer ce vecteur, nous aurions besoin d'écrire la ligne de code suivante:

t = 0: 0.1: 1;

Comment créer une onde carrée avec la fonction carrée matlab

Nous créerons une onde carrée en utilisant la fonction carrée () dans cet exemple. Cette vague a une durée d'une seconde, une fréquence de 5 Hz et une amplitude de +1, -1. Pour ce faire, nous créons d'abord un vecteur temporel «t» d'une durée d'une seconde avec une fréquence d'échantillonnage de 1 kHz ou des intervalles de 1 ms.

t = 0: 0.001: 1;


Ensuite, nous spécifions la fréquence de l'onde. L'argument d'entrée de Square () qui définit cette valeur est exprimé en radians, nous devons donc nous convertir de Hz en radians ou l'exprimer dans ce dernier. Pour des raisons pratiques, il est toujours préférable d'exprimer la fréquence en Hz. Par conséquent, dans cet exemple, nous ferons la conversion comme suit:

f = 5;
rad = f.* 2.*pi;


Avec le vecteur temporel «t» créé et la fréquence «rad» convertie en radians, nous appelons maintenant la fonction carrée () comme suit:

x = carré (rad.* t)


Pour représenter la vague dans l'environnement MATLAB, nous utiliserons les fonctions suivantes:

tracé (t, x);
axe ([0 1 -1.2 1.2])
grid ("on");


Dans ce cas, comme l'entrée du cycle de service n'est pas utilisée, cette valeur est par défaut à 50%,. Ainsi, carré () produit une onde symétrique. Copiez et collez le fragment suivant dans la console de commande pour visualiser l'onde générée.

% Ici, la vague est générée
t = 0: 0.001: 1;
rad = 5 .* 2 .* pi;
x = carré (rad .* t);
% Ici, la vague est graphique
tracé (t, x);
axe ([0 1 -1.2 1.2]);
grid ("on");


L'image suivante montre la forme d'onde générée par la fonction carrée () tracée dans l'environnement MATLAB:

Comment contrôler la fréquence, l'amplitude, le cycle de service et le taux d'échantillonnage lors de la génération d'une onde avec la fonction Matlab Square ().

Cet exemple montre comment contrôler la fréquence, l'amplitude, le cycle de service et les paramètres de taux d'échantillonnage. À cette fin, nous créerons une application de console simple qui sera utilisée pour saisir ces valeurs, puis représenter automatiquement l'onde générée à partir des paramètres d'entrée. Nous utiliserons les fonctions prompt () et input () pour saisir ces paramètres via la console. Nous stockons ces paramètres dans les variables suivantes:

s_rate: Fréquence d'échantillonnage dans HZ

Freq: Fréquence de l'onde dans Hz

Ampli: Amplitude de la vague

d_cycle: cycle de service

Ces variables sont traitées respectivement pour définir les paramètres «t_sample» dans le vecteur de temps, les arguments d'entrée «rad» et «cc» à la fonction carrée () et le facteur de multiplication «ampli» pour ajuster l'amplitude de la vague.

Ci-dessous, nous voyons le script complet de cette application. Pour le rendre lisible, nous avons divisé le code en six blocs, expliquant ce que chacun d'eux fait dans les commentaires au début.

tandis que 1
% Ici, nous entrons dans le taux d'échantillonnage "S_RATE" dans Hz et divisez 1
% par cette valeur pour obtenir l'intervalle de temps entre les échantillons
% exprimé en secondes "t_sample" et créez le vecteur de temps.
invite = 'Entrez un taux d'échantillonnage';
s_rate = input (invite);
t_sample = 1 ./ s_rate;
t = 0: t_sample: 1;
% Ici, nous entrons dans la fréquence "f" dans Hz de la vague et nous nous convertissez.
le% à radians "rad".
prompt = 'Entrez une fréquence';
f = entrée (invite);
rad = f .* 2 .* pi;
% Ici, nous entrons dans le cycle de service "DC" exprimé en pourcentage.
invite = 'Entrez un cycle de service';
dc = input (invite);
% Ici, nous définissons l'amplitude de l'onde.
invite = 'Entrez une amplitude';
amp = entrée (invite);
% Ici, nous appelons la fonction carré () avec les paramètres "rad"
% Définit la fréquence et "DC" qui définit le cycle de service. Plus tard
% nous multiplions le résultat par la valeur stockée en "ampli"
% Réglez l'amplitude de l'onde sur "x".
x = ampli * carré (rad * t, dc);
% Ici, nous graphiquement la vague générée.
tracé (t, x);
axe ([0 1 -5 5])
grid ("on");
fin


Créez un script, collez ce code et appuyez sur «Exécuter». Pour fermer l'application, appuyez sur Ctrl + C. Dans les images suivantes, vous pouvez voir les ondes résultantes avec différents paramètres entrés dans l'application via la console de commande:


Cette image correspond à une onde de 8 Hz avec un taux d'échantillonnage de 1kz, un cycle de service de 50% et une amplitude de pointe à crête de 2.


Cette image correspond à une onde de 10 Hz avec un taux d'échantillonnage de 10 kz, un cycle de service de 85% et une amplitude de pointe à crête de 6


Cette image correspond à une onde de 3 Hz avec un taux d'échantillonnage de 1kz, un cycle de service de 15% et une amplitude de pointe à crête de 8.

Conclusion

Cet article a expliqué comment générer des vagues carrées à l'aide de la fonction MATLAB Square ().
Il comprend également une brève description des vecteurs et matrices temporels qui forment les arguments d'entrée de ce type de fonction, vous pouvez donc comprendre complète comment la plupart des générateurs de forme d'onde dans la boîte à outils d'analyse du signal dans Matlab Work. Cet article comprend également des exemples pratiques, des graphiques et des scripts qui montrent comment fonctionne la fonction carrée () dans Matlab. Nous espérons que vous avez trouvé cet article MATLAB utile. Voir d'autres articles sur les indices Linux pour plus de conseils et d'informations.