文档库 最新最全的文档下载
当前位置:文档库 › 实验六Matlab频域分析

实验六Matlab频域分析

实验六Matlab频域分析
实验六Matlab频域分析

实验六 MATLAB 频域分析

5.1 频率特性的概念

系统的频率响应是在正弦信号作用下系统的稳态输出响应。对于线性定常系统,在正弦信号作用下,稳态输出是与输入同频率的正弦信号,仅是幅值和相位不同。设系统传递函数为()G s ,其频率特性为

s j (j )(s)|G G ωω==

例5-1 对系统22

(s)s 2s 3

G =

++,在输入信号()sin r t t =和()sin3r t t =下可由

Matlab 求系统的输出信号,其程序如下:

》num=2;den=[1 2 3]; 》G=tf(num,den); 》t=0:0.1:6*pi; 》u=sin(t);/ u=sin(3*t); 》y=lsim(G ,u,t); 》plot(t,u,t,y)

运行程序显示系统响应如图5-1所示。

a) sin t 的响应 b) sin (3t)的响应 图5-1 正弦信号输入系统的稳态响应

5.2用()nyquist sys 绘制极坐标图

频率特性中的奈奎斯特图是奈奎斯特(Nyquist )稳定性判据的基础。反馈控制系统稳定的充分必要条件为:奈奎斯特曲线逆时针包围(1,0)j -点的次数等于系统开环右极点个数。

调用Matlab 中nyquist() 函数可绘出奈奎斯特图,其调用格式为:

,,[re im ω]=nyquist(num,den,ω)

或sys =tf(num,den);nyquist(sys)

式中,()/G s num den =;ω为用户提供的频率范围;re 为极坐标的实部;im 为极坐标的虚部。若不指定频率范围,则为nyquist(num,den)。在输入指令中,如果缺省了左边的参数说明,奈奎斯特函数将直接生成奈奎斯特图;当命令包含左端变量时,即[re,im,ω]=nyquist(num,den)时,则奈奎斯特函数将只计算频率响应的实部和虚部,并将计算结果放在数据向量re 和im 中。在此情况下,只有调用plot 函数和向量re 、im ,才能生成奈奎斯特图。

例5-2 设系统的传递函数为2

1

G(s)s 2s 2

=++,绘制其奈奎斯特图。 解 程序如下: 》num=[1];den=[1,2,2]; 》nyquist(num,den)

运行程序,显示奈奎斯特曲线如图5-2所示。

图5-2 奈奎斯特曲线

值得注意的是,由于nyquist ()函数自动生成的坐标尺度固定不变,nyquist ()函数可能会生成异常的奈奎斯特图,也可能会丢失一些重要的信息。在这种情况下,为了重点关注奈奎斯特图在点(-1,j0)附近的形状,着重分析系统的稳定性,需要首先调用轴函数axis(),自行定义坐标轴的显示尺度,以提高图形的分辨率;或用放大镜工具放大,以便进行稳定性分析。

例5-3 设某系统的传递函数为32

1000

G(s)s 8s 17s 10

=+++,则绘制其奈奎斯特图的程序如下:

》num=[1000];den=[1,8,17,10]; 》nyquist (num,den);grid 或

num=[1000];den=[1,8,17,10]; sys=tf(num,den); nyquist (sys); grid

运行程序,显示奈奎斯特曲线如图5-3 a)所示。可以看出在点(-1,j0)附近,奈奎斯特图很不清楚,可利用放大镜对得出的奈奎斯特图进行局部放大,或利用如下Matlab 命令

》v=[-10,0,-1.5,1.5];

》axis(v)

a) b)

图5-3 奈奎斯特局部图

例5-4 设某系统的开环传递函数为

2

2

10(s 2)(s)(s 1)(s 2s 9)

G +=+-+ 则绘制其奈奎斯特图的程序如下:

》num=10*[1, 4, 4]; 》den=conv([1, 1],[1, -2,9]); 》nyquist (num,den); 》grid 或

num=10*[1,4,4];

》den=conv([1,1],[1,-2,9]); sys=tf(num,den); nyquist (sys); grid

运行程序,显示得图5-4 a)。

若规定实轴、虚轴范围(10,10),(-10,10),则绘制其奈奎斯特图的程序如下: 》num=10*[1 4 4]; den=conv([1 1],[1 -2 9]); 》nyquist (num,den); 》axis([-10,10,-10,10]) 运行程序,显示得图5-4 b)。

a )

b )

图 5-4 奈奎斯特曲线

5.3 用bode(sys)画对数坐标图

伯德图由对数幅频和对数相频两张图构成,ω轴采用对数分度,幅值为对数增益即分贝(dB ),相位()?ω为线性分度。Matlab 中绘制伯德图的函数为bode( ),其调用格式为

[mag,phase,w]=bode(num,den,w) 或 sys=tf(num,den); bode(sys)

式中,G(s)=num/den ,频率ω自动选择范围从0.11000/rad s ωω==到,若自行选择频率范围,可应用logspace()函数,其格式为

ω=logspace(a,b,n)

式中,a 表示最小频率10a ,b 表示最大频率10b ,n 表示10a ~10b 之间频率点数。

例5-5 设某系统的传递函数为225(0.1s 1)

(s)10.6

s(0.5s 1)(s s 1)

5050

G +=

+++,则绘制其

伯德图的Matlab 程序如下:

>> num=5*[0.1 1];

>> den=conv([1 0],conv([0.5 1],[1/2500 0.6/50 1])); >> bode(num,den)

-150

-100

-50

M a g n i t u d e (d B )10

10

10

10

10

P h a s e (d e g )

Bode Diagram

Frequency (rad/sec)

函数log (,,)space a b n ω= 的应用。程序如下:

>> w=logspace(-1,4,300); %确定频率范围及点数 >> [mag,phase,w]=bode(num,den,w);

