⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fftorifft.m

📁 用于信号处理的matlab小程序。傅里叶变换和傅里叶逆变换
💻 M
字号:
% 对信号x(t)=sin(2*pi*40*t)+sin(2*pi*15*t)进行FFT,对其结果进行逆FFT,
% 将结果与原信号进行比较。采样频率为100Hz,采样点数为128.

clf
fs=100;
N=128;      %采样频率和数据个数
n=0:N-1;    %时间序列
t=n/fs;
x=sin(2*pi*40*t)+sin(2*pi*15*t);  %时间域信号
subplot(2,2,1),plot(t,x);
xlabel('Time/s');
ylabel('x');
title('原始信号');
grid on;

y=fft(x,N);      %Fourier变换
mag=abs(y);      %得到振幅谱
f=n*fs/N;        %频率序列
subplot(2,2,2),
plot(f(1:N/2),mag(1:N/2)*N/2);    %绘制Nyquist频率前的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('原始信号的快速Fourier变换');
grid on;

xifft=ifft(y);            %进行Fourier逆变换
realx=real(xifft);        %求取Fourier逆变换的实部
ti=[0:length(xifft)-1]/fs;     %Fourier逆变换的时间序列
subplot(2,2,3),plot(ti,realx);
xlabel('时间/s');
ylabel('x');
title('运用Fourier逆变换得到的信号');
grid on;

yif=fft(xifft,N);    %将Fourier逆变换得到的时间域信号进行Fourier变换
mag=abs(yif);
f=[0:length(y)-1]'*fs/length(y);   %频率序列
subplot(2,2,4),plot(f(1:N/2),mag(1:N/2)*2/N); %绘制Nyquist频率前的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('运用IFFT得到信号的快速Fourier变换');
grid on;























⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -