comment passer d un programme en matlab au c
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

comment passer d un programme en matlab au c



  1. #1
    invite6263d961

    comment passer d un programme en matlab au c


    ------

    salut a tous voila j ai un programme en matlab et je voudrais le convertir en language c,est ce que quelqu un pourait m aider svp,voila le programme.
    meme juste l algorithme m aiderais merci

    Code:
    % Test FFT with wavelet and added random noise
    % TestFFTwithNoise.m  L Braile 3/18/06
    npts = 200;   % Number of points in wavelet
    dt = 0.01;    % sample interval (fnyq = 50 Hz)
    freq = 5;     % set ~peak frequency of wavelet
    timesh = 0.0; % allow timeshift to center the wavelet
    nsw = 20;     % apply cosine bell taper to ends of signal
    s = ricker(npts,freq,dt,timesh,nsw); % calculate ricker wavelet
    t = [0:dt:(npts*dt - dt)];
    noise = 0.1*randn(1,200); % calculate random noise
    s = s + noise; % add random noise to data
    figure
    plot(t,s,'-r','linewidth',1.5)
    set(gca,'fontsize',16,'linewidth',2)
    xlabel('Time (s)','fontsize',16)
    ylabel('Amplitude','fontsize',16)
    title('Ricker Wavelet','fontsize',16)
    nf = 1024; % set length of fft
    S = fft(s,nf); % calculate FFT of wavelet, the added zeros (nf = 1024)
    % do not change the spectrum (except by providing finer sampling, df)
    % because the zeros don't contribute to the sum of the area in the 
    % Fourier integral
    fnyq = 1/(2*dt); % Nyquist frequency
    df = fnyq/(nf/2); % calculate frequency sample interval
    f = [0:df:fnyq]; % calculate frequency variable (will be (nf/2) + 1 long
    SS = S.*conj(S)/nf;  
    SS = sqrt(SS); % calculate amplitude spectrum
    figure
    plot(f,SS(1:(nf/2)+1),'-r','linewidth',1.5)
    set(gca,'fontsize',16,'linewidth',2)
    xlabel('Frequency (Hz)','fontsize',16)
    ylabel('Amplitude','fontsize',16)
    title('Amplitude Spectrum of Ricker Wavelet','fontsize',16)

    -----
    Dernière modification par yoda1234 ; 30/12/2007 à 09h43.

  2. #2
    invite6263d961

    Re : comment passer d un programme en matlab au c

    je ne suis pa bonne en programation une petite aide serait la bienvenue

  3. #3
    invite7a8ce750

    Re : comment passer d un programme en matlab au c

    Citation Envoyé par ssarah.z Voir le message
    je ne suis pa bonne en programation une petite aide serait la bienvenue

    Tu sais que c'est les vacances de Noël ?
    Tu n'as pas honte de te montrer impatiente !

    Surtout que tu as posté exactement le même message sur developpez.net

  4. #4
    invite64697f2a

    Re : comment passer d un programme en matlab au c

    Bonjour
    Voici la "méthode générale de traduction" fournie par mon prof d'info.
    A Si tu as écris le code.
    Tu as déjà l'algorithme logique, écris lit directement en C

    B Si tu n'as pas écris le code.
    Soit tu retrouve l'algorithme, soit tu traduit b^tement selon la méthode suivante:
    1: recopie sur papier en enlevant les commentaires ("%bidule" il me semble)
    2: liste les variables avec leurs types, si le langage final est typé
    3: recherche les équivalents syntaxiques (figure, ricker ... / for, while, if...)
    3bis: pour tout ce qui manque, écris des fonctions ou des blocs d'instructions
    remarque que pour la partie affichage, GNUPLOT est un bon outil.

    4: réécriture
    comme tu as traduit les morceaux, reconstruit l'ensemble du programme, et remet les commantaires, traduits de préférence.

    Bon courage.
    PS: je ne connais pas du tout Matlab, mais méfie toi du sens du =, mon prof m'a dit qu'il n'avait pas le même sens qu'en C...

  5. A voir en vidéo sur Futura
  6. #5
    invite8e62e42d

    Re : comment passer d un programme en matlab au c

    Je ne connais pas du tout ce language mais en C le = peut poser certains problemes au niveau des conditions...

    Le = correspond a une assignation, c'est a dire qu'on attribue une valeur a une variable, et ce, quelque soit le contexte. La ou ca pose probleme, c'est qu'intuitivement, lorsque l'on veut chercher a comparer des variables, par exemple a savoir si cette derniere est egale a 1, on a souvent tendance a le faire de cette facon :

    Code:
    if (a = 1)
    {
          instructions;
    }
    Or, il s'agit toujours d'une assignation, donc a prendra la valeur 1, comme l'assignation aura ete effectuee avec succes l'instruction sera toujours effectuee.

    La synthaxe correcte est :

    Code:
    if (a == 1)
    {
       instructions;
    }
    PS : Le typage des fonctions et des variables est obligatoire en C, de plus, je ne suis pas sur qu'une fonction FFT existe nativement dans les librairies standarts et je pense qu'il te faudra recuperer des sources quelque part ( a moin de le faire soit meme mais il me semble que c'est plutot complexe )

Discussions similaires

  1. Comment passer de MAC OS X.3.9 à X.4.8
    Par invite8faf8421 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 03/12/2007, 18h34
  2. programme matlab
    Par invite33b8bd7f dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 18/08/2007, 16h13
  3. Matlab et bitmap (passer de 8 à 16 bit)
    Par invitebee5d8d7 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 09/11/2006, 00h24
  4. programme de simplexe par matlab
    Par invite99a072d4 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 30/10/2006, 14h19
  5. comment se passer de Synchronie ??
    Par invitea8a2ab1b dans le forum TPE / TIPE et autres travaux
    Réponses: 2
    Dernier message: 15/02/2006, 20h37
Découvrez nos comparatifs produits sur l'informatique et les technologies.