>> semilogx(w,20*log(mag));grid %绘图坐标及大小 >> xlabel('Frequency[rad/s]'),ylabel('20*log(mag)')

10

-110

101

102

103

10

4

-400

-350-300-250-200-150-100-50

050

100Frequency[rad/s]

20*l o g (m a g )

图5-6 伯德图

5.4 用margin (sys )计算增益裕量和相位裕量

Matlab 中采用裕量函数 margin ()来确定相对稳定性,其调用格式为 [Gm,Pm, Wcg, Wcp]=margin(sys) 或 margin(sys)

式中,Gm 为增益裕量;Pm 为相为裕量;Wcg 为相角穿越频率;Wcp 为幅值穿越频率。在输入指令中,如果缺省了左边的参数说明,margin ()函数将在伯德图上自动标注系统的增益裕量和相位裕量.

例5-7 设某系统的传递函数为 0.5

s 2s s 0.8

s)G 2

3+++=(,则计算其增益裕量和相位裕量的程序如下:

>> num=[0.8];den=[1 2 1 0.5]; >> sys=tf(num,den);

>> margin(sys)执行程序,显示该系统的伯德图及相对稳定裕度如图5-7所示。

M a g n i t u d e (d B )10

-2

10

-1

10

10

1

10

2

P h a s e (d e g )

Bode Diagram

Gm = 5.47 dB (at 1 rad/sec) , P m = 21.9 deg (at 0.788 rad/sec)

Frequency (rad/sec)

图5-7 例5-7中系统的伯德图及相对稳定裕度

若执行

[Gm,Pm, Wcg, Wcp]=margin(sys)

则可得Gm = 1.8772,Pm = 21.9176,Wcg = 1.0004,Wcp = 0.7881 纯滞后环节的表示 Sys.iodelay=0.1; Margin(sys);

闭环系统带宽、谐振峰值、谐振频率 >> BW=bandwidth(sys) 作业:

MP8.1 用MATLAB 绘制()225

25

T s s s =++的Bode 图,并验证其谐振频

率为5/rad s ,谐振峰值为14dB 。

>> num=[25];den=[1 1 25]; sys=tf(num,den); bode(sys) >> BW=bandwidth(sys),运行结果 BW = 7.7112

10

-1

10

10

1

10

2

-180

-135-90-45

0P h a s e (d e g )

Frequency (rad/sec)

-60-40

-20

20

M a g n i t u d e (d B )

MP8.2 先手工绘制下列传递函数的Bode 图,然后用MATLAB 加以验证。 (a) ()()()1

110G s s s =

++

(b) ()()()

10

120s G s s s +=

++

(c) ()2

1

250

G s s s =++ (d) ()()()

2

5

11250s G s s s s +=+++

MP8.3某单位负反馈系统的开环传递函数为:

()()

25

2G s s s =+

用MATLAB 绘制闭环系统的Bode 图,根据Bode 图估计闭环带宽,并在图上标注所得结果。

MP8.4某2阶系统框图如图MP8.4所示,

图MP8.4 2阶反馈控制系统

(a) 在0.1ω=到1000/rad s ω=之间,用logspace 函数生成系统闭环Bode 图。根据该Bode 图,估计系统的谐振峰值M

p M 、谐振频率r ω、和带

宽B ω;

(b) 用图8.11估算系统的阻尼系数ζ和固有频率n ω;

(c) 根据闭环传递函数计算ζ和n ω的精确值,并与(b)的结果作比较。

MP8. 5考虑图MP8.5给出的闭环反馈系统,用MATLAB 绘制系统的开环和闭环Bode 图。

图MP8.5 闭环反馈系统

MP9.1某单位负反馈系统的开环传递函数为()()

2

100/410G s s s =++,

试用MATLAB 程序验证:该系统的增益裕度为∞,相角裕度为24

MP9.2 用nyquist 函数绘制下列传递函数的Nyquist 。

(a) ()11

G s s =+ (b) ()215

85

G s s s =++

(c) ()32

10

331

G s s s s =+++

MP9.4 考虑某单位负反馈控制系统,其开环传递函数为:

()1

Ts

Ke G s s -=+

(a)当T=0.1s 时,利用margin 函数,确定使相角裕度为45

的K 的取值;

(b)利用所得的增益K ,在00

.2T s ≤≤的范围内,画出相角裕度与T 的关系曲线。

matlab频谱分析

设计出一套完整的系统,对信号进行频谱分析和滤波处理; 1.产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计三种高通,低通,带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。 2.采集一段含有噪音的语音信号(可以录制含有噪音的信号,或者录制语音后再加进噪音信号),对其进行采样和频谱分析,根据分析结果设计出一合适的滤波器滤除噪音信号。 %写上标题 %设计低通滤波器: [N,Wc]=buttord() %估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc [a,b]=butter(N,Wc); %设计Butterworth低通滤波器 [h,f]=freqz(); %求数字低通滤波器的频率响应 figure(2); % 打开窗口2 subplot(221); %图形显示分割窗口 plot(f,abs(h)); %绘制Butterworth低通滤波器的幅频响应图 title(巴氏低通滤波器''); grid; %绘制带网格的图像 sf=filter(a,b,s); %叠加函数S经过低通滤波器以后的新函数 subplot(222); plot(t,sf); %绘制叠加函数S经过低通滤波器以后的时域图形 xlabel('时间(seconds)'); ylabel('时间按幅度'); SF=fft(sf,256); %对叠加函数S经过低通滤波器以后的新函数进行256点的基—2快速傅立叶变换 w= %新信号角频率 subplot(223); plot()); %绘制叠加函数S经过低通滤波器以后的频谱图 title('低通滤波后的频谱图'); %设计高通滤波器 [N,Wc]=buttord() %估算得到Butterworth高通滤波器的最小阶数N和3dB截止频率Wc [a,b]=butter(N,Wc,'high'); %设计Butterworth高通滤波器 [h,f]=freqz(); %求数字高通滤波器的频率响应 figure(3); subplot(221); plot()); %绘制Butterworth高通滤波器的幅频响应图 title('巴氏高通滤波器'); grid; %绘制带网格的图像 sf=filter(); %叠加函数S经过高通滤波器以后的新函数 subplot(222); plot(t,sf); ;%绘制叠加函数S经过高通滤波器以后的时域图形 xlabel('Time(seconds)'); ylabel('Time waveform'); w; %新信号角频率 subplot(223);

