Bonjour,

J'aimerais connaitre votre avis sur cet algorithme de sous-échantillonnage.

C'est assez basique je découpe la représentation de fourrier pour supprimer les fréquences au dessus de ma nouvelle limite de Nyqvist.

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
 
% Entrée
% X      - (n x m) matrice de n signaux de longueur m
% ratio  - fréquence en entrée/ fréquence en sortie  
%           si ratio<1, sous-échantillonage
% Sortie:
% Y      - (n x [alpha*m]) matrice de n signaux sous-échantillonnés
N0     = size(X,2);
N      = floor(N0*alpha);
alpha  = N/N0;
Y      = fftshift(fft(X,[],2),2);
sy     = size(Y,2);
middle = floor(sy./2)+1;
if ratio<=1 % downsample
    N2 = floor(N./2);
    Y  = Y(:,middle-N2:middle+N2);
end
Y      = ratio*ifft(ifftshift(Y,2),[],2);
J'ai fait plusieurs essais et l'algo se comporte bien (pas d'aliasing il me semble), mais je n'en suis pas sur.

Plus précisément, j'aimerais le comparer à la fonction resample() de Matlab, que j'imagine meilleure, mais sans savoir pourquoi. Mon problème avec resample() c'est qu'elle utilise un filtre antialiasing pas assez strict, ce qui peut causer un repliement du spectre autour de la fréquence de Nyqvist.