Bonjour,
J'aimerai utiliser la fft pour calculer une somme qui depend d'un paramettre. Le code ci-dessous illustre ce que je veux faire.
Le probleme c'est que les deux calculs F1 et F2 doivent être egaux pour tout valeur de alpha0. malheuereusement, dans mon code ceci n'est vrai que dans le cas ou alpha0 = 1/2 !!
Merci d'avance pour toute idée visant à résoudre ce problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 clear all; close all;clc % utilisation de la FFT pour calculer la somme : % F(x) = sum u(n)*exp(-j*2*pi*alpha*n*x) % pour toutes le valeurs de x = -1,...,+1 alpha0 = .5; Nfft = 2048; u = [1.0000;0.4762 + 0.8793i;-0.5465 + 0.8375i;-0.9967 - 0.0818i;-0.4027 - 0.9153i;0.6132 - 0.7900i]; % calcul direct x = -1:2/(Nfft-1):1; F1=[]; for indicex=1:length(x) somme=0; for n=1:length(u) somme=somme+u(n)*exp(-1j*2*pi*alpha0*x(indicex)*n); end F1(indicex)=somme; end % FFT F2 = fft(u,Nfft); F2 = [F2(Nfft/2+1:end);F2(1:Nfft/2)].'; % equivalent a fftshift(F2) % plot figure; semilogy(x,abs(F1));hold on semilogy(x,abs(F2),'r'); xlabel('x');ylabel('F') legend('F1','F2') grid
Partager