|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
设矩形脉冲
是脉冲响应
的LTI系统的输入,求输出 y(n).$ v! l3 A- i4 m" g1 t! ]$ y
/ t& B( @0 ]8 X- F/ A3 `, X0 w9 p
下面的脚本中用到了一个自定义的函数,也就是两个信号相加的函数:" m; p; c$ ^9 n k- D* v' \
+ j7 e/ y: }5 z! v( X! Ufunction [y,n] = sigadd(x1,n1,x2,n2); [% P7 V, p9 p5 R; q
% implements y(n) = x1(n) + x2(n)3 u. K% y5 V* u1 `- u
% [y,n] = sigadd(x1,n1,x2,n2)
1 A+ {" u6 p4 b+ ?6 |%——————————————————————————————
! `% M6 h5 Q) }' d/ s8 x% y = sum sequence over n, which includes n1 and n2
: k: i9 |' I& b! u& v8 [% x1 = first sequence over n1: t$ }# |7 u, n# } [
% x2 = second sequence over n2( n2 can be different from n1)0 t; x1 \( c6 f# Y, a
%
e" R4 Z- i2 O6 a; qn = min( min(n1), min(n2) ):max( max(n1), max(n2) ); %duration of y(n)& Y4 y3 b$ \( P
y1 = zeros(1,length(n)); y2 = y1; %initialization
^/ e; Z' J7 y& k: K) x" Xy1( find( ( n >= min(n1) )&( n <= max(n1) ) == 1 ) ) = x1; %x1 with duration of y1
4 N: V! E; [0 zy2( find( ( n >= min(n2) )&( n <= max(n2) ) == 1 ) ) = x1; %x2 with duration of y2
5 F8 |6 G8 f, T. S1 fy = y1 + y2;; _: N2 H3 L4 ?0 i. R1 h8 ~* ^
% w! a: Q0 X5 _) G& d
; \/ _# ~2 M, K6 d" C
直接给出MATLAB脚本:
# d3 D) p# O( [2 K/ P) s9 }6 w& g! k1 D- g7 D: V/ B
clc/ f; o( y6 k" X+ r1 q- _0 k5 \! M8 x$ o
clear. v! K$ M: @; I. F5 h2 O' q6 A9 Q1 ~: V
close all8 Y- ]4 g8 f, v! V* a
- I/ y8 M- Z8 i- S# ~& n# q( p% help stepseq U$ H+ a& {* y1 Z
% generate x(n) = u(n - n0); n1 <= n <= n2
; {- ` [1 [2 _, g+ E, Y6 Z2 u; b% _____________________________________________. t ^6 S: g r" M) S6 L
% [x,n] = stepseq(n0, n1, n2);
) C9 i0 H5 A: R. w& J: z9 R[u1,n1] = stepseq(0,-5,45);
5 P V! v' `" u[u2,n2] = stepseq(10,-5,45);
* z, L/ a! R. c3 z3 G. y
b p* k9 Q. }' k' P% D& y% generate signal x(n)
+ ~" ?1 z& G+ c$ ]* Z! Z[x,n] = sigadd(u1,n1,-u2,n2);
3 F0 F9 J6 z: [+ b+ e
7 V6 }2 A7 |5 V, f% generate signal h(n)
3 K; {4 b/ {3 w4 w: Rm = -5:45;
( W9 O, I8 x2 w! }/ D9 @: sh = ( (0.9).^m ).* u1;
( j; g) O v9 @, `/ L, m5 X9 u' f5 Z$ F( H
( d* Q% Q* R+ c4 t" @' U9 C& r% the convolution of x(h) and h(n). c; v0 o( l, `7 w& d
y = conv(x,h);0 O$ u9 W3 _' C9 |
% ensure the index
7 Z( ^9 z* m b# P% b( @6 Inyb = n(1)+ m(1);0 S* D6 p J2 O5 }+ z
nye = n(length(x)) +n(length(h));
3 G; S7 `# ?: Z9 `/ Dny = nyb:nye;
4 _0 d) G: t4 @0 B. v: E: L" z3 ~% d _' l! ?
" l' m( j/ M: t" R# ?7 O7 Z8 |
subplot(3,1,1);- m N+ H4 O3 O4 Z
stem(n,x);
6 L2 R! F$ a9 [$ ?" p9 C1 Btitle('x(n)');
$ j3 G0 s* E8 F& h; L5 g) Dxlabel('n')
# [, i5 U* p0 s% e- C. N' O8 o1 C
subplot(3,1,2);. O( X. j' Q' R% r4 G
stem(m,h);
- U/ V0 o# R- @0 m% _6 U& ?0 e5 N4 Utitle('h(n)');
5 B+ A3 M) P! s, P# V/ W% D; uxlabel('n')# c/ h: c9 A' c$ i* F
* s0 P7 L- h! R2 i" r7 D9 Y
subplot(3,1,3);4 W: K0 t: f/ m/ T/ }; K
stem(ny,y); _ L M4 U0 o5 }4 e; Y
title('the conv of x(n) and h(n)');
* x: p# y# p3 T, ]xlabel('n')
9 w. I$ T/ B. A5 e1 @# J6 sxlim([-5,45]);# J* r0 I) h. m% x% g2 a) q8 Y
2 p* G! a( g! o& S o$ z3 S. S7 N2 J, X+ E
$ `3 B) b6 ]5 G% J) T/ `. h
2 ?. d5 e6 R, w D: V( w7 o
* ^, u% U" o9 ?) ]# Z: g. S" \* \/ H! g$ j5 v {' c# S+ U
( F0 @3 \$ C' [$ T8 W" s+ }& ~2 A
- A, f+ H" Y! S/ q, C8 g/ c! @ I; Q0 | |
|