EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。 本文讨论使用Matlab对信号进行频域分析的方法。 说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号的频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。 FFT
' m- k+ Q) f1 i5 cMatlab提供的傅里叶变换的函数是FFT,中文名叫做快速傅里叶变换。快速傅里叶变换的提出是伟大的,使得处理器处理数字信号的能力大大提升,也使我们生活向数字化迈了一大步。 接下来就谈谈如何使用这个函数。 fft使用很简单,但是一般信号都有x和y两个向量,而fft只会处理y向量,所以想让频域分析变得有意义,那么就需要用户自己处理x向量 一个简单的例子 从一个简单正弦信号开始吧,正弦信号定义为: 我们现在通过以下代码在Matlab中画出这个正弦曲线 fo = 4; %frequency of the sine wave2 o% ]* t x1 `9 J5 n( e
Fs = 100; %sampling rate
& P' b& g# M8 l M, R& MTs = 1/Fs; %sampling time interval
& k2 v/ P7 E$ g, m+ d7 Jt = 0:Ts:1-Ts; %sampling period5 J& H {9 N1 a8 R4 y z
n = length(t); %number of samples
+ s" }$ a$ h0 p8 y9 D* o7 B1 H7 ly = 2*sin(2*pi*fo*t); %the sine curve
% e, u" y, D; L( I+ `
; E4 O; Q9 G1 C0 d$ \%plot the cosine curve in the time domain
2 Y Q [% a& E$ w, qsinePlot = figure;# o) d- J( [% g4 }2 Q
plot(t,y)2 y5 o6 E% I6 [2 w
xlabel('time (seconds)'), @( e' B1 }& p% `
ylabel('y(t)')9 y$ |9 N# O( ~0 N( j/ R5 K- I5 w% D
title('Sample Sine Wave')
5 t0 m. R2 Q' b: o$ q- _+ Agrid 这就是我们得到的:
) i3 _3 M. D. j) Y( m1 N: l
8 B/ H& _5 o/ _- g; v, F |