|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab 傅里叶变换傅里叶逆变换-FFT-IFFT
5 V; t! V' U! v4 p, s% O9 A6 P! J
, V1 V, |& H- e%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化
3 @8 r" b& O# lclear all; clc;
, m% V7 d' ^* [# k" j/ T0 b, ] ^6 p%------Author&Date------
$ p9 L& s G- V! j9 M: ]9 U; }%Author: 2 A/ W. d0 ?- L7 H2 F% x# {
%Date: 2013/07/314 N% E3 i2 E. o8 {3 J
%==========================================================================
4 v, Q7 l3 P8 p! XFs=8e3; %采样率* f7 V* O) O$ ~4 f8 v" w5 E
t=0:1/Fs:1; %采样点4 O' O8 G( Z1 O) ~
len=length(t); %采样长度
E" E7 x8 Z7 q0 Bf1=10; %频率 12 ?% q" \: t9 |+ c* M- J
f2=100; %频率 2
) J% b% ^' e5 m7 G2 hf3=1000; %频率 3+ D! s; D; a9 P+ f0 w. G
A1=1; %幅度 1
+ a' A5 f9 ?3 y6 S x, h* kA2=0.8; %幅度 2
4 v4 N% I- G5 ~( |- GA3=0.3; %幅度 39 O G: h! n9 j& R( E
MaxS=A1+A2+A3; %信号幅度的最大值% a: C1 n; z8 F* o; n/ C* i
signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t);% |7 ? T% F( H+ R6 O* W
X=fft(signal,len); %傅里叶变换3 y- o0 ?+ R! ?3 _' b, D
magX=abs(X); %信号的幅度" d9 t; U' e+ j% h& m3 }) Q& \
angX=angle(X); %信号的相位
0 o% ?8 b+ J( W& x6 G8 m: E! DY=magX.*exp(1i*angX); %信号的频域表示9 z: u) M( T( ]% o |
y=ifft(Y,len); %信号进行傅里叶逆变换
/ D1 R% b2 D l% [, a8 oy=real(y);& W, U$ }) `6 R0 W: O9 u/ y, @
er=signal-y; %原始信号和还原信号的误差
- v7 D; u8 _, usubplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel( ' 时间 ' );ylabel( ' 振幅' );title( ' 原始信号 ' );
7 o4 Y9 f6 [8 v0 Q$ p* C' Tsubplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel( ' 时 间 ' );ylabel( ' 振 幅 ' );title( ' 还原信号 ' );9 [9 X: c+ d7 G7 h( U% k3 [" Q2 y# U5 @
subplot(313);plot(t,er);xlabel( ' 时间 ' );ylabel( ' 振幅 ' );title( ' 误差 ' );* @# U: M: z0 P
% End Script
" x: \2 ?+ j( U( e- o7 h
0 y- ]/ h- R; U! s H3 a' Q( A8 |' m* n4 n3 Q3 o
2 U. x) j9 `' t: o7 z# k. I& I$ \6 I+ _) S) v6 H
误差er的数量级为
,误差绝对值的最大值(
)如下图:
* F! M% e8 c% ?$ x1 ~: Y1 H* \2 I6 Y) D$ ^
8 U* i) c9 C+ k: G: W# G- {) {( Q
$ Z9 F4 f/ s' B( _; B) L' |- u1 J+ U- a# ^% s( T
$ m+ t. s, C3 K' ?, o2 r
# p, i/ n/ i6 @9 q J/ ` _
1 x: P5 s {: n ]; G |
|