J'ai un signal mesuré dans le temps qui est connu pour avoir une réponse en fréquence variable (j'ai des données de fréquence et de fréquence pour le dispositif de mesure). Je veux déconvolution en utilisant:MATLAB: Utilisation de ifft() pour déconvoluer le signal et la réponse en fréquence
pt = ifft(fft(vt)./Mf)
où vt est le signal de temps variable et Mf est la réponse en fréquence.
Je prends l'ampleur
abs(fft(vt))
et diviser par le fréq. par rapport à la courbe de réponse Mf (interpoler à la même plage de fréquence).
Cependant si je mets Mf = 1 (pour toutes les valeurs f = 0 à nMHz) je n'obtiens pas le signal d'origine vt quand je fais l'ifft. Si je comprends bien, j'ai besoin d'effectuer la division (fft (vt) ./ Mf) en utilisant la grandeur vt fft (puisque Mf est effectivement la fréquence vs données de magnitude) mais ensuite utiliser des données fft réelles/complexes pour ifft obtenir le signal original, mais je ne sais pas comment le faire fonctionner correctement.
Non, cela fonctionne bien. Ce que je ne comprends pas, c'est s'il est correct d'utiliser: abs (fft (vt)) ./ Mf ou fft (vt) ./ Mf et comment appliquer correctement ifft après pour obtenir l'horodatage et l'amplitude corrects. (Je dois interpoler Mf pour que les points d'interrogation soient les mêmes que fft (vt). – 2one