找回密码
 注册
关于网站域名变更的通知
查看: 671|回复: 1
打印 上一主题 下一主题

使用 MATLAB 求某输入的稳态响应

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-26 11:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

' Y$ d) o5 T* b7 C; N8 Y稳态响应是在本科,更确切地说是在考研时候经常接触的,例如电路基础、信号与系统中就常有稳态响应这个词。
% N+ c4 f/ E, f" {7 S1 y
# X/ p, H+ Q, x7 |2 I8 c今天在补习MATLAB数字信号处理时,突然碰到稳态响应,一脸懵逼,感觉并不理解什么是稳态响应了,也许之前也没有懂过吧。
3 r$ o9 q9 |! N  |  I
: o7 R4 l6 r! M, h! x' k百度百科对概念进行了解释:
7 C2 g" P8 Z' P
2 k) {" g0 _7 l, C) t4 `稳态响应是指当足够长的时间之后,系统对于固定的输入,有了一个较为稳定的输出。" t5 `$ ^0 f: h! [8 h  {  I
* Z, w: Y3 S9 Q6 z3 k) ?9 ]9 O7 p
在某一输入信号的作用后,时间趋于无穷大时系统的输出状态称为稳态。! M! ?% \9 o9 B
7 x) e6 [5 Q5 m4 c# e9 o" Y3 Q+ E
下面就一起来体会这个稳态响应吧。# y5 k' s  ]  y) L, ^
7 @% ~' p- C9 ]8 H5 n# r7 P% J
! x& g0 W" D( ^
LTI 系统对复指数信号的响应
- N7 ?1 A! o2 h" N+ v0 h好久之前写过的一篇上:线性时不变系统(LTI)对复指数信号的响应(数字信号处理的特征值与特征函数)
( Z$ o9 X# {( D" v" {1 j& i: j) H4 s
8 b5 e1 Y1 y7 ]1 p+ S; a就已经说明了线性时不变系统对于复指数信号的响应,简单地说,输入序列经过线性时不变系统之后的响应就是在该频率处的系统频率响应乘以该复指数信号。
; E3 D9 [% J( L+ a5 y$ p# N3 I. ^2 H( G! r8 ^, _/ P- d* {8 ?% A
即,如果系统的频率响应为 经过系统的响应如下:1 q( U+ P/ E6 }" ^( b7 ~
1 b1 g+ S5 E4 {" N1 ^. p

5 d8 M! k' @6 t; a
# g% }0 V3 U* O+ V3 e7 B对正弦序列的响应2 u2 p+ @  M2 u& ^) z( z% `0 f
设输入序列为
3 ~/ g* X% g( R
. s/ c3 J$ w$ r" [) P9 R- r系统的频率响应为:
" X  S4 ^7 V, W  q, Z9 J# p$ v! z+ q  b$ Q( j
正弦序列可以表示成复指数序列之和,这样就可以利用LTI系统对复指数序列的响应,求得LTI系统对正弦序列的响应。如下:; L( {" ?8 t  Y1 g- ^, |$ q# K1 e
( Q3 I5 Q4 ^/ w5 @. W

+ A7 a: H; Q: L0 F3 _8 L
! i# U/ h' W  y这就得到了如下结论:: o' h8 i5 F% s# C% s2 y8 `
9 l9 R: N5 t3 w
LTI系统对正弦序列的响应是相同频率w0的另一个正弦序列,其幅值被 所倍增,而相位则相移 ,即
. J! i: Q$ v' q6 I, U/ x0 F& j+ b4 Z/ \( W

# l3 h" t( x. Q8 m
# I! a3 x0 E" Q" R( T
! m1 q: e, e" l" }
3 S$ Q2 N# O$ }1 }' w* r3 S6 |这个响应称为稳态响应,用 表示。$ P- M7 G9 T9 u( w

2 i2 l8 y4 E; Y. O* }0 P- D) G案例1
6 i, y9 ~4 l, l* P( ~0 g& ]# F8 i
8 ?7 G' I8 f- q& C求由脉冲响应 所表征的系统频率响应 ,画出幅度和相位响应。
* M6 z3 Z& i, j& s6 J
3 W+ {- o& ~, f题解:
3 h5 k" x9 v3 J( ]
3 c. x8 k$ s. c很简单,根据DTFT的公式就可以直接求出该脉冲响应的离散时间傅里叶变换:
# A& ~; a8 X4 q4 D, ^+ x4 V; z/ y9 n, r# i6 ^2 M/ y

) d7 a, i5 M+ A5 T: b/ A! C
5 L+ a, x. W% Z0 j. d) nMATLAB脚本如下:
9 T: H# n4 R+ Z- u- r' ~% S4 q% l4 T6 X- @3 }$ u2 P. J
  • clc
  • clear
  • close all
  • k = 0:500;
  • w = (pi/500)*k;
  • X = exp(j*w)./( exp(j*w) - 0.9*ones(1,501) );
  • magX = abs(X);
  • angX = angle(X);
  • realX = real(X);
  • imagX = imag(X);
  • subplot(2,1,1);
  • plot(w/pi,magX);
  • title('Magnitude Part');
  • xlabel('w/pi');ylabel('Magnitude');
  • grid
  • subplot(2,1,2);
  • plot(w/pi,angX);
  • title('Angle Part');
  • xlabel('w/pi');ylabel('Radians');
  • grid3 ~; f0 G1 T# P4 |. V3 n% M
   
& N. q! @& g* @' ?; ^2 ^2 H% M" @
+ @8 i0 J& l- l( s4 ]  f  J . i/ d. p# C+ B& m
) D% a8 M& f5 F/ L( u
& I3 [2 T, I" {1 s
系统的频率响应求出来了,那么现在的这个案例就是给定一个输入,求其稳态响应。: k& e5 z2 h* k) ?
" N9 a* |8 n, a" x
案例2
% N. i, e+ G, I( {0 z6 j: z6 H/ b
案例1的系统,输入是0.1u(n),求稳态响应
* o% U0 \, d. h- N8 Y/ }6 {/ Y4 s; `, ~7 G
题解:5 j! I/ q! }. ]% K7 f/ X

8 q) C3 ]6 M  `1 n& j, \) D在稳态,输入是一常数序列(或者 的正弦序列),然后输出是:
' e' t1 `- k5 a: Q% F9 L6 z1 d$ X
4 I; e; p" u2 a$ K6 s$ ~1 f 1 p5 N' l0 ?- ]2 f; C$ K

& n3 |* ^( G% u6 T) n3 T# _) s( ?$ C' H' q
5 X! f, y1 l3 r8 f8 O) s9 D+ h' W
案例3
1 ?( ]' ~: Z& [6 t7 B; ^9 j. t1 F+ ~4 e
一LTI系统由下面的差分方程表征:: r0 M7 O8 |) i% y, E2 f: E

8 V% f, W3 H. u$ n! L) q* W5 `- Y, Jy(n)=0.8y(n-1)+x(n)
1 _" W$ P, G  U! S# O: n' y% e  I1 G+ J5 \, t
1.求频率响应
, ~, o3 }. T1 K( Y$ b) y; b0 K  x% x$ d1 @+ U$ x
2.对输入 计算并画出稳态响应 $ p  Y% S0 K. X( x. c9 \1 }
. a3 S3 p) r& `  t7 N- c. P
题解:
2 S# V  [* r& L
! D/ E* a# a( H4 U/ |8 ^4 i6 T1.由差分方程求解频率响应太好求了,分子分母系数都给出了,可以直接写出频率响应,如果在z变换中成为有理转移函数。
7 j7 y0 u* V% j* m: M, N  _; S' b" ]1 ]% l# i" n
这里直接给出频率响应:
  p& z) [& [& D2 C8 _
2 X$ y- L: Z, g& D 2 c% ?! @) k, o3 Y4 a7 ^9 X
0 j* B3 F' Y& l) D
2.在稳态下,输入是 ,其频率为 ,系统的频率响应应该是:
' Y; V' z5 ^: A. ^6 F! R. _; b$ _
) h6 Q6 G* H' h9 }) m
, }: |/ }3 y& w: S# P: a( ?; N+ E7 n  a7 F1 [
因此,
* G% q# @9 F$ m  G! R: C& F' ]
4 H# j# p$ ~( o2 q, ?; w% k+ @5 v8 d也就是说,在输出端该正弦被放大了4.0928倍,移位了3.42个样本。
& v" F! b. \' L* l/ m& w8 ], G0 \5 v+ d, e! `
下面用MATLAB脚本验证:
$ J# e/ L6 _9 G
) r- y& ]- T5 A  \! p9 G
  • clc
  • clear
  • close all
  • b = 1;
  • a = [1,-0.8];
  • n = [0:100];
  • x = cos(0.05*pi*n);
  • y = filter(b,a,x);
  • subplot(2,1,1)
  • stem(n,x);
  • title('Input sequence')
  • xlabel('n');ylabel('x(n)');
  • subplot(2,1,2)
  • stem(n,y);
  • title('Output sequence');
  • xlabel('n');ylabel('y(n)');+ L4 [" y" o& h% E" T& y5 Q! H
   
; \$ N7 r6 y- W! f4 S8 b4 }. U0 }. d. C  U: R

0 M/ x* K( y5 k, k0 `9 v" p% J  l! g& d$ A" }2 g  }9 e

' u$ x$ q# @* `  G) {3 y6 g2 {可见,幅度和相位都变化了。" \; i2 u! e4 ]# [

( {; w, n1 K" g* K5 m$ m) ]# b2 P+ L最后,关于filter函数的介绍见:* j- P5 W% p4 z

$ H: d; [" [6 u: ]MATLAB之filter 函数介绍(一维数字滤波器)7 W$ o, m' H' @' i) }/ G1 b. B

% N5 W4 i. Z7 L) a
0 m  p1 ]0 o. {& H! J

该用户从未签到

2#
发表于 2021-4-26 13:11 | 只看该作者
使用 MATLAB 求某输入的稳态响应
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-20 04:50 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表