当前位置:网站首页>The principle of inverse Fourier transform (IFFT) in signal processing
The principle of inverse Fourier transform (IFFT) in signal processing
2022-07-29 04:11:00 【smartisong】
In signal processing , It is often necessary to convert the signal to the frequency domain for analysis , Sometimes it will return from the frequency domain to the time domain , be used FFT and IFFT function .
FFT Transformation is to transform the signal from time domain to frequency domain , It seems convenient and easy to convert complex signals in time domain to frequency domain . But sometimes it is also necessary to convert the frequency domain signal to the time domain , So you need to use IFFT Transformation .
Actually IFFT One of the calculation principles of is Frequency domain ( Note that the frequency domain is complex ) Data is taken as conjugate complex ( The imaginary part is reversed ), And then we can move on FFT Transformation , In this way, the frequency domain signal is converted to the time domain . because FFT The result of the transformation is a complex number , So from the frequency domain FFT The result of transformation is also plural , At this time, just take The real part of a complex number , It is the original time domain signal ( At the same time, the imaginary part of this complex number is already very small , Just omit ).
Be careful :FFT The next sequence is the order of conjugate symmetry , When clearing the data of a certain range of frequencies , The frequency data that is conjugate and symmetrical with it must also be clear , Don't forget , Don't be too clear , So there will be no plural .
stay MATLAB in , By calculation MATLAB Self contained IFFT Functions and FFT The result is recalculated by inverting the imaginary part FFT. Two methods show : Consistent result .
%% Make the sine wave FFT Calculation ,50% Overlap . verification IFFT The calculation of —— Compare the built-in functions IFFT function , And for FFT The result is conjugate , Proceed again FFT The difference of calculation .
clear;clf;
Fs=24000;t = 0:1/Fs:0.07;y=sin(200*2*pi*t+50); % 24k At sampling rate , Generate 200Hz、0.07 Second sine wave
i=(floor(length(y)/512)-1)*2; % Because the frame calculation , Here we calculate the number of cycles . Because 50% Overlap , So it needs to be multiplied by 2
yfft=zeros(1,length(y)); % Initialization function
yifft=zeros(1,length(y)); % Initialization function
Windows=hamming(512); % Take the window function
for a =0:i
StartPoint=1+256*a;
y0(1:512)=y(StartPoint:(StartPoint+512-1)); % Take what needs to be handled every time 512 Data
y0=y0.*Windows'; % Add windows
TempData=fft(y0); % do FFT Calculation
Yifft=ifft(TempData); % MATLAB Bring their own IFFT function
Yfft=conj(TempData); % Take the conjugate complex number
Yfft=fft(Yfft); % The empty part takes the reverse FFT Calculation
Yfft=(real(Yfft)/512)*0.98; % Take out the real part , And divide it by N. multiply 0.98 In order to make a comparison
yfft(StartPoint:StartPoint+512-1)=yfft(StartPoint:StartPoint+512-1)+Yfft; % restructuring
yifft(StartPoint:StartPoint+512-1)=yifft(StartPoint:StartPoint+512-1)+Yifft; % restructuring
end
%% Make a picture
figure(1);
plot(y,'*'); hold on
plot(yfft,'r'); hold on ;
plot(yifft,'k'); grid on
legend(' Original signal time domain ',' The empty part takes the reverse fft Time domain ','Ifft Time domain ');
xlabel(' Time domain (t)');
ylabel(' amplitude ');

边栏推荐
- 3. Solve pychart's error unresolved reference 'selenium' unresolved reference 'webdriver‘
- Applet: Area scrolling, pull-down refresh, pull-up load more
- Do you have a boss to help me check whether the parameter configuration of the Flink SQL connection Kafka authentication Kerberos is wrong
- nacos注册中心
- 数据挖掘——关联分析例题代码实现(下)
- Array as function parameter -- pointer constant / constant pointer
- 为什么opengauss启动的时候这么多的unknown?
- The solution of porting stm32f103zet6 program to c8t6+c8t6 download program flash timeout
- Basic configuration of BGP - establish peers and route announcements
- Safari's compatibility with Z-index
猜你喜欢

Basic configuration of BGP - establish peers and route announcements
![[principle] several ways of horizontal penetration](/img/fc/2ef7dd6ebc5c0bd8f7d302d8b596d6.png)
[principle] several ways of horizontal penetration

开课!看smardaten如何分解复杂业务场景

LDP --- 标签分发协议

Install the laser of ROS_ scan_ Problems encountered in match library (I)

数据挖掘——关联分析基础介绍(上)

【深度学习CPU(番外篇)——虚拟内存】

The solution of porting stm32f103zet6 program to c8t6+c8t6 download program flash timeout

初识C语言(3)
![[kvm] create virtual machine from kickstart file](/img/0e/292ccb6862e29d948ad6ece86b7945.png)
[kvm] create virtual machine from kickstart file
随机推荐
nacos注册中心
View partition table format
Routing knowledge
Blood cases caused by < meta charset=UTF-8> -- Analysis of common character codes
店铺排名问题,如何解决?
Three tier architecture of enterprise network
全屋WiFi方案:Mesh路由器组网和AC+AP
伏英娜:元宇宙就是新一代互联网!
2021 sist summer camp experience + record post of School of information, Shanghai University of science and technology
Locally call tensorboard and Jupiter notebook on the server (using mobaxterm)
Ma Zhixing entered the mass production of front loading, starting with the self-developed domain controller?
Change the value of the argument by address through malloc and pointer
Press the missing number of interview question 17.04 | | 260. the number that appears only once (including bit operation knowledge points)
【深度学习CPU(番外篇)——虚拟内存】
Interview essential! TCP classic 15 consecutive questions!
C language - character array - string array - '\0' -sizeof-strlen() -printf()
这个报错是什么鬼啊,不影响执行结果,但是在执行sql时一直报错。。。连接maxComputer是使用
"Weilai Cup" 2022 Niuke summer multi school training camp 2H
LDP --- 标签分发协议
How to set the SQL execution timeout for flick SQL