ifft one side spectrum to get a real signal
Mostrar comentarios más antiguos
Dear Matlab Profession,
Please find the following code.
I have a code to generate a one side spectrum in frequency domain, I am not sure it is postive frequency or negative frequency.
But I do know the energetic portion of signal in time domain aftfter ifft must starts after 3.33 sec as either Figure (1) or (2).
The issue is based on Fourier transform theory, I should get a "real" signal, but I still get a complex signal in time domain.
May I ask how to fix it or use ifftshift? Thank you!
clear;clc;close all;
%% This is the time and frequency steps used to generate signals
sig_end=7; % in sec, r/cw=5000/1500=3.33 sec arrival already covered
Fs=400; % Sampling Freq, Fs/2 is the folding freq
dt=1/Fs; % Time Step
L=Fs*sig_end; % Signal Length: Fs* a number
t=(0:L-1)*dt; % physical time (s)
df=Fs/L; % frequency step
freq=0:df:Fs/2; %desired frequencies for broadband
%% Load one side spectrum generated from software
load('Sign_spectrum_one_side.mat','Pr')
Pr_other_side=conj(Pr);
Pr_two_sides_1=cat(1,Pr_other_side(2:end-1),flip(Pr));
Pr_two_sides_2=cat(1,Pr_other_side,flip(Pr(2:end-1)));
pr_two_sides_1=ifft(Pr_two_sides_1);
pr_two_sides_2=ifft(Pr_two_sides_2);
figure(1)
plot(t,pr_two_sides_1);
xlabel('Time (sec)');ylabel('Arbitrary magnitude')
figure(2)
plot(t,pr_two_sides_2)
xlabel('Time (sec)');ylabel('Arbitrary magnitude')
Respuesta aceptada
Más respuestas (1)
Muhammad Waqar
el 10 de Dic. de 2021
Editada: Muhammad Waqar
el 10 de Dic. de 2021
0 votos
Hi there,
Here is a link to an easy-to-use function to perform fft or ifft along with an example:
Categorías
Más información sobre Discrete Fourier and Cosine Transforms en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!