мой обратный бпф отличается от исходного бпф в matlab

#matlab #fft #complex-numbers

Вопрос:

Я использую Matlab для анализа отклика грунта. Мне нужно сделать БПФ ускорения движения земли, умножить некоторую константу, а затем получить ее обратную БПФ. Однако он не возвращает исходный сигнал во время проверки.

Может ли кто-нибудь, пожалуйста, помочь мне? Спасибо.

 Y = fft(acc,N); h=2*abs(Y(1:N/2 1)); F=1/dt; f=F/2*linspace(0,1,N/2 1); f=f';  acc_ifft=ifft(h,N); time_ifft=[0:N-1]*dt; plot(time_ifft,acc_ifft);  

Если я попытаюсь построить график с помощью Y, он даст правильный сигнал. Но я должен умножить значения в h на константу, поэтому мне нужно работать с h.

Комментарии:

1. Вы удаляете половину данных, затем берете величину, прежде чем применять обратное преобразование. Конечно, это не сработает! ifft(Y) это единственный способ acc вернуться.

2. Есть ли способ для меня умножить значение (которое является функцией частоты) на БПФ, прежде чем инвестировать его снова?

3. Да, вы можете умножать комплексные числа, не нужно брать абсолютное значение. ifft(H.*fft(f)) .