After complex FIR filter, why the spectrum real part and imaginary part is different from original spectrum?

5 views (last 30 days)
N=18000;
% y0 is a symmetric signal and has N points ;
% FIRfilter is a function by fdatool
% complex bandpass FIR filter--254 orders
Hd=copy(FIRfilter);
Hd.Numerator=Hd.Numerator.*exp(1j*893*2*pi*laser.*(0:254));
% phase delay compensation
m1=zeros(1,127);
% filter apply
y1=filter(Hd,[y0 m1]);
y2=y1(128:18127);
% fftshift
y00=fftshift(y0);
y02=fftshift(y2);
S0_M=abs(fft(y00));
S0_R=real(fft(y00));
S0_I=imag(fft(y00));
S2_M=abs(fft(y02));
S2_R=real(fft(y02));
S2_I=imag(fft(y02));
S0_M==S2_M
But S0_R is different with S2_Rand S0_I is different with S2_I,
How can make the real part and the imaginary part same such as S0_R==S2_R, S0_I==S2_I ?

Answers (0)

Categories

Find more on Digital and Analog Filters in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!