Bonjour,

Je viens vers vous car après quelques jours de recherche je ne parviens pas à trouver la solution à mon problème.

Je réalise une ifft mais l'échantillonnage reste un peu faible à mon gout et me génère des erreurs sur l'amplitude de mon signal temporel de sortie.

Je voudrais donc augmenter le nombre de points calculer par la ifft mais c'est la que je bloque.

Si vous pouviez me donner quelques pistes... mes cours de traitement du signal sont un peu trop loin...

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
 
%% Choix des frequences de travail
Fmin = 3e8; % Frequence mini
Fmax = 3e9; % Frequence max
NbPoints = 2^10; % Nombre de points
NbTx = 3; % Nombre d elements
f = linspace(Fmin,Fmax,NbPoints); % Vecteur frequence
df = f(2)-f(1); % Pas frequentiel
t = linspace(-1/(2*df),1/(2*df),NbPoints); % Vecteur temps correspondant
k = 2*pi*f/c; % Nombre d'onde
ResAngle = 21; % ResAngle en degres entre chaque tir
FrequenceRepetition = 10e6; % Frequence de repetition
NbPulses = 2; % Nombre d impulsions sur la zone de balayage
tAngle = (0.2/3e8)*sind(ResAngle); % Temps correspondant a ResAngle
Periode = (0:NbTx-1)*tAngle + 1/FrequenceRepetition; % Periode du signal sur chaque T
 
%% Mise en forme
SIGNAL = zeros(NbTx,NbPoints);
SIG = zeros(NbTx,NbPoints);
for i=1:NbTx
  for p=1:NbPulses
    SIG(i,:) = SIG(i,:) + exp(-1i*2*pi*f*(p-1)*Periode(i));
  end
  SIGNAL(i,:) = ifftshift(ifft(SIG(i,:),[]),2);
end
 
%% Visualisation
figure(1);
plot(t,abs(SIGNAL'));
Comme vous pouvez le voir, il s'agit d'un programme permettant de générer des pulses décalé dans le temps avec un certain retard en fonction de l'élément et de l'angle désiré.

Merci d'avance