用MATLAB进行FFT频谱分析

用MATLAB 进行FFT 频谱分析 假设一信号: ()()292.7/2cos 1.0996.2/2sin 1.06.0+++=t t R ππ 画出其频谱图。 分析: 首先,连续周期信号截断对频谱的影响。 DFT 变换频谱泄漏的根本原因是信号的截断。即时域加窗,对应为频域卷积,因此,窗函数的主瓣宽度等就会影响到频谱。 实验表明,连续周期信号截断时持续时间与信号周期呈整数倍关系时,利用DFT 变换可以得到精确的模拟信号频谱。举一个简单的例子: ()ππ2.0100cos +=t Y 其周期为0.02。截断时不同的持续时间影响如图一.1:(对应程序shiyan1ex1.m ) 图 错误!文档中没有指定样式的文字。.1 140.0160.0180.02 截断时,时间间期为周期整数倍,频谱图 0.0250.03 0100200300400500600 7008009001000 20 40 60 80 100 截断时,时间间期不为周期整数倍,频谱图

其次,采样频率的确定。 根据Shannon 采样定理,采样带限信号采样频率为截止频率的两倍以上,给定信号的采样频率应>1/7.92,取16。 再次,DFT 算法包括时域采样和频域采样两步,频域采样长度M 和时域采样长度N 的关系要符合M ≧N 时,从频谱X(k)才可完全重建原信号。 实验中信号R 经采样后的离散信号不是周期信号,但是它又是一个无限长的信号,因此处理时时域窗函数尽量取得宽一些已接近实际信号。 实验结果如图一.2:其中,0点位置的冲激项为直流分量0.6造成(对应程序为shiyan1.m ) 图 错误!文档中没有指定样式的文字。.2 ?ARMA (Auto Recursive Moving Average )模型: 将平稳随机信号x(n)看作是零均值,方差为σu 2的白噪声u(n)经过线性非移变系统H(z)后的输出,模型的传递函数为 020406080100120140160180200 0.4 0.50.60.7 0.800.050.10.150.20.250.30.350.40.450.5 50100 150

Matlab频谱分析程序

