guygrun Posté(e) le 22 février 2005 Partager Posté(e) le 22 février 2005 Matlab : Prise en main : 1) Environnement de travail : Commande help » help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. matlab\datafun - Data analysis and Fourier transforms. matlab\polyfun - Interpolation and polynomials. matlab\funfun - Function functions and ODE solvers. matlab\sparfun - Sparse matrices. matlab\graph2d - Two dimensional graphs. matlab\graph3d - Three dimensional graphs. matlab\specgraph - Specialized graphs. matlab\graphics - Handle Graphics. matlab\uitools - Graphical user interface tools. matlab\strfun - Character strings. matlab\iofun - File input/output. matlab\timefun - Time and dates. matlab\datatypes - Data types and structures. matlab\dde - Dynamic data exchange (DDE). matlab\demos - Examples and demonstrations. toolbox\signal - Signal Processing Toolbox. toolbox\control - Control System Toolbox. control\obsolete - (No table of contents file) stateflow\stateflow - Stateflow stateflow\sfdemos - (No table of contents file) simulink\simulink - Simulink simulink\blocks - Simulink block library. simulink\simdemos - Simulink demonstrations and samples. simulink\dee - Differential Equation Editor toolbox\tour - An interface to Matlab demos, installed Toolboxes demos, and information toolbox\local - Preferences. La fonction help permet de voir l’aide de matlab. Commande cd » cd C:\MATLAB\bin Permet de voir le fichier ou sont enregistrés les fichiers *.m (change current working directory). Commande ls » ls . license.dat msvcirt.dll .. lmgr325a.dll msvcopts.bat bccengmatopts.bat matfopts.bat msvcrt.dll bccopts.bat matlab.exe mwoles05.dll cmex.bat medit.exe perl.exe fmat.dll mex.bat perl100.dll fmex.bat mfc42.dll showdlls.exe fmex.dll mipcole.dll w32ssi.dll fmx.dll ml_16.dll wat11copts.bat gx1242r.dll mlapp.tlb wat11engmatopts.bat libeng.dll mlptool.exe watcopts.bat libmat.dll msctof.dll watengmatopts.bat libmccmx.dll msfopts.bat wsptool.exe libmi.dll msvc50engmatopts.bat libmx.dll msvc50opts.bat libut.dll msvcengmatopts.bat Permet de voir tous les fichiers présent dans le répertoire courrant. Commande dir » dir . license.dat msvcirt.dll .. lmgr325a.dll msvcopts.bat bccengmatopts.bat matfopts.bat msvcrt.dll bccopts.bat matlab.exe mwoles05.dll cmex.bat medit.exe perl.exe fmat.dll mex.bat perl100.dll fmex.bat mfc42.dll showdlls.exe fmex.dll mipcole.dll w32ssi.dll fmx.dll ml_16.dll wat11copts.bat gx1242r.dll mlapp.tlb wat11engmatopts.bat libeng.dll mlptool.exe watcopts.bat libmat.dll msctof.dll watengmatopts.bat libmccmx.dll msfopts.bat wsptool.exe libmi.dll msvc50engmatopts.bat libmx.dll msvc50opts.bat libut.dll msvcengmatopts.bat Permet de lister tous les fichiers du répertoire courrant. (idem que la fonction ls)(directory listing) Commande pwd (present word directory) » pwd ans = C:\MATLAB\bin Comme la commande CD il permet de voir ou se trouve le répertoire courrant. Commande who » who Your variables are: Ans Permet de faire le listing de toutes les variables utilisées. Commande whos » whos Name Size Bytes Class ans 1x13 26 char array x 1x1 8 double array Grand total is 14 elements using 34 bytes Permet aussi de lister les variables utilisées mais avec plus de détails, la longueur de la variable et sont format sont mentionnées. Commande clear » clear Permet d’effacer toutes les variables. 2) Manipulation de vecteur : Commande [ ] » [1 2 3 4] ans = 1 2 3 4 Permet la création d’un vecteur. Commande length » length(ans) ans = 4 Permet de savoir le nombre de colonne d’un vecteur ou d’une matrice. Commande size » size(ans) ans = 1 4 Permet de savoir le nombre de ligne et de colonne du vecteur ou de la matrice. 3) Programmation : Commande if If test Action; End Commande switch switch variavle case1, disp(‘ ‘) case2, disp(‘ ‘) case3, disp(‘ ‘) otherwise, disp(‘ ‘) end Commande for For I=[1 : N] ce qui remplace for(i=1, i<N, i++) If rand (I) <= (0,1) M(I)=0; Else M(I)=1; End End Commande fonction Fonction [M] = message (N) M le résultat N le paramètre d’entrée Le nom d’appelle de la fonction doit être le même que le nom du fichier 4) Graphiques : plot (axe des x, axe des y) ex : plot (t,y) -> y(t) subplot ( 2, 2, 1) coupe la fenêtre affichage graphique hold permet d’afficher plusieurs graphique sur la même figure title (‘ Titre ‘) xlabel (‘ nom des axes des x ‘) ylabel (‘ nom des axes des y ‘) axis ([-pi,pi , -1,1]) permet de dimensionner les axes du graphique clf clear figure zoom on permet ensuite de zoomer sur le graphique 5) Création des variables : % Déclaration des variables N=8192; Fe=8000; Te=1/Fe; t=[(1:N)*Te]; f=[0:Fe/N:Fe]; 6) Génération d’un sinus : % Déclaration de la fonction sinus y=10*sin(200*pi*t); subplot(3,1,1); plot(t,y); axis([0 0.1 -11 11]); title('Allure temporelle du sinus'); xlabel('Temps (sec)'); grid; 7) voir question 10 pour la courbe % Génération du bruit sigma = 1; % variance du bruit moy = 0; % moyenne bruit = moy + sigma*randn(1,N); subplot(3,1,2); plot(t,bruit); axis([0 0.1 -5 5]); title('Allure temporelle du bruit'); xlabel('Temps (sec)'); grid; Génération d’un bruit blanc gaussien : voir question 7 9) Visualisation de la courbe : bruit voir question 10 10) Graphique % Bruit + Sinus signal = y + bruit; subplot(3,1,3); plot(t,signal); axis([0 0.1 -20 20]); title('Allure temporelle du bruit avec le sinus'); xlabel('Temps (sec)'); grid; Mis en forme par theo Lien vers le commentaire Partager sur d’autres sites More sharing options...
guygrun Posté(e) le 22 février 2005 Auteur Partager Posté(e) le 22 février 2005 11) Augmentation de la puissance du bruit (spectre) % Déclaration des variables N=8192; Fe=8000; Te=1/Fe; t=[(1:N)*Te]; f=[(1:N)]*Fe/N; % Déclaration de la fonction sinus y=10*sin(200*pi*t); spectre=20*LOG10(abs(fft(y))); subplot(4,1,1); plot(f,spectre); axis([0 8000 0 100]); title('Allure fréquencielle du sinus'); xlabel('Fréquence (Hz)'); grid; % Génération du bruit sigma = 1; % variance du bruit moy = 0; % moyenne bruit = moy + sigma*randn(1,N); spectre_bruit=20*LOG10(abs(fft(bruit))); subplot(4,1,2); plot(f,spectre_bruit); axis([0 8000 0 100]); title('Allure fréquencielle du bruit'); xlabel('Fréquence (Hz)'); grid; % Bruit + Sinus signal = y + bruit; spectre2=20*LOG10(abs(fft(signal))); subplot(4,1,3); plot(f,spectre2); axis([0 8000 0 100]); title('Allure fréquencielle du bruit avec le sinus'); xlabel('Fréquence (Hz)'); grid; % Bruit + Sinus (avec fort bruit) signal2 = y + 10*bruit; spectre3=20*LOG10(abs(fft(signal2))); subplot(4,1,4); plot(f,spectre3); axis([0 8000 0 100]); title('Allure fréquencielle du sinus + bruit'); xlabel('Fréquence (Hz)'); grid; On remarque que les raies du spectre se rapproche de plus en plus est ce dépasse même après f0=4000Hz. 14) Fonction message.m function[M]=message(N) M=[1:1:N]; for I=[1:N] if rand(1)<=0.5 M(I)=0; else M(I)=1; end end 15) Fonction nrz.m function [Mt]=nrz(M,N) k=10; c=0; for i=1:N, if M(i)==1 for j=c+1:c+k, Mt(j)=1; end else M(i)==0 for j=c+1:c+k, Mt(j)=0; end end c=c+k; end trancription en logique négative +12V et –12V function[Mrs]= nrz2(Mt,A,k,N) for i=1:k*N, if Mt(i)== 0 Mrs(i)=-A; else Mrs(i)=A; end end On remarque que le codage NRZ c’est juste l’inverse de l’état logique que l’on a au départ. Sur le spectre le spectre on remarque qu’il y a des pics vers le bas. Pressente une composante continu et s’annule avec les multiples de D avec un encombrement spectral de 2D. Programme d’appelle des fonction et d’affichage des courbe pour le NRZ % Déclaration des variables N=500; % Nombre de bits D=1000; % Débit en bit/s k=10; fe=D*k; % Fréquence d'échantillonnage A=-12; % Valeur d'un bit=1 te=1/fe; % Temps d'une periode for i=1:N*k, Tet(i)=te*i; end F=[0:(N*k)-1]*fe/(N*k); % Appel des fonctions [M]=message(N); % Appelle de la fonction message [Mt]=nrz(M,N); % Appelle de la fonction nrz codage en 0 et 1 [Mrs] = nrz2(Mt,A,k,N); % Appelle de la fonction nrz2 codage en logique négative +ou-12V % Affichage des courbes subplot (3,1,1) plot(Tet,Mt) axis ([0 0.2 -0.1 1.1]) title ('Message à transmettre : M') Xlabel ('temps en seconde') Ylabel ('Etat logique') subplot (3,1,2) plot (Tet,Mrs) axis ([0 0.2 A-1 -A+1]) title ('Message transmis : Mt') Xlabel ('temps en seconde') Ylabel ('Amplitude (V)') Mrsfft=20*log10(abs(fft(Mrs,k*N))); subplot(3,1,3) plot(F,Mrsfft) title('Spectre du sigal NRZ') xlabel('fréquence en Hz') ylabel('gain en dB') grid axis ([0 10000 0 80]) %Fonction message 2 function[M2]= mess2(M,N) k=10; c=0; for i=1:N, if M(i)== 0 for j=c+1:c+k, M2(j)=0; end else for j=c+1:c+k, M2(j)=1; end end c=c+k; end 17) Codage manchester function[Mt]= manchester(M,N) c=0; k=10; for i=1:N, if M(i)== 0 for j=c+1:c+(k/2), Mt(j)=0; end for j=c+1+(k/2):c+k, Mt(j)=1; end else for j=c+1:c+(k/2), Mt(j)=1; end for j=c+1+(k/2):c+k, Mt(j)=0; end end c=c+k; end Programme d’appelle des fonction et d’affichage des courbe pour le manchester % Déclaration des variable N=500; k=10; D=1000; Fe=k*D; te=1/Fe; A=-10; for i=1:N*k, Tet(i)=te*i; end F=[0:(N*k)-1]*Fe/(N*k); % Appel des fonctions [M]=message(N); % Appelle de la fonction message [M2]=mess2(M,N); % Appelle de la fonction message 2 [Mt]=manchester(M,N); % Appelle de la fonction Manchester [Mrs]=nrz2(Mt,A,k,N); % Appelle de la fonction pour la conversion en % logique négative % Affichage des courbes subplot (3,1,1) plot(Tet,M2) axis ([0 0.05 -0.1 1.1]) title ('Message à transmettre : M') Xlabel ('temps en seconde') Ylabel ('Etat logique') subplot (3,1,2) plot (Tet,Mrs) axis ([0 0.05 A-1 -A+1]) title ('Message transmis : Manchester') Xlabel ('temps en seconde') Ylabel ('Amplitude (V)') Mrsfft=20*log10(abs(fft(Mrs,k*N))); subplot(3,1,3) plot(F,Mrsfft) title('Spectre du sigal manchester') xlabel('frequence(Hz)') ylabel('gain en dB') grid axis ([0 10000 0 80]) Le codage Manchester effectue beaucoup plus de variation pour retranscrire le message logique plus de transition pour le même train de bit (une par bit). Le spectre du Manchester est meilleur car ici car il n’y a pas de composante continu mais s’annule avec les multiple de D avec un encombrement spectral deux fois plus grand que le NRZ (ici environ 4D).Favorise par contre le synchronisation de l’horloge. Mis en forme par theo Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 22 février 2005 Partager Posté(e) le 22 février 2005 mais avec de la couleur et des balise ce serait vraiment mieux au passage, la commande cd permet de changer le repertoire courant, pas uniquement de savoir quel est-il.la plupart des commande unix sont valable sous matlab, donc il vaut mieux manger un peu d'unix si tu veux, au passage, j'ai 2-3 bricole de traitement d'image en matlab Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 28 février 2005 Partager Posté(e) le 28 février 2005 toi qui es modo maintenant, tu ne voudrais pas demander au propriétaire de ce magnifique tuto de mettre un peu de couleur et le cas-échéant le faire s'il ne répond (autant te le dire de suite, passe à l'étape 2) j'aime bien ce tuto et c'est dommage qu'il soit laissé à l'abandon tel qu'il est. (et pi ça fait une semaine que j'attends que tu passe modo pour demander ça ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 28 février 2005 Partager Posté(e) le 28 février 2005 Voila, c'est fait. Mais c'est la dernière fois hein ? Modération effectuée :D Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 28 février 2005 Partager Posté(e) le 28 février 2005 merci monsieur le modérateur Lien vers le commentaire Partager sur d’autres sites More sharing options...
njoyard Posté(e) le 28 février 2005 Partager Posté(e) le 28 février 2005 t'as oublié la commande why sinon c'est pas mal... Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 28 février 2005 Partager Posté(e) le 28 février 2005 Oups, j'ai zappé qu'il y avait un deuxième post Modération effectuée Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ludo1651 Posté(e) le 21 juin 2006 Partager Posté(e) le 21 juin 2006 sympa cette aide, je vais pouvoir m'y mettre sérieusement à ce petit Matlab Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 26 juin 2006 Partager Posté(e) le 26 juin 2006 tu as plusieurs équivalent libre de matlab : octave (sous gpl) et scilab (sous une licence presque libre, développé par l'INRIA). si tu te sers de matlab pour faire des choses très générique, je te conseille fortement les équivalent libre, qui font aussi bien mais te laissent libre d'ailleurs, il existe octave-forge qui est une collection de tools pour octave très complete. en gros, à part si c'est pour utiliser la toolbox de comm qui est très particulière, y a aucun intérêt à utiliser matlab EDIT : J'oubliais le plus important : la syntaxe entre ces trois logiciels est quasiment identique Lien vers le commentaire Partager sur d’autres sites More sharing options...
eagle83 Posté(e) le 25 janvier 2009 Partager Posté(e) le 25 janvier 2009 thx a lot mais quel est l'algorithme qui nous permet de enlever l'entourage noir d'une photo Lien vers le commentaire Partager sur d’autres sites More sharing options...
mielle_2610 Posté(e) le 9 mai 2009 Partager Posté(e) le 9 mai 2009 slt j ai un mini projet a realise sous matlab qui sontienne une methode d inportation 1 d exportation de fichier et un une 3 qui permet la classification d image par la methode des K plus proche voisins et je ne sais par ou commancer est ce q qlq un px me guide merci d avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.