|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
设矩形脉冲
是脉冲响应
的LTI系统的输入,求输出 y(n).
/ p x$ P8 F8 F0 H; b
5 z/ }" R! k# E( l下面的脚本中用到了一个自定义的函数,也就是两个信号相加的函数: G: S- Q4 a, O6 j+ u
6 g* S% S. b/ Y! ?function [y,n] = sigadd(x1,n1,x2,n2)
/ l" x0 v8 {2 A5 A0 k" g% implements y(n) = x1(n) + x2(n)
* R) n$ Y0 ~- g# ~! F% [y,n] = sigadd(x1,n1,x2,n2)
D- [' q) a! {) M+ o%——————————————————————————————2 n1 t0 W/ Z" Y
% y = sum sequence over n, which includes n1 and n2
! F3 {7 `9 R! r5 O% x1 = first sequence over n1; J' |# K+ J5 T8 s
% x2 = second sequence over n2( n2 can be different from n1)
) ^' X7 X, H0 m%: ?5 s- J' v& Q! `
n = min( min(n1), min(n2) ):max( max(n1), max(n2) ); %duration of y(n). U9 u# u! k% k- D- A7 s
y1 = zeros(1,length(n)); y2 = y1; %initialization
7 t! i: S% W r5 ty1( find( ( n >= min(n1) )&( n <= max(n1) ) == 1 ) ) = x1; %x1 with duration of y1
) b( ]" |+ g* `- m# k& s+ sy2( find( ( n >= min(n2) )&( n <= max(n2) ) == 1 ) ) = x1; %x2 with duration of y2
- ?4 T, {1 M8 ly = y1 + y2;2 W$ i7 F9 A6 G7 ]& e6 [
+ f) ?" x0 u2 n( K0 t2 q& n" @+ D j/ i& q* h$ o: F3 W: t: H; v; S
直接给出MATLAB脚本:, i" ?# Z/ N3 l- Y& D
" V/ d! D* E: n
clc
" M1 @# M3 B) O5 x( }0 T2 ^" Wclear
* d1 n9 h: B- P) R; Bclose all' E* X. n" I- e* _- w5 n: e9 U
6 ?+ k* l7 ^4 D- {9 o
% help stepseq
8 r3 Y4 u7 a4 m6 y/ D% generate x(n) = u(n - n0); n1 <= n <= n2
2 @- g' ^$ @- O. X$ n, z2 r1 y% _____________________________________________( g q; T8 ^" b
% [x,n] = stepseq(n0, n1, n2);
+ u% f; ]' h i$ k% n' r2 i, W[u1,n1] = stepseq(0,-5,45);" G& u' M8 ^( c
[u2,n2] = stepseq(10,-5,45);1 R* [/ U, ~2 k3 `% B
4 \3 q5 u1 q4 B) n% generate signal x(n); f% r/ R' T5 |0 \
[x,n] = sigadd(u1,n1,-u2,n2);0 v+ n8 e3 s( U j6 a$ x: l- X* t
5 z# c# l/ t7 u" s c' K D. l" m% generate signal h(n)
u7 q! \0 z* ^6 q3 zm = -5:45;( t& C7 K$ c9 L4 W! w* N
h = ( (0.9).^m ).* u1;
- U8 [! g5 a$ j2 m! [
: q" W* \, ]6 o4 q) p: F" I) `
" c2 `; |+ [+ d$ R6 E6 W% the convolution of x(h) and h(n)
# u( j- N/ E0 py = conv(x,h);' }/ V7 E" }3 E! R+ Q: `% E9 `
% ensure the index
. w: \# J2 Y) l' j7 b1 vnyb = n(1)+ m(1);
2 K& P5 O v3 x( b. i( c5 N) l0 fnye = n(length(x)) +n(length(h));2 u: R$ s" ?+ t$ o/ P
ny = nyb:nye;- y) r( s4 x9 X9 R; P) _
# N8 v$ d$ R, [) R( _* Y4 R$ h: o# k* B( r
subplot(3,1,1);) C! F' O0 K5 }
stem(n,x);
; B" y5 F0 f" }, n: c8 b5 @title('x(n)');
7 K! d; @) A6 a) txlabel('n')
" J6 X& q F8 f+ ^5 a+ K2 m4 x, ^
subplot(3,1,2);/ D, D) r% V o2 \" Y8 Q) C+ \
stem(m,h);. Q B7 H- y2 R6 O a
title('h(n)');
* y* s! v. H0 {% T! G3 h' q) n5 t6 Oxlabel('n')
+ h1 Y7 ^' Y* f) Q2 O* g$ B$ m1 K6 b( f' W2 @# F+ {$ F; c& v
subplot(3,1,3);
, g: i# |7 ^9 y. E8 Qstem(ny,y);
- p' K- K( _: V- P9 `4 w) Dtitle('the conv of x(n) and h(n)');
, u, ] ?' l& b+ p* h; c. \7 Qxlabel('n')
6 |- F+ O1 V9 x% l, u$ Axlim([-5,45]);% C& f. n: q4 `+ f/ _1 M6 K9 K
# W$ C0 A5 X% F( ]
# F: c" [7 S8 S) {) ]1 m! }
$ C! d X+ ]$ k+ K$ B, N
0 {; O. c8 q3 M" }9 R# T# r# W! j; n7 J5 X4 U; j! R2 n
5 M7 a" T/ z5 _/ h4 p3 X! j( r w8 y
! e; q3 r( K d, K/ Q! e6 W; O& w3 I1 `+ P# Y6 D/ m
|
|