Matlab频谱分析程序

Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation (谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。 从数学上看,一个平稳随机过程n x 的power spectrum (功率谱)和correlation sequence (相关序列)通过discrete-time Fourier transform (离散时间傅立叶变换)构成联系。从normalized frequency (归一化角频率)角度看,有下式 ()()j m xx xx m S R m e ωω∞ -=-∞ = ∑ 注:()() 2 xx S X ωω=,其中 ()/2 /2 lim N j n n N N X x e N ωω=-=∑ πωπ -<≤。 其matlab 近似为X=fft(x,N)/sqrt(N),在下文中()L X f 就是指matlab fft 函数的计算结果了 使用关系2/s f f ωπ=可以写成物理频率f 的函数,

其中s f 是采样频率 ()()2/s jfm f xx xx m S f R m e π∞ -=-∞ = ∑ 相关序列可以从功率谱用IDFT 变换求得: ()()()/2 2//2 2s s s f jfm f j m xx xx xx s f S e S f e R m d df f πωππ ωωπ- -= =?? 序列n x 在整个Nyquist 间隔上的平均功率可以 表示为 ()()() /2 /2 02s s f xx xx xx s f S S f R d df f ππ ωωπ- -= =?? 上式中的 ()()2xx xx S P ωωπ = 以及()()xx xx s S f P f f = 被定义为平稳随机信号n x 的power spectral density (PSD)(功率谱密度) 一个信号在频带[]1 2 1 2 ,,0ωωωω π ≤<≤上的平均功率 可以通过对PSD 在频带上积分求出 []()()2 1 121 2 ,xx xx P P d P d ωωωωωω ωωωω-- = +?? 从上式中可以看出()xx P ω是一个信号在一个无 穷小频带上的功率浓度,这也是为什么它叫做功率谱密度。

离散系统频域分析及matlab实现

《数字信号处理》 课程设计报告 离散系统的频域分析及matlab实现 专业:通信工程 班级:通信11级 组次: 姓名及学号: 姓名及学号:

离散系统的频域分析及matlab 实现 一、设计目的 1.熟悉并掌握matlab 软件的使用; 2.掌握离散系统的频域特性; 3.学会分析离散系统的频域特性的方法; 二、设计任务 1.设计一个系统函数系统的频率响应进行分析; 2.分析系统的频域响应; 3.分析系统的因果稳定性; 4.分析系统的单位脉冲响应; 三、设计原理 1. 系统函数 对于离散系统可以利用差分方程,单位脉冲响应,以及系统函数对系统进行描述。 在本文中利用系统函数H(z)进行描述。若已知一个差分方程为 ∑∑==---=M i N i i i i n y a i n x b n 0 1 )()()(y ,则可以利用双边取Z 变换,最终可以得到系统函数的一 般式H(z),∑∑=-=-== N i i i M i i i z a z b z X z z H 0 0) () (Y )(。若已知系统的单位脉冲响应,则直接将其进行Z 变换就可以得到系统函数H(z)。系统函数表征系统的复频域特性。 2.系统的频率响应: 利用Z 变化分析系统的频率响应:设系统的初始状态为零,系统对输入为单位脉冲序列 ) (n δ的响应输出称为系统的单位脉冲响应h (n )。对h(n)进行傅里叶变换,得到: ∑∞ ∞∞-==-)(jw n j |)(|)(e H w j n n j e e H e n h ?ω) (

其中|)(|jwn e H 称为系统的幅频特性函数,)(ω?称为系统的相位特性函数。)(jw e H 表示的是系统对特征序列jwn e 的响应特性。对于一个系统输入信号为n )(ωj e n x =,则系统的输出信号为jwn e )(jw e H 。由上可以知道单频复指数信号jwn e 通过频率响应函数为)(jw e H 后,输出仍为单频复指数信号,其幅度放大了|)(|jw e H ,相移为)(ω?。 对于系统函数H(z)与H(w)之间,若系统函数H(z)的收敛域包含单位圆|z|=1,则有 jw e z jw z H e H ==|)()(,在MATLAB 中可以利用freqz 函数计算系统的频率响应。 (1)[h,w]=freqz(b,a,n) 可得到n 点频率响应,这n 个点均匀地分布在上半单位圆(即 ),并将这n 点频率记录在w 中,相应的频率响应记录在h 中。n 最好能取2的幂次方,如果缺省,则n=512。 (2)[h,w]=freqz(b,a,n,'whole') 在 之间均匀选取n 个点计算频率响应。 (3)[h,w]=freqz(b,a,n,Fs) Fs 为采样频率(以Hz 为单位),在0~Fs/2频率范围内选取n 个频率点,计算相应的频率响应。 (4)[h,w]=freqz(b,a,n,'whole',Fs) 在0~Fs 之间均匀选取n 个点计算频率响应。 (5)freqz(b,a) 可以直接得到系统的幅频和相频特性曲线。其中幅频特性以分贝的形式给出,频率特性曲线的横轴采用的是归一化频率,即Fs/2=1。 3.系统的因果性和稳定性 3.1因果性 因果系统其单位脉冲响应序列h(n)一定是一个因果序列,其z 域的条件是其系统函数H(z)的收敛域一定包含∞,即∞点不是极点,极点 分布在某个圆内,收敛域在某个圆外。 3.2稳定性 系统稳定就要求∞<∑∞ ∞-|h(n)|,由序列的)(jw e H 存在条件和jw e z jw z H e H ==|)()(可以知道 系统稳定的z 域条件就是H(z)的收敛域包含单位圆,即极点全部分布在单位圆内部。 由上3.1和3.2可知,利用系统的零极点分布图可以判断系统的因果性和稳定性。 若在零极点分布图中,若系统的极点都分布在单位圆内,则此系统是因果系统,若有极点分布在单位圆 外,则此系统是非因果系统。在MATLAB 中可以利用zplane 函数画出系统的零极点分布图。系统函数的零极点图的绘制:zplane(b,a)。其中b 为系统函数的分子,a 为系统函数的分母。 4.系统的单位脉冲响应 设系统的初始状态为零,系统对输入为单位脉冲序列)(n δ的响应输出称为系统的单位脉冲响应h (n )。对于离散系统可以利用差分方程,单位脉冲响应,以及系统函数对系统进行描述。单位脉冲响应是系统的一种描述方法,若已知了系统的系统函数,可以利用系统得出系统的单位脉冲响应。在MATLAB 中利用impz 由函数函数求出单位脉冲响应h(n)。

第五章 频域分析法

第五章 频域分析法 时域分析法具有直观、准确的优点。如果描述系统的微分方程是一阶或二阶的,求解后可利用时域指标直接评估系统的性能。然而实际系统往往都是高阶的,要建立和求解高阶系统的微分方程比较困难。而且,按照给定的时域指标设计高阶系统也不是一件容易的事。 本章介绍的频域分析法,可以弥补时域分析法的不足。因为频域法是基于频率特性或频率响应对系统进行分析和设计的一种图解方法,故其与时域分析法相比有较多的优点。首先,只要求出系统的开环频率特性,就可以判断闭环系统是否稳定。其次,由系统的频率特性所确定的频域指标与系统的时域指标之间存在着一定的对应关系,而系统的频率特性又很容易和它的结构、参数联系起来。因而可以根据频率特性曲线的形状去选择系统的结构和参数,使之满足时域指标的要求。此外,频率特性不但可由微分方程或传递函数求得,而且还可以用实验方法求得。对于某些难以用机理分析方法建立微分方程或传递函数的元件(或系统)来说,具有重要的意义。因此,频率法得到了广泛的应用,它也是经典控制理论中的重点内容。 5.1 频率特性 对于线性定常系统,若输入端作用一个正弦信号 t U t u ωsin )(= (5—1) 则系统的稳态输出y(t)也为正弦信号,且频率与输人信号的频率相同,即 ) t Y t y ?ω+=sin()( (5—2) u(t)和y(t)虽然频率相同,但幅值和相位不同,并且随着输入信号的角频率ω的改变,两者之间的振幅与相位关系也随之改变。这种基于频率ω的系统输入和输出之间的关系称之为系统的频率特性。 不失一般性,设线性定常系统的传递函数G(s)可以写成如下形式 ) () () () () ())(() ()()()(1 21s A s B p s s B p s p s p s s B s U s Y s G n j j n = +=+++== ∏=Λ (5—3) 式中B(s)——传递函数G(s)的m 阶分子多项式,s 为复变量; A(s)——传递函数G(s)的n 阶分母多项式 (n ≥m); n p p p ---,,,21Λ—传递函数G(s)的极点,这些极点可能是实数,也可能是复数,对稳定的系统采说,它们都应该有负的实部。 由式(5—1),正弦输入信号u(t)的拉氏变换为(查拉氏变换表) ) )(()(22ωωω ωωj s j s U s U s U -+=+= (5—4)

信号的频域分析及MATLAB实现.doc

《M A T L A B电子信息应用》 课程设计 设计五 信号的频域分析及MATLAB实现 学院: 专业: 班级: 姓名: 学号:

信号的频域分析及MATLAB实现 一、设计目的 通过该设计,理解傅里叶变换的定义及含义,掌握对信号进行频域分析的方法。 二、课程设计环境 计算机 MATLAB软件 三、设计内容及主要使用函数 快速傅里叶变换的应用 1)滤波器频率响应 对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器。其功能就是得到一个特定频率或消除一个特定频率,滤波器是一种对信号有处理作用的器件或电路。主要作用是:让有用信号尽可能无衰减的通过,对无用信号尽可能大的。 滤波器的类型:巴特沃斯响应(最平坦响应),贝赛尔响应,切贝雪夫响应。 滤波器冲激响应的傅里叶变换就是该滤波器的频率响应。

2)快速卷积 卷积定理指出,函数卷积的傅里叶变换是函数傅里叶变换的乘积。即一个域中的卷积相当于另一个域中的乘积,例如时域中的卷积就对应于频域中的乘积。其中表示f 的傅里叶变换。 这一定理对拉普拉斯变换、双边拉普拉斯变换等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。 利用卷积定理可以简化卷积的运算量。对于长度为n 的序列,按照卷积的定义进行计算,需要做2n - 1组对位乘法,其计算复杂度为;而利用傅里叶变换将序列变换到频域上后,只需要一组对位乘法,利用傅里叶变换的快速算法之后,总的计算复杂度为。这一结果可以在快速乘法计算中得到应用。 1. 信号的离散傅里叶变换 有限长序列的离散傅里叶变换公式为: kn N j N n e n x k X )/2(10)()(π--=∑= ∑==1_0)/2()(1)(N n kn N j e k X N n x π MATLAB 函数:fft 功能是实现快速傅里叶变换,fft 函数的格式为: ),(x fft y =返回向量x 的不连续fourier 变换。 若)6 cos()(πn n x =是一个N=12的有限序列,利用MATLAB 计算

用Matlab进行信号与系统的时、频域分析

课程实验报告 题目:用Matlab进行 信号与系统的时、频域分析 学院 学生姓名 班级学号 指导教师 开课学院 日期 用Matlab进行信号与系统的时、频域分析 一、实验目的 进一步了解并掌握Matlab软件的程序编写及运行; 掌握一些信号与系统的时、频域分析实例; 了解不同的实例分析方法,如:数值计算法、符号计算法; 通过使用不同的分析方法编写相应的Matlab程序; 通过上机,加深对信号与系统中的基本概念、基本理论和基本分析方法的理解。 二、实验任务 了解数值计算法编写程序,解决实例; 在Matlab上输入三道例题的程序代码,观察波形图; 通过上机实验,完成思考题; 完成实验报告。 三、主要仪器设备

硬件:微型计算机 软件:Matlab 四、 实验内容 (1) 连续时间信号的卷积 已知两个信号)2()1()(1---=t t t x εε和)1()()(2--=t t t x εε,试分别画出)(),(21t x t x 和卷积)()()(21t x t x t y *=的波形。 程序代码: T=0.01; t1=1;t2=2; t3=0;t4=1; t=0:T:t2+t4; x1=ones(size(t)).*((t>t1)-(t>t2)); x2=ones(size(t)).*((t>t3)-(t>t4)); y=conv(x1,x2)*T; subplot(3,1,1),plot(t,x1); ylabel('x1(t)'); subplot(3,1,2),plot(t,x2); ylabel('x2(t)'); subplot(3,1,3),plot(t,y(1:(t2+t4)/T+1)); ylabel('y(t)=x1*x2'); xlabel('----t/s'); (2)已知两个信号)()(t e t x t ε-=和)()(2/t te t h t ε-=,试用数值计算法求卷积,并分别画出)(),(t h t x 和卷积)()()(t h t x t y *=的波形。 程序代码: t2=3;t4=11; T=0.01; t=0:T:t2+t4; x=exp(-t).*((t>0)-(t>t2)); h=t.*exp(-t/2).*((t>0)-(t>t4)); y=conv(x,h)*T; yt=4*exp(-t)+2*t.*exp(-1/2*t)-4*exp(-1/2*t); subplot(3,1,1),plot(t,x); ylabel('x(t)'); subplot(3,1,2),plot(t,h); ylabel('h(t)'); subplot(3,1,3),plot(t,y(1:(t2+t4)/T+1),t,yt,'--r'); legend('by numberical','Theoretical'); ylabel('y=x*h'); xlabel('----t/s'); (3)求周期矩形脉冲信号的频谱图,已知s T s A 5.0,1.0,1===τ

Matlab对采样数据进行频谱分析

使用Matlab对采样数据进行频谱分析 1、采样数据导入Matlab 采样数据的导入至少有三种方法。 第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。 第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File --> Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。据本人经验,当数据大于15万对之后,读入速度就会显著变慢,出现假死而失败。 第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load 等,如果采样数据保存在txt文件中,则推荐使用 textread命令。如 [a,b]=textread('data.txt','%f%*f%f'); 这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于C语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。强烈推荐! 2、对采样数据进行频谱分析 频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。一般不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析M程序举例如下: clc fs=100; t=[0:1/fs:100]; N=length(t)-1;%减1使N为偶数 %频率分辨率F=1/t=fs/N p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); %上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析 figure(1) plot(t,p); grid on title('信号 p(t)'); xlabel('t') ylabel('p')

