|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab 傅里叶变换傅里叶逆变换-FFT-IFFT( n, t3 i( v8 _0 v/ y
! I- u1 w# u$ Y* k%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化# {1 A. m4 H- j. e6 o# a
clear all; clc;+ u. ]- \- ?) O# Y5 G* R! o$ p9 C
%------Author&Date------7 U& l# ~& ]! _; |
%Author:
6 D+ {* n' o& J& A: m%Date: 2013/07/31
, ?: x# o6 @4 [; r/ M. ^%==========================================================================
& i8 n5 \ n: @. BFs=8e3; %采样率. P l4 [- a }
t=0:1/Fs:1; %采样点2 L$ w8 g" s! G5 Z, s0 r
len=length(t); %采样长度
/ ?7 G- R2 x G5 e4 T2 Hf1=10; %频率 1
/ H5 R& W* U! N R6 zf2=100; %频率 2. S/ L; l: i4 P6 @
f3=1000; %频率 3
( `3 s9 m( }+ B( T9 e$ CA1=1; %幅度 17 i# j5 S h; R& M8 R+ }0 U! j
A2=0.8; %幅度 2
! H0 Z! w2 z, |# G W) PA3=0.3; %幅度 3/ u E! O! E- S5 T9 X# j
MaxS=A1+A2+A3; %信号幅度的最大值$ J; e/ b% l5 S, w/ n' f
signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t);$ c' J( B% K5 j4 F( T) G8 @3 a
X=fft(signal,len); %傅里叶变换7 \* @5 g9 W/ v' j- N+ Y& e
magX=abs(X); %信号的幅度7 H Q& ^+ d6 S' d, i% m" z
angX=angle(X); %信号的相位( ]: A: G4 o& b; `+ v
Y=magX.*exp(1i*angX); %信号的频域表示4 i3 Z1 \1 X8 H" k( B& \
y=ifft(Y,len); %信号进行傅里叶逆变换% q3 X8 T7 ] M0 h1 D4 R4 S2 Z; \
y=real(y); ?) O& `, `. L, r# l0 M# i
er=signal-y; %原始信号和还原信号的误差
: {: p+ h+ i; X+ _subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel( ' 时间 ' );ylabel( ' 振幅' );title( ' 原始信号 ' );4 [1 ]7 s" v% u' ]6 V6 N
subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel( ' 时 间 ' );ylabel( ' 振 幅 ' );title( ' 还原信号 ' );2 D! d5 U& D6 t4 Y0 ^5 N/ u" e
subplot(313);plot(t,er);xlabel( ' 时间 ' );ylabel( ' 振幅 ' );title( ' 误差 ' );
o0 O4 X, @) h3 S9 Y% End Script
2 A7 A1 E' j) }8 @; X5 d- m2 i- Z- G- z0 i
. A7 o% I5 w4 P5 B& c4 \
+ E/ D+ u4 }8 w. J0 \
2 M% Q7 e- S8 i4 X" p误差er的数量级为
,误差绝对值的最大值(
)如下图: & W: v7 D7 l/ q9 C2 r$ @
3 C+ T$ z. D0 W9 Z- W
- }3 M7 P0 y/ ^( o X5 H
! m1 }1 t m, r' j* |" P7 h' y! k4 S& E2 K
$ z# }$ z8 u/ E. U: o, v% G8 Y
8 j1 m5 g3 b4 ?7 U& f
( x% E6 V2 L- {# A o |
|