|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab 傅里叶变换傅里叶逆变换-FFT-IFFT( A; ^8 t" b7 [, a+ I2 z3 R. B3 X, a
/ h/ @9 x- t8 W- N X%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化
+ l8 Y6 n& `# ]% s2 N! c2 zclear all; clc;9 |% _6 R; q5 y; u
%------Author&Date------ w+ R( d; r; }! L: c6 x
%Author:
0 x6 x( s0 N9 S% D%Date: 2013/07/31
2 ^( W& S0 \7 [, f G/ j%==========================================================================
& z: M" @& j# m8 X$ h1 {" T! dFs=8e3; %采样率
; v! r4 p" H1 }/ F0 k! ]+ h" et=0:1/Fs:1; %采样点
0 V [- \: X& S6 F/ `: Elen=length(t); %采样长度
3 k! L9 b: F( G" R. y9 K+ j0 ff1=10; %频率 1
* R) @8 P3 l4 I8 j6 Qf2=100; %频率 2
6 \! j8 U. _0 ~ O9 {f3=1000; %频率 3
! V/ X0 t+ X: d0 ]A1=1; %幅度 16 k- U% l+ f" j0 J' E- c
A2=0.8; %幅度 2
: V9 |# \# w( \' Q/ z% X& S3 i9 R& J9 dA3=0.3; %幅度 3
4 T+ V8 c* ~* ZMaxS=A1+A2+A3; %信号幅度的最大值
- Y1 X, I' ~8 @/ B+ Osignal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t);6 h; J6 V4 q. O+ a, G8 r
X=fft(signal,len); %傅里叶变换% E. y6 M% v0 N
magX=abs(X); %信号的幅度
6 u* H$ J, x0 r4 ]" d. b M' FangX=angle(X); %信号的相位( w4 R5 E* U% S- }
Y=magX.*exp(1i*angX); %信号的频域表示/ m z% X* Y; X/ V9 A' x1 g& T* W
y=ifft(Y,len); %信号进行傅里叶逆变换
) m* x% p6 B5 [2 R* Ry=real(y);
O* m" t. w5 q+ _$ w& Zer=signal-y; %原始信号和还原信号的误差
& t _" P# ]2 \8 ^: K t+ ]$ P7 hsubplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel( ' 时间 ' );ylabel( ' 振幅' );title( ' 原始信号 ' );
& u. N1 y+ m4 w2 psubplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel( ' 时 间 ' );ylabel( ' 振 幅 ' );title( ' 还原信号 ' );
& @9 Q8 d% B8 @" M: @/ \subplot(313);plot(t,er);xlabel( ' 时间 ' );ylabel( ' 振幅 ' );title( ' 误差 ' );
4 n5 r' e; N Y( ~4 Q% End Script2 T) k% g4 h( {; ~
4 s& P3 ^- ]2 }' ]9 W4 \& f( Z: ~* j y/ @& H/ V
# ]& y" y- u+ |, h- H
7 D# n) P( m& }2 I1 v误差er的数量级为
,误差绝对值的最大值(
)如下图: ! d0 j2 y+ u! c* N; D) w0 \* d( m( Z
" `/ O7 k* x. O4 A( e1 [6 L
& b3 M2 k% T! t6 _6 Z- t3 K
1 p$ m8 x4 T5 b8 L! x, z7 a0 U; J9 A! H# f
+ {% w. J' k0 F2 H! n3 p
3 ]* C6 ]/ O' ]: z" g W6 a( N& \4 E x
|
|