Matlab频谱分析程序

Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation (谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。 从数学上看,一个平稳随机过程n x 的power spectrum (功率谱)和correlation sequence (相关序列)通过discrete-time Fourier transform (离散时间傅立叶变换)构成联系。从normalized frequency (归一化角频率)角度看,有下式 ()()j m xx xx m S R m e ωω∞ -=-∞ = ∑ 注:()() 2 xx S X ωω=,其中( )/2 /2 lim N j n n N n N X x e ωω=-=∑ πωπ-<≤。其matlab 近似为X=fft(x,N)/sqrt(N),在下文中()L X f 就是指matlab fft 函数的计算结果了 使用关系2/s f f ωπ=可以写成物理频率f 的函数,其中s f 是采样频率 ()()2/s jfm f xx xx m S f R m e π∞ -=-∞ = ∑ 相关序列可以从功率谱用IDFT 变换求得: ()()()/2 2//2 2s s s f jfm f j m xx xx xx s f S e S f e R m d df f πωπ π ωωπ--= =? ? 序列n x 在整个Nyquist 间隔上的平均功率可以表示为 ()()() /2 /2 02s s f xx xx xx s f S S f R d df f π π ωωπ--= =? ?

利用matlab怎样进行频谱分析、、

利用matlab怎样进行频谱分析 图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数。 这样通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰。另外我还想说明以下几点: 1、图像经过二维傅立叶变换后,其变换系数矩阵表明: 若变换矩阵Fn原点设在中心,其频谱能量集中分布在变换系数短阵的中心附近(图中阴影区)。若所用的二维傅立叶变换矩阵Fn的原点设在左上角,那么图像信号能量将集中在系数矩阵的四个角上。这是由二维傅立叶变换本身性质决定的。同时也表明一股图像能量集中低频区域。 2、变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮,亮度大说明低频的能量大(幅角比较大)。 从计算机处理精度上就不难理解,一个长度为N的信号,最多只能有N/2+1个不同频率,再多的频率就超过了计算机所能所处理的精度范围)X[]数组又分两种,一种是表示余弦波的不同频率幅度值:Re X[],另一种是表示正弦波的不同频率幅度值:Im X[],Re是实数(Real)的意思,Im是虚数(Imagine)的意思,采用复数的表示方法把正余弦波组合起来进行表示,但这里我们不考虑复数的其它作用,只记住是一种组合方法而已,目的是为了便于表达(在后面我们会知道,复数形式的傅立叶变换长度是N,而不是N/2+1)。

