EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。 本文讨论使用Matlab对信号进行频域分析的方法。 说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号的频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。 FFT% _ K' ?% j$ i
Matlab提供的傅里叶变换的函数是FFT,中文名叫做快速傅里叶变换。快速傅里叶变换的提出是伟大的,使得处理器处理数字信号的能力大大提升,也使我们生活向数字化迈了一大步。 接下来就谈谈如何使用这个函数。 fft使用很简单,但是一般信号都有x和y两个向量,而fft只会处理y向量,所以想让频域分析变得有意义,那么就需要用户自己处理x向量 一个简单的例子 从一个简单正弦信号开始吧,正弦信号定义为: 我们现在通过以下代码在Matlab中画出这个正弦曲线 fo = 4; %frequency of the sine wave# G2 ^4 Z# g( k! r1 v9 ~5 M v
Fs = 100; %sampling rate
( P; _" D; b& W- Y. J+ ]8 m: MTs = 1/Fs; %sampling time interval5 Q% m. h9 n4 j: e4 Q" h! P6 o
t = 0:Ts:1-Ts; %sampling period
& O1 z- v: L2 tn = length(t); %number of samples" c9 F7 m, T" D+ Z2 ^
y = 2*sin(2*pi*fo*t); %the sine curve
# y9 [! N6 c$ s: P : B A' U) `7 \" E1 b0 x, `1 W
%plot the cosine curve in the time domain
1 ~2 R/ T/ `3 k6 u6 ~- d" D/ O( ~sinePlot = figure;
; r* z( S8 Q* u) z# e+ ^) Z4 n5 Xplot(t,y)3 I/ \8 Z+ ~# B8 r! V: q0 j+ J, d
xlabel('time (seconds)')
4 k3 d0 T0 ]4 [% r8 M3 P2 [ylabel('y(t)'); V* Y/ K3 H; I
title('Sample Sine Wave')* c( L* W2 Y2 X2 D9 D
grid 这就是我们得到的: 0 N+ A/ |3 P+ r8 d) S+ K0 ~
. ~& V G! L/ u/ @) ?4 [7 f# q
|