J'ai deux vecteurs: sensora de longueur 927 et sensorb de longueur 1250. Je voudrais les faire de la même longueur. La fonction de rééchantillonnage () dans Matlab est très bruyante sur les bords et j'ai besoin d'au moins une bonne précision de manière raisonnable. p>
Je comprends que le rééchantillonnage peut être fait par interpolation, mais comment puis-je la mettre en œuvre de la manière la plus efficace. J'ai besoin de s'étirer de 927 à 1250 aussi uniformément que possible. p>
Je me demandais si je pouvais faire quelque chose comme ça: p>
Cela a-t-il un sens? Je ne pourrai toujours pas obtenir une interpolation exacte. Y a-t-il une autre fonction que je pourrais utiliser? (Outre interpharge () code> car il nécessite un taux de rééchantillonnage intégré?) P>
3 Réponses :
à partir d'une vue de traitement du signal, vous ne devez pas simplement insérer un échantillon toutes les 3 valeurs. Ce serait étirement non uniforme et ruinerait votre signal. Rééchantillonner la fonction est ce que vous voulez. Essayez de modifier les paramètres pour N et / ou Beta. Vous devrez peut-être éviter votre signal comme décrit ici pour réduire les effets de bord. P>
Récupération d'un signal à bande passante est identique à l'interpolation à l'aide d'un noyau d'interpolation infini de Sinc et est assez proche de l'interpolation de sinc fenêtré avec une fenêtre bien choisie. Voir cette STANFORD CCRMA Site Web pour plus de détails. P>
faire interpolation, utilisez Interp1 . Pour vos besoins, cela pourrait être suffisant, comme indiqué ci-dessus, réélu est la bonne chose à faire. P>
Y a-t-il une raison pour laquelle INTERP1 () ne fonctionnera pas pour vous? Vous pouvez le demander de fournir une interpolation à un ensemble arbitraire de points de sortie. mathworks.com/help/techdoc/ref/interp1.html
Si vous lui donnez un meilleur titre, je vous donnerai un +1, par exemple "Récupération de 2 ensembles de données pour donner la même longueur dans matlab"