EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。 本文讨论使用Matlab对信号进行频域分析的方法。 说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号的频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。 FFT7 Q& I$ Q; H' `% r3 J
Matlab提供的傅里叶变换的函数是FFT,中文名叫做快速傅里叶变换。快速傅里叶变换的提出是伟大的,使得处理器处理数字信号的能力大大提升,也使我们生活向数字化迈了一大步。 接下来就谈谈如何使用这个函数。 fft使用很简单,但是一般信号都有x和y两个向量,而fft只会处理y向量,所以想让频域分析变得有意义,那么就需要用户自己处理x向量 一个简单的例子 从一个简单正弦信号开始吧,正弦信号定义为: 我们现在通过以下代码在Matlab中画出这个正弦曲线 fo = 4; %frequency of the sine wave
, l+ U; y3 P2 W0 G9 I EFs = 100; %sampling rate) f; q! F3 o8 B% h+ o" y( D- K& R
Ts = 1/Fs; %sampling time interval2 ]; N# c u; O: H9 C' t
t = 0:Ts:1-Ts; %sampling period( |4 y, _6 P/ f. u
n = length(t); %number of samples
9 o; v* W5 _2 `, J& s2 ~9 |+ a: l+ x7 Ey = 2*sin(2*pi*fo*t); %the sine curve/ B" z8 L; \4 F" x+ C( q
0 Q+ f' X: D. [" `0 X2 L8 r, {9 D
%plot the cosine curve in the time domain4 B! |1 [# }- t! m' E) o9 t, t2 s
sinePlot = figure;
3 R' S2 F# o# p& hplot(t,y)$ t! h; Z% q# l$ z
xlabel('time (seconds)')
9 C" A0 A& ?2 F. W) t0 M& l% n) K0 }ylabel('y(t)')
. u7 q4 i1 }' Z$ Jtitle('Sample Sine Wave')( Z7 B# E* ]( G; w$ K2 }
grid 这就是我们得到的: 2 s3 |9 h) n, @2 F# O; {
0 V6 e9 I# J! s |