Maison >tutoriels informatiques >connaissances en informatique >Comment générer des signaux aléatoires à large bande à l'aide de Matlab

Comment générer des signaux aléatoires à large bande à l'aide de Matlab

WBOY
WBOYavant
2024-01-25 09:54:06620parcourir

Comment générer des signaux aléatoires à large bande à laide de Matlab

Comment générer des signaux aléatoires à large bande à l'aide de Matlab

Génération Matlab de signaux pseudo-aléatoires (séquence M)

Il existe deux méthodes principales expliquées ici, l'une consiste à utiliser l'édition de fichiers m, l'autre consiste à utiliser simulink pour générer

1. Modifier avec le fichier m

Np=63;% période de cycle

delta_T = 1 ; % de tics d'horloge

a=1;% amplitude

%Initialiser la séquence M

M(1)=1;

M(2)=0;

M(3)=0;

M(4)=1;

M(5)=1;

M(6)=0;

M_XuLie(Np) = 0;

pour n = 1 : Np

temp = xor(M(6), M(5));

if(temp == 0)

M_XuLie(n) = a;

autre

M_XuLie(n) = -a;

fin

M(6) = M(5);

M(5) = M(4);

M(4) = M(3);

M(3) = M(2);

M(2) = M(1);

M(1) = temp;

fin

figure(4)

escaliers(M_XuLie)

ylim([-2 2])

Description :

1. Principe : Puisqu'il est écrit en code, l'expression du principe peut ne pas être très intuitive. Le principe sera donné sous forme de simulation plus tard

.

2. Période : S'il y a N registres à décalage, alors la période est 2^N-1

3. Suite du cycle :

r = 3 ; % nombre de cycles

u=repmat(M_XuLie,1,r+1);% attribue la séquence M à l'entrée comme signal d'entrée

2. Utilisez simulink pour générer une séquence M

1 Choisissez 6 registres à décalage, qui sont des registres 1/Z. Disposez-les dans l'ordre et définissez les conditions initiales sur tous les 1

.

2 Liez d'abord ces 6 registres à décalage, connectez la première sortie à la deuxième entrée, et ainsi de suite jusqu'à ce que la sixième soit connectée à OUT, puis connectez un oscilloscope ici pour observer la forme d'onde du signal ou connectez-le à l'espace de travail (en cet exemple est connecté à l'espace de travail). Définissez le nom de la variable et le format de sortie comme suit.

Remarque : essayez de choisir la sortie sous forme matricielle, sinon il ne sera pas pratique d'appeler.

3 Sélectionnez un opérateur logique et ajustez-le sur XOR à partir des paramètres, 2 entrées

4 Continuez à vous connecter

5 Définir les paramètres, définissez principalement la taille du pas et la durée totale d'exécution (cliquez sur le menu Paramètres de simulation-configuration)

6 Cliquez pour exécuter. Ce qui est affiché dans la portée est la séquence m ! Ou entrez escaliers(M_seque)

dans la ligne de commande

Remarque : en fait, il existe certains problèmes d'utilisation réelle avec cette méthode, c'est-à-dire que le signal de sortie est de type booléen, c'est-à-dire une séquence logique, et ne peut pas être utilisé comme entrée de la fonction de transfert si c'est le cas. dans un fichier m, il peut être utilisé via des méthodes doubles et autres. Pour la conversion, Simulink devrait disposer d'une méthode pour le convertir, mais la requête correspondante n'a pas encore été effectuée.

Comment générer une séquence pn dans matlab

pour k=1:length(x) gfpretty(x(k,:));end

m séquence pseudo-aléatoire code source Matlab

%5 séquence m de commande

% Entrez ce qui suit dans la fenêtre de commande MATLAB :

% fbconnection=[0 1 0 0 1];

% mseq="m"_sequence(fbconnection);

% mseq

fonction mseq="m"_sequence(fbconnection)

n=longueur(fbconnection);

N=2^n-1;

register=[ones(1,n-1) 1]; %L'état initial du registre à décalage

mseq(1)=register(n); %mLe premier symbole de sortie de la séquence

pour i="2:N"

newregister(1)=mod(sum(fbconnection.*register),2);

pour j="2:n",

newregister(j)=register(j-1);

fin;

register="newregister";

mseq(i)=registre(n);

fin

Enregistrer sous m_sequence.m;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer