|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab 傅里叶变换傅里叶逆变换-FFT-IFFT& U5 e# U. x4 t: n
9 S; A" I, X C, H! Z1 _7 X%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化
! C5 @9 p" G+ \1 o8 [* S5 O' Wclear all; clc;4 @* G. R9 n, H5 i# t
%------Author&Date------
3 T1 _$ ~8 ]- t) w- q%Author:
, \ r7 n6 z, W5 a# Y i%Date: 2013/07/319 j; D3 P+ Y; x; i9 x
%==========================================================================
, }% l# P' Q, C. |( dFs=8e3; %采样率/ @ g9 y7 y4 J# S, Q+ M
t=0:1/Fs:1; %采样点
$ |& J8 ?8 i& plen=length(t); %采样长度$ _" ^8 }$ F. J2 n8 b7 L
f1=10; %频率 19 a( k0 l; u7 \$ x0 V
f2=100; %频率 2
! D1 G4 k' ]$ ?/ af3=1000; %频率 3
9 h `8 i" L/ H6 z+ sA1=1; %幅度 1# |1 { v! `8 s) J, z6 m& L* B
A2=0.8; %幅度 2 s. `* P% z" W! i4 o
A3=0.3; %幅度 3
, q6 B u$ q B) X% e }0 U: eMaxS=A1+A2+A3; %信号幅度的最大值
w p& b- m% y$ u( w0 {) v5 n% R$ ksignal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t);
h; W' e- e3 G( p; MX=fft(signal,len); %傅里叶变换
3 k p! P x9 s4 V7 l% p: }0 L4 h p ^magX=abs(X); %信号的幅度* @* y2 U" l% \3 {0 m5 Z' i
angX=angle(X); %信号的相位. S" ~/ V* `6 x; t
Y=magX.*exp(1i*angX); %信号的频域表示2 S" n* J9 |, [, M( t' p& q7 r
y=ifft(Y,len); %信号进行傅里叶逆变换" j" t) o# m1 F- L; R. l1 i$ ?
y=real(y);
) [' E: p3 d3 o! M0 @- s r9 N. Ler=signal-y; %原始信号和还原信号的误差; [2 w6 q, K" \, J9 h8 w* U
subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel( ' 时间 ' );ylabel( ' 振幅' );title( ' 原始信号 ' );6 T: C+ x; T; a$ f( p
subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel( ' 时 间 ' );ylabel( ' 振 幅 ' );title( ' 还原信号 ' );
% P" a8 d: h8 usubplot(313);plot(t,er);xlabel( ' 时间 ' );ylabel( ' 振幅 ' );title( ' 误差 ' );
" D- N7 C: Z( s6 J* ^6 B% End Script1 i# E, u5 W+ K7 c: [+ U
- v9 H+ K* K, E- J
" [ H5 o9 G D5 h+ B4 P
# B/ t6 }- x6 `4 A/ T8 ^5 i3 G+ t
3 a6 n1 y+ e& k$ }, p5 T6 u) L误差er的数量级为
,误差绝对值的最大值(
)如下图:
4 ^2 L, D" s0 P4 w$ s {& _$ i5 _! J, j' Z
* ?8 @% |. g9 l/ ?- k/ i
7 G8 L+ V: Q5 o7 Z# T) _0 _3 F) Q3 F& ]) u: e5 w) j
# L( C% i% M" N) ` W9 C: A7 b) ^3 [4 b. s+ ?& i0 k7 `
/ {/ y5 X2 A& R& S; m H |
|