Ich versuche, das Zeitsignal aus einer analytischen Formel in der Frequenzdomäne zu erhalten, und zwar ist die Formel:Gewinnung IFFT von Frequenzbereich analytische Formel
Das Problem tritt auf, wenn ein IFFT Umsetzung da die folgende Impulsantwort erhalten wird:
Es ist klar, dass der erste Teil jedoch in Ordnung zu sein scheint, gibt es ein hohes Maß an Lärm und einem steigende "Steigung", wenn das Signal zu Ende geht.
Nun, wenn ich im Frequenzbereich anfange, definiere ich einen Frequenzvektor mit der Frequenzauflösung, die auf der Größe der FFT basiert.
%% Sampling Frequency + Size FFt
Fs = 512; %Sampling Frequency
Nfft = 2^12; %FFT Size
df = Fs/Nfft; %Frequency Resolution
f = 0:df:180; %Frequency Vector
Dann wird die Formel angewendet und ein Frequenzvektor erhalten. Später eine IFFT der Größe NFFT angewandt wird:
%%Obtain impulse response
x = ifft(P_w,Nfft); %P_w is obtained by formula (1)
t = (0:(length(x)-1))/Fs; %Time Vector
Sobald ich den Realteil von x
plotten, das Ergebnis in Bild 2 erhaltene gesehen. Gibt es einen Ratschlag, wie man das überwinden kann? Ich meine, ich sollte nicht den letzten 'lauten' Teil des Signals bekommen oder unterbreche ich einen Fehler im Code?
EDIT:
Ich habe einen Fehler in dem Frequenzvektor gemacht habe, es tatsächlich beginnt, von 0:
f = 0:df:180; %Frequency Vector
Sollte nicht 'P_w' ein Vektor von komplexen Amplituden anstelle von Frequenzen? Wie erstellt man 'Pn' bevor man die Formel anwendet? Für jetzt ist es ziemlich schwierig zu antworten, da dies kein [mcve] – BillBokeey
ist. Tatsächlich ist es. Ich meinte, dass "P_w" das Frequenzdomänensignal ist, das unter Verwendung der ersten Formel erhalten wird. Das ist das Signal, das in den Zeitbereich transformiert werden muss, um eine Impulsantwort zu erhalten. –
Richtig, ich würde vorschlagen, dass Sie "Frequenzvektor" in "Frequenzdomänenvektor" in Ihrer Frage ändern, um Missverständnisse zu vermeiden. Wie baut man 'Pn' vor der Anwendung der Formel? Dies ist entscheidend. – BillBokeey