|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab 傅里叶变换傅里叶逆变换-FFT-IFFT
' x2 N) c1 D# Q1 D( N) H/ X) T
* h! @) \: r2 A: ?; `%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化
" e M/ I* P8 m$ s, ?clear all; clc;5 y2 v. Z8 R) F
%------Author&Date------
$ ?6 A+ v& r; B%Author: / n; [6 J' |, T- ~* F- D
%Date: 2013/07/31
* g- r$ ~0 r( A2 b6 s' {%==========================================================================
' ~( j2 A1 ]2 W. i0 P4 ]Fs=8e3; %采样率6 E& F) U0 h$ f% H/ j
t=0:1/Fs:1; %采样点
/ v5 ]' K+ x# A3 o* Vlen=length(t); %采样长度* ? j% s6 U( r2 D! X4 ]' G4 [
f1=10; %频率 1! d. \: Z: z3 }2 r
f2=100; %频率 2
9 z2 ?& F6 H& e+ b M- p2 cf3=1000; %频率 3
4 n3 B& D+ X- H9 Q* ~! fA1=1; %幅度 1/ b5 ?% m% [' c+ {( m! N
A2=0.8; %幅度 2
# L# P5 I. s YA3=0.3; %幅度 3# u L- ^; n' W7 v
MaxS=A1+A2+A3; %信号幅度的最大值
2 N% f9 ~5 w4 ^$ x# c) ?signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t);
( y1 l- U$ t' C; }; Y/ }X=fft(signal,len); %傅里叶变换! _( C' n, h. M# ~! ^, @
magX=abs(X); %信号的幅度! E3 H( K9 b9 ^. Y& T/ j
angX=angle(X); %信号的相位& U* z% }! h3 h+ x
Y=magX.*exp(1i*angX); %信号的频域表示
8 }9 D n( l* y: r3 ^2 Fy=ifft(Y,len); %信号进行傅里叶逆变换
* W1 Z0 c% ^1 ]1 n9 n) ~- u& ky=real(y);
/ ?, c( a3 U( ~2 q% @1 u* ker=signal-y; %原始信号和还原信号的误差* K5 l: u7 ^# c M3 W
subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel( ' 时间 ' );ylabel( ' 振幅' );title( ' 原始信号 ' );! e+ H, [5 D f1 q* Y; ^7 L
subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel( ' 时 间 ' );ylabel( ' 振 幅 ' );title( ' 还原信号 ' );
$ F. w* ?: y3 N5 c6 ]! `9 f* osubplot(313);plot(t,er);xlabel( ' 时间 ' );ylabel( ' 振幅 ' );title( ' 误差 ' );
$ ^& {- Z: X0 X% End Script
7 i; P* g; f" R+ {* I( V1 o5 I& ]3 X: T- C; d# J5 ~9 s9 `
! [9 T+ w/ U9 D7 M. k4 D& @
( s/ p. i6 Y7 a
: P# ~9 `5 e0 I: J1 u. O Z
误差er的数量级为
,误差绝对值的最大值(
)如下图:
* O5 J9 e$ M! C; ]5 I& b- m) t) c8 h" u3 E
' R# h- t$ w3 G6 ]3 i6 T9 y1 i' N
6 L' _! e7 S" m( `
9 L" t2 w; j# H. A/ g
* E& h7 i- E6 B+ b. I s" R. _9 _, w9 e# i7 j
$ h" p6 h6 H/ P8 Q
|
|