当前位置:文档之家› Matlab傅里叶变换傅里叶逆变换-FFT-IFFT

Matlab傅里叶变换傅里叶逆变换-FFT-IFFT

Matlab傅里叶变换傅里叶逆变换
%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化
clear all;clc;
%------Author&Date------
%Author:
%Date: 2013/07/31
%========================================================================== Fs=8e3; %采样率
t=0:1/Fs:1; %采样点
len=length(t); %采样长度
f1=10; %频率1
f2=100; %频率2
f3=1000; %频率3
A1=1; %幅度1
A2=0.8; %幅度2
A3=0.3; %幅度3
MaxS=A1+A2+A3; %信号幅度的最大值
signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t);
X=fft(signal,len); %傅里叶变换
magX=abs(X); %信号的幅度
angX=angle(X); %信号的相位
Y=magX.*exp(1i*angX); %信号的频域表示
y=ifft(Y,len); %信号进行傅里叶逆变换
y=real(y);
er=signal-y; %原始信号和还原信号的误差
subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('原始信号');
subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('还原信号');
subplot(313);plot(t,er);xlabel('时间');ylabel('振幅');title('误差');
% End Script
00.10.20.30.40.50.6
0.70.80.91
-20
2
时间
振幅原始信号
0.10.20.30.40.50.60.70.80.91
-20
2
时间振幅还原信号00.10.20.30.40.5
0.60.70.80.91
-20
2
x 10-15时间振幅误差
误差er 的数量级为1510-,误差绝对值的最大值(15109984.1-⨯)如下图:。

相关主题