9
votes

Comment rééchantillonner / Rebin un spectre?

Dans MATLAB, je calcule fréquemment des spectres de puissance à l'aide de la méthode de Welch ( pwelch code>), que j'affiche ensuite sur un tracé de journal de journal. Les fréquences estimées par pwelch code> sont également espacées, mais des points espacés par logarithmique seraient plus appropriés pour la parcelle de journal de journalisation. En particulier, lors de la sauvegarde de l'intrigue dans un fichier PDF, cela se traduit par une énorme taille de fichier en raison de l'excédent de points à haute fréquence.

Qu'est-ce qu'un système efficace de rééchantillonner (Rebin) le spectre, de linéairement fréquences espacées pour enregistrer des fréquences espacées? strong> ou, quel est un moyen d'inclure des spectres haute résolution dans des fichiers PDF sans générer des tailles de fichiers excessivement volumineuses? P>

La chose évidente à faire est de simplement utiliser Interp1 CODE>: P>

  df = f(2) - f(1);
  intPxx = cumsum(Pxx) * df;                     % integrate
  intPxx2 = interp1(f, intPxx, f2);              % interpolate
  Pxx2 = diff([0 intPxx2]) ./ diff([0 F]);       % difference


0 commentaires

3 Réponses :


2
votes

Je le laisserais faire le travail pour moi et lui donnerais les fréquences du début. Le DOC indique que les Freqs que vous spécifiez seront arrondis à la poubelle DFT la plus proche. Cela ne devrait pas être un problème car vous utilisez les résultats à l'intrigue. Si vous êtes préoccupé par l'exécution, j'essayerais juste et le temps.

Si vous voulez vous renverser vous-même, je pense que vous feriez mieux d'écrire votre propre fonction pour effectuer l'intégration sur chacun de vos nouveaux bacs. Si vous voulez vous faciliter votre vie, vous pouvez faire ce qu'ils font et assurez-vous que vos bacs de journalisation partagent les limites de votre linéaire.


1 commentaires

Le problème avec cette approche est que le nombre de moyennes est défini par la corbeille la plus basse (haute résolution). Nous obtenons moins de points à haute fréquence (à votre guise), mais nous n'obtenons pas l'avantage de plus de moyennes à une fréquence plus élevée.



1
votes

Solution trouvée: https://dsp.stackexchange.com/a/2098/64

brièvement, une solution à ce problème consiste à effectuer la méthode de Welch avec une longueur de transformation dépendante de fréquence. Le lien ci-dessus consiste à une réponse DSP.se contenant une citation papier et une implémentation de l'échantillon. Un inconvénient de cette technique est que vous ne pouvez pas utiliser la FFT, mais que le nombre de points DFT étant calculés est considérablement réduit, ce n'est pas un problème grave.


0 commentaires

0
votes

Si vous souhaitez rééchantillonner une FFT à une fréquence variable (logarithmiquement), le noyau de filtre de lissage ou de passage bas devra être une largeur variable également pour éviter l'aliasing (perte de points d'échantillonnage). Il suffit d'utiliser un noyau d'interpolation de la synchronisation de largeur différent pour chaque point de parcelle (largeur de synchronisation approximativement à la réciproque de la fréquence d'échantillonnage locale).


0 commentaires