CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   how to get a real signal by inverse FFT (http://www.cfd-online.com/Forums/main/10543-how-get-real-signal-inverse-fft.html)

 xijing December 28, 2005 04:06

how to get a real signal by inverse FFT

First I have a real pulse signal of disturbance, I calculated its power spectrum by applying FFT, then I need to remove a specific band of frequency by setting those energy as zero, after that I applied an inverse FFT to get a new signal. But it is a complex series of time. How can I get a real signal which has the energy spectrum absent that specific frequency band? Thank you very much!

 carno January 3, 2006 01:01

Re: how to get a real signal by inverse FFT

What you have done is very correct. What makes you think that it is wrong? If you modify the FFTed signal and do reverse FFT it is bound to happen.

 xijing January 4, 2006 09:13

Re: how to get a real signal by inverse FFT

Y, thank you! I realized that idea is only for ideal filter.so I cannot get a real modified signal by inverse FFT. Now I try to use matlab to remove a narrow band of requency. But I still has problem, someboby please help me: I have a real signal in the time domain.I need to remove a band of frequency from it to get a new real signal. So first I FFT this input real signal and multiply the FFT ouput by a filter function I chose from matlab. I hope I can get a new power spectrum with that designated band of frequency zero. But I tried many ways, I can not get it successfully.Below is my matlab file:

% the original pulse input t=0.3721124:0.3721124:0.3721124*160; w=51*1034.631154/1000000; x=0.0082*cos(-t*w); plot(x(1:160)) title('singnal quarter of cosine') xlabel('timestep')

% I want to remove the low frequency band from 0.05-0.07, my sampling interval is about 0.372114

ff = [0 0.04*0.37 0.05*0.37 0.07*0.37 0.08*0.37 1]; aa = [1 1 0 0 1 1]; nn = 160; bb = firls(nn,ff,aa); [h,w] = freqz(bb); plot(ff,aa,w/pi,abs(h)) legend('Ideal','firls Design')

X=fft(x); Xh = filter(bb,1,X); % fft to get the whole frequency content f=1/0.3721124/160*(0:20); Pxx=Xh.* conj(Xh)/160 We=exp(-10*log(10)); Ub=log10((Pxx)+We); plot(f,Ub(1:21)) title('frequency content') xlabel('frequency')

 amirmohebbi May 31, 2011 05:25

frequency versus position in FFT

hi
dear all
i am new in fluent
i solve a vibration flow field jet
how i can plot frequency of jet in a line versus position?
thanks a lot

 All times are GMT -4. The time now is 17:19.