EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。 本文讨论使用Matlab对信号进行频域分析的方法。 说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号的频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。 FFT8 t+ y- F L/ g1 x" u% f7 o% v: |
Matlab提供的傅里叶变换的函数是FFT,中文名叫做快速傅里叶变换。快速傅里叶变换的提出是伟大的,使得处理器处理数字信号的能力大大提升,也使我们生活向数字化迈了一大步。 接下来就谈谈如何使用这个函数。 fft使用很简单,但是一般信号都有x和y两个向量,而fft只会处理y向量,所以想让频域分析变得有意义,那么就需要用户自己处理x向量 一个简单的例子 从一个简单正弦信号开始吧,正弦信号定义为: 我们现在通过以下代码在Matlab中画出这个正弦曲线 fo = 4; %frequency of the sine wave5 h6 z$ G7 J" Q& y+ D
Fs = 100; %sampling rate4 H! a9 h. f* {) E1 t
Ts = 1/Fs; %sampling time interval
% G5 {! W- M) e# a; }7 G; ut = 0:Ts:1-Ts; %sampling period( r1 g' r! S- g2 s
n = length(t); %number of samples
8 u3 v- w: T/ K& G+ K. v( S2 py = 2*sin(2*pi*fo*t); %the sine curve
$ b) j5 B6 [6 m6 `
# K. F8 I2 s. i1 e0 B1 z& t' b%plot the cosine curve in the time domain5 S5 i2 W" C* l; V
sinePlot = figure;) P% t% j3 d% M3 K( i
plot(t,y)
+ D x5 W. C K( ]0 G) s' k: ~xlabel('time (seconds)')
# K+ A) b1 a& s) ~' dylabel('y(t)')
5 E# A( X- {* e c' ftitle('Sample Sine Wave'), b0 s' Y4 V6 ~8 Q |
grid 这就是我们得到的:
. w3 U+ c6 {2 D1 |) x$ i# ]' d2 X# R8 Q/ k c, _* ?, B
|