信号的频谱分析及MATLAB实现

第23卷第3期湖南理工学院学报(自然科学版)Vol.23 No.3 2010年9月 Journal of Hunan Institute of Science and Technology (Natural Sciences) Sep. 2010信号的频谱分析及MATLAB实现 张登奇, 杨慧银 (湖南理工学院信息与通信工程学院, 湖南岳阳 414006) 摘 要: DFT是在时域和频域上都已离散的傅里叶变换, 适于数值计算且有快速算法, 是利用计算机实现信号频谱分析的常用数学工具. 文章介绍了利用DFT分析信号频谱的基本流程, 重点阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施, 实例列举了MATLAB环境下频谱分析的实现程序. 通过与理论分析的对比, 解释了利用DFT分析信号频谱时存在的频谱混叠、频谱泄漏及栅栏效应, 并提出了相应的改进方法. 关键词: MA TLAB; 频谱分析; 离散傅里叶变换; 频谱混叠; 频谱泄漏; 栅栏效应 中图分类号: TN911.6 文献标识码: A 文章编号: 1672-5298(2010)03-0029-05 Analysis of Signal Spectrum and Realization Based on MATLAB ZHANG Deng-qi, YANG Hui-yin (College of Information and Communication Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China) Abstract:DFT is a Fourier Transform which is discrete both in time-domain and frequency-domain, it fits numerical calculation and has fast algorithm, so it is a common mathematical tool which can realize signal spectrum analysis with computer. This paper introduces the basic process of signal spectrum analysis with DFT, emphasizes the causes of error producing in spectrum analysis process and the main ways to decrease the analysis error, and lists the programs of spectrum analysis based on MATLAB. Through the comparison with the theory analysis, the problems of spectrum aliasing, spectrum leakage and picket fence effect are explained when using DFT to analyze signal spectrum, and the corresponding solution is presented. Key words:MATLAB; spectrum analysis; DFT; spectrum aliasing; spectrum leakage; picket fence effect 引言 信号的频谱分析就是利用傅里叶分析的方法, 求出与时域描述相对应的频域描述, 从中找出信号频谱的变化规律, 以达到特征提取的目的[1]. 不同信号的傅里叶分析理论与方法, 在有关专业书中都有介绍, 但实际的待分析信号一般没有解析式, 直接利用公式进行傅里叶分析非常困难. DFT是一种时域和频域均离散化的傅里叶变换, 适合数值计算且有快速算法, 是分析信号的有力工具. 本文以连续时间信号为例, 介绍利用DFT分析信号频谱的基本流程, 重点阐述频谱分析过程中可能存在的误差, 实例列出MATLAB 环境下频谱分析的实现程序. 1 分析流程 实际信号一般没有解析表达式, 不能直接利用傅里叶分析公式计算频谱, 虽然可以采用数值积分方法进行频谱分析, 但因数据量大、速度慢而无应用价值. DFT在时域和频域均实现了离散化, 适合数值计算且有快速算法, 是利用计算机分析信号频谱的首选工具. 由于DFT要求信号时域离散且数量有限, 如果是时域连续信号则必须先进行时域采样, 即使是离散信号, 如果序列很长或采样点数太多, 计算机存储和DFT计算都很困难, 通常采用加窗方法截取部分数据进行DFT运算. 对于有限长序列, 因其频谱是连续的, DFT只能描述其有限个频点数据, 故存在所谓栅栏效应. 总之, 用DFT分析实际信号的频谱, 其结果必然是近似的. 即使是对所有离散信号进行DFT变换, 也只能用有限个频谱数据近似表示连续频 收稿日期: 2010-06-09 作者简介: 张登奇(1968? ), 男, 湖南临湘人, 硕士, 湖南理工学院信息与通信工程学院副教授. 主要研究方向: 信号与信息处理

MATLAB关于FFT频谱分析的程序

MATLAB关于FFT频谱分析的程序 %***************1.正弦波****************% fs=100;%设定采样频率 N=128; n=0:N-1; t=n/fs; f0=10;%设定正弦信号频率 %生成正弦信号 x=sin(2*pi*f0*t); figure(1); subplot(231); plot(t,x);%作正弦信号的时域波形 xlabel('t'); ylabel('y'); title('正弦信号y=2*pi*10t时域波形'); grid; %进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换 figure(1); subplot(232); plot(f,mag);%做频谱图 axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值');

title('正弦信号y=2*pi*10t幅频谱图N=128'); grid; %求均方根谱 sq=abs(y); figure(1); subplot(233); plot(f,sq); xlabel('频率(Hz)'); ylabel('均方根谱'); title('正弦信号y=2*pi*10t均方根谱'); grid; %求功率谱 power=sq.^2; figure(1); subplot(234); plot(f,power); xlabel('频率(Hz)'); ylabel('功率谱'); title('正弦信号y=2*pi*10t功率谱'); grid; %求对数谱 ln=log(sq); figure(1); subplot(235); plot(f,ln);

实验三 利用MATLAB进行系统频域分析

一.实验目的 1.学会用MATLAB 求解周期信号和非周期信号的频谱; 2.学会用MATLAB 分析LTI 系统的频域特性 3.学会用MATLAB 分析LTI 系统的输出响应 二、实验原理 1.连续信号频谱 (1)连续周期信号频谱 周期信号f(t),周期为T1,基波角频率为ω1=2π/T1,可展开成三角形式: 011011 1 ()[cos()sin()]cos() n n n n n n f t a a n t b n t c c n t ωωω?∞∞ ===++=++∑∑ 直流分量:01 00 11()t T t a f t dt c T += =? 余弦分量的幅度:01 112()cos()t T n t a f t n t dt T ω+=? 正弦分量的幅度:01 1 12()sin()t T n t b f t n t dt T ω+=? n c = 1tan ()n n n b a φ-=- 指数形式傅里叶级数: 1j 1()()e n t n f t F n ωω∞ =-∞ = ∑ ()11j j 1101()e d ()e n T n t F n f t t F n T φωωω-= =? 吉布斯现象: 对于具有不连续点的函数,当取的傅里叶级数的项数N 越多,所合成的波形SN(t)中出现的峰起越靠近f(t)的不连续点。当项数N 很大时,该峰起值趋于一个常数,大约为总跳变值的9%,并从不连续点开始起伏振荡的形式逐渐衰减下去-吉布斯现象。 (2)非周期信号频谱 连续非周期信号的频谱用频谱密度函数表示 []j ()()e d ()t F f t t F f t ωω∞ --∞ ==? ()~:F ωω幅度频谱 ()~:φωω相位频谱 MATLAB 的symbolic Math Toolbox 提供了直接求解傅里叶变换及逆变换的函数fourier()和ifourier()两者的调用格式如下: Fourier 变换的调用格式 F=fourier(f):它是符号函数f 的fourier 变换默认返回是关于ω的函数。 F=fourier(f,v):它返回函数F 是关于符号对象v 的函数,而不是默认的w,()()jvx F v f x e dx +∞ --∞ = ? Fourier 逆变换的调用格式 f=ifourier(F):它是符号函数F 的fourier 逆变换,默认的独立变量为w,默认返回是关于x 的函数。 F=ifourier(f,u):它的返回函数f 是u 的函数,而不是默认的x 。 注意:在调用函数fourier()及ifourier()之前,要用syms 命令对所用到的变量(如t,u,v,w )进行说明,即将这些变量说明成符号变量。 用MATLAB 符号算法求傅里叶变换有一定局限,当信号不能用解析式表达时,会提示出错,这时用MATLAB 的数值计算也可以求连续信号的傅里叶变换,计算原理是 ∑? ∞ -∞ =-→-∞ ∞ -==n n j t j e n f dt e t f j F ττωτ ωτω)(lim )()(0 当 τ足够小时,近似计算可满足要求。若信号是时限的,或当时间大于某个给定值时,信号已衰减的很厉害,可 以近似地看成时限信号时,n 的取值就是有限的,设为N ,有

噪声中正弦信号的经典法频谱分析

实验报告 一、实验名称 噪声中正弦信号的经典法频谱分析 二、实验目的 通过对噪声中正弦信号的经典法频谱分析,来理解和掌握经典谱估计的知识,以及学会应用经典谱估计的方法。 三、基本原理 1.周期图法:又称直接法。把随机信号)(n x 的N 点观察数据)(n x N 视为一能量有限信号,直接取)(n x N 的傅里叶变换,得)(jw N e X ,然后再取其幅值的平方,并除以N ,作为对)(n x 真 实的功率谱)(jw e P 的估计,以)(?jw PER e P 表示用周期图法估计出的功率谱,则2)(1)(?w X N w P n PER =。 2.自相关法:又称为间接法功BT 法。先由)(n x N 估计出自相关函数)(?m r ,然后对)(?m r 求傅里叶变换得到)(n x N 的功率谱,记之为)(?w P BT ,并以此作为对)(w P 的估计,即1,)(?)(?-≤=--=∑N M e m r w P jwm M M m BT 。 3.Bartlett 法:对L 个具有相同的均值μ和方差2σ的独立随机变量1X ,2X ,…,L X ,新随机变量L X X X X L /)(21+++= 的均值也是μ,但方差是L /2σ,减小了L 倍。由此得 到改善)(?w P PER 方差特性的一个有效方法。它将采样数据)(n x N 分成L 段,每段的长度都是M ,即N=LM ,第i 段数据加矩形窗后,变为L i e n x M w x M n jwn i N I PER ≤≤=∑-=-1,)(1)(?2 10 。把)(?w P PER 对应相加,再取平均,得到平均周期图2 1110 )(1)(?1)(∑∑∑==-=-==L i L i M n jwn i N i PER PER e n x ML w P L w P 。 4.Welch 法:它是对Bartlett 法的改进。改进之一是,在对)(n x N 分段时,可允许每一段的数据有部分的交叠。改进之二是,每一段的数据窗口可以不是矩形窗口,例如使用汉宁窗或汉明窗,记之为)(2n d 。这样可以改善由于矩形窗边瓣较大所产生的谱失真。然后按Bartlett

matlab频域分析.doc

MATLAB 频域分析实验 1. 给定系统 ()8.02.02+-=z z z H (a) 画出系统极零图; 由题知,该系统零点为Z 1=0,极点为P 1=-√(8/10)j 和P 2=√(8/10)j 。 由matlab 作出极零图如下: 代码如下: b=[0,-0.2]; a=[1,0,0.8]; zplane(b,a); (b) 求出并绘出系统幅频响应与相频响应; 由题知,)8.0)(8.0(2.0)(j z j z z z H -+-=,用e jw 替换z 后得到 )8.0)(8.0(2.0)(j e j e e e H jw jw jw jw -+-=;利用matlab 做出幅频响应和相频响应如下:

代码如下: clear all ; b=[0,-0.2]; a=[1,0,0.8]; [H,w]=freqz(b,a,512,1); Hr=abs(H); Hphase=angle(H)*180/3.1415;Hphase=unwrap(Hphase); subplot(221);plot(2*w,Hr);grid on ; xlabel( '\omega/\pi');ylabel('幅频响应 '); subplot(222);plot(w,Hphase);grid on ; xlabel( '\omega/\pi');ylabel('相频响应/°'); (c) 求出并绘出系统的单位样值响应; 由(b) 中结果,利用matlab 中的iztrans 命令求得 )()21sin(8.08 .041-)(n u n n h n π=,在matlab 中做出单位样值响应如下:

用MATLAB实现线性系统的频域分析分析解析

实验二用MATLAB实现线性系统的频域分析 [实验目的] 1.掌握MATLAB平台下绘制典型环节及系统开环传递函数的Bode图和Nyquist图(极坐标图)绘制方法; 2.掌握利用Bode图和Nyquist图对系统性能进行分析的理论和方法。 [实验指导] 一、绘制Bode图和Nyquist图 1.Bode图绘制 采用bode()函数,调用格式: ①bode(sys);bode(num,den); 系统自动地选择一个合适的频率范围。 ②bode(sys,w); 其中w(即ω)是需要人工给出频率范围,一般由语句w=logspace(a,b,n)给出。logspace(a,b,n):表示在10a到10b之间的 n个点,得到对数等分的w值。 ③bode(sys,{wmin,wmax}); 其中{wmin,wmax}是在命令中直接给定的频率w的区间。 以上这两种格式可直接画出规范化的图形。 ④[mag,phase,ω]=bode(sys)或[m,p]=bode(sys) 这种格式只计算Bode图的幅值向量和相位向量,不画出图形。 m为频率特性G(jω )的幅值向量; p为频率特性G(jω )的幅角向量,单位为角度(°)。 w为频率向量,单位为[弧度]/秒。 在此基础上再画图,可用: subplot(211);semilogx(w,20*log10(m) %对数幅频曲线 subplot(212);semilogx(w,p) %对数相频曲线 ⑤bode(sys1,sys2,…,sysN) ; ⑥bode((sys1,sys2,…,sysN,w); 这两种格式可在一个图形窗口同时绘多个系统的bode图。 2. Nyquist曲线的绘制

实验:典型信号频谱分析

实验3.2 典型信号频谱分析 一、 实验目的 1. 在理论学习的基础上,通过本实验熟悉典型信号的波形和频谱特征,并能够从信号频谱中读取所需的信息。 2. 了解信号频谱分析的基本方法及仪器设备。 二、 实验原理 1. 典型信号及其频谱分析的作用 正弦波、方波、三角波和白噪声信号是实际工程测试中常见的典型信号,这些信号时域、频域之间的关系很明确,并且都具有一定的特性,通过对这些典型信号的频谱进行分析,对掌握信号的特性,熟悉信号的分析方法大有益处,并且这些典型信号也可以作为实际工程信号分析时的参照资料。本次实验利用DRVI 快速可重组虚拟仪器平台可以很方便的对上述典型信号作频谱分析。 2. 频谱分析的方法及设备 信号的频谱可分为幅值谱、相位谱、功率谱、对数谱等等。对信号作频谱分析的设备主要是频谱分析仪,它把信号按数学关系作为频率的函数显示出来,其工作方式有模拟式和数字式二种。模拟式频谱分析仪以模拟滤波器为基础,从信号中选出各个频率成分的量值;数字式频谱分析仪以数字滤波器或快速傅立叶变换为基础,实现信号的时—频关系转换分析。 傅立叶变换是信号频谱分析中常用的一个工具,它把一些复杂的信号分解为无穷多个相互之间具有一定关系的正弦信号之和,并通过对各个正弦信号的研究来了解复杂信号的频率成分和幅值。 信号频谱分析是采用傅立叶变换将时域信号x(t)变换为频域信号X(f),从而帮助人们从另一个角度来了解信号的特征。时域信号x(t)的傅氏变换为: 式中X(f)为信号的频域表示,x(t)为信号的时域表示,f 为频率。 3. 周期信号的频谱分析 周期信号是经过一定时间可以重复出现的信号,满足条件: dt e t x f X ft j ?+∞ ∞--=π2)()(

相关文档
相关文档 最新文档