Bonjour,
J'ai un vecteur v contenant des données, de période N+1. Le vecteur v contient lui les N éléments d'une période. Je souhaite pouvoir intégrer ce vecteur. Étant donné la périodicité, je me tourne vers la fft (ou plutôt la dft), mais je dois dire que débutant en Matlab, je ne suis pas tout à fait habitué à l'utiliser "numériquement".
Je compte utiliser la formule u~ = (1/ik)v~, où les ~ indiquent qu'on se place dans l'espace des coefficients.
Ma première idée fut d'écrire un code du genre
Évidemment, ça ne marche pas. D'après ce que j'ai compris, il y a quelques subtilités quant à la façon dont matlab "range" les éléments issus de la fft (il me semble que les k, si je ne m'abuse, doivent varier de -N/2 à N/2: où sont "rangés" les élements correspondant à des k négatifs ?), mais mes recherches sur internet n'ont fait qu'embrouiller mon esprit : fftshift, ifftshift, fft, fft2, fliplr, flipup j'en passe et des meilleurs...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 u = fft(v); for k=1:length(u) if(k==1) u(k) = 0 else u(k) = u(k)./(1i*(k-1)); end end u = ifft(u);
Merci de votre aide!
PS: je n'ai pas mis ce message en catégorie signal car il ne s'agit en fait pas du tout de traitement de signal. Cela dit, comme ça y ressemble, mon message y aurait peut être plus sa place...
Partager