EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。 本文讨论使用Matlab对信号进行频域分析的方法。 说到频域,不可避免的会提到傅里叶变换,傅里叶变换提供了一个将信号从时域转变到频域的方法。之所以要有信号的频域分析,是因为很多信号在时域不明显的特征可以在频域下得到很好的展现,可以更加容易的进行分析和处理。 FFT
# Z+ `4 X! x. {$ n5 f$ G0 yMatlab提供的傅里叶变换的函数是FFT,中文名叫做快速傅里叶变换。快速傅里叶变换的提出是伟大的,使得处理器处理数字信号的能力大大提升,也使我们生活向数字化迈了一大步。 接下来就谈谈如何使用这个函数。 fft使用很简单,但是一般信号都有x和y两个向量,而fft只会处理y向量,所以想让频域分析变得有意义,那么就需要用户自己处理x向量 一个简单的例子 从一个简单正弦信号开始吧,正弦信号定义为: 我们现在通过以下代码在Matlab中画出这个正弦曲线 fo = 4; %frequency of the sine wave: x9 Z; w! f4 r7 y$ p
Fs = 100; %sampling rate
: e! e( z% O- g% q& s! ETs = 1/Fs; %sampling time interval
4 J8 {# O8 w& A( dt = 0:Ts:1-Ts; %sampling period
0 U* f. W6 L7 ?6 q4 n: n3 B) o6 z! z Qn = length(t); %number of samples
L+ j; |* C# ] O& G/ H8 a+ q4 S( Y$ By = 2*sin(2*pi*fo*t); %the sine curve
* O4 P% j0 g# ~ ! |: F6 B( d( j4 k
%plot the cosine curve in the time domain% L8 r4 o j K% ]% {7 Y) ^6 }: @( ?8 a
sinePlot = figure;
' N0 M9 i. V5 J6 t6 wplot(t,y)
6 T9 m, ^* _1 @2 I' b& s* ixlabel('time (seconds)')
5 M. n4 i: @( h0 \$ P$ vylabel('y(t)')( ^* C, {8 S* E8 M9 E. {
title('Sample Sine Wave')
) h+ ^2 i/ r+ B9 j# ]grid 这就是我们得到的:
% k* X! I$ J! P/ A: R( R5 |( q, c$ O5 a, |* Y% }. y2 c0 c* [% s
|