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

两个序列的卷积和运算的MATLAB实现(1)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-6-1 14:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
设矩形脉冲 是脉冲响应 的LTI系统的输入,求输出 y(n).
. y" Q* N  A2 Z2 j
0 N8 z$ Z) [: j; J0 @下面的脚本中用到了一个自定义的函数,也就是两个信号相加的函数:0 L+ w1 ]) q: F/ x1 ~

' I; n/ [  e9 ]6 @+ D# u/ z, yfunction [y,n] = sigadd(x1,n1,x2,n2)  H6 _/ K; g' }2 @, J
% implements y(n) = x1(n) + x2(n)
+ d$ U9 z7 I. V8 t, Y# @% [y,n] = sigadd(x1,n1,x2,n2)  D8 j' O/ m! Q  o- f8 q& |
%——————————————————————————————
+ a1 `* k& m" j) }  w% y = sum sequence over n, which includes n1 and n2/ R, O7 f) k1 Y* Y* D( r3 x' V
% x1 = first sequence over n1
4 v" ^0 j  C, Z* I% x2 = second sequence over n2( n2 can be different from n1)4 t6 t1 r% C. M/ @
%
# e/ j' a  ^$ Y6 `1 T0 u2 kn = min( min(n1), min(n2) ):max( max(n1), max(n2) ); %duration of y(n)
& A# h$ W8 r  j6 Q5 ]" h* ty1 = zeros(1,length(n)); y2 = y1; %initialization# \4 t1 Z; O" d- E& |
y1( find( ( n >= min(n1) )&( n <= max(n1) ) == 1  )  ) = x1; %x1 with duration of y1" _' w. i  R, f9 c
y2( find( ( n >= min(n2) )&( n <= max(n2) ) == 1  )  ) = x1; %x2 with duration of y2: x9 V9 s  p. v5 J3 B" F- c8 T
y = y1 + y2;: Z/ l, Q5 }1 |$ {2 I# \5 a

* v0 g# ?! v4 J4 w
4 `- y) p/ B5 N3 N( @" W: u直接给出MATLAB脚本:
1 O: t: `& N  Y3 S
0 ]( ?+ w5 W2 o  ?; Hclc
1 d' a) I% a" a, d9 sclear) {$ n1 Y1 _) {# `* V3 K6 B
close all
9 i1 ~2 B. T* L. ]
5 I: Q  M: ~. u% ~& e  }% help stepseq
5 p! v3 }4 v; e. l%   generate x(n) = u(n - n0); n1 <= n <= n2* f1 c" U6 Y# j/ ]4 c7 E2 {+ S9 L
%  _____________________________________________
) B8 Q6 j) g0 m  K%  [x,n] = stepseq(n0, n1, n2);# v) ^7 h. A. u  e" S. S
[u1,n1] = stepseq(0,-5,45);6 I* n( F" D! V% ^+ t! m$ B
[u2,n2] = stepseq(10,-5,45);8 K% m" I) g7 |
) @7 h* J5 K0 J. L5 Z- i
% generate signal x(n)
2 G: a2 q9 H  l9 {$ X: {' _- x[x,n] = sigadd(u1,n1,-u2,n2);
7 c, h: |, o0 q$ c
) n3 Q1 r' H0 T0 F, U/ r% generate signal h(n)
* q2 v/ p5 P9 gm = -5:45;) l9 M6 m: n2 T, g
h = ( (0.9).^m ).* u1;
" X. u! \- s$ i* E; U$ x" z( L$ F9 J2 \, t, F* |1 G3 g; v8 w. y; M
2 k' v! o' ^9 X  f* z. i- ]
% the convolution of x(h) and h(n)
" E% @" t% k: s4 C3 g5 ty = conv(x,h);
( P/ U  g2 N0 t  j+ i3 j% ensure the index" d3 M9 e  c8 m" a& L+ F
nyb = n(1)+ m(1);
) B$ R8 K; o/ h5 x* b' R- ?& B& P. Fnye = n(length(x)) +n(length(h));
- p: K6 w! Y  B7 J, }/ Yny = nyb:nye;$ P4 |+ Z5 F; L* x0 N" H
+ ~3 |; F# B& H+ F  L; h+ b

9 N$ X% O# ]+ k$ E+ ssubplot(3,1,1);4 x  u7 G0 s) h0 T
stem(n,x);& y9 M3 J1 d: h- e! ?+ L* n' C) U1 x
title('x(n)');
0 ?# u* b* r  |; q  \9 e0 w% `xlabel('n')4 @2 g0 O/ J3 d0 V; p, w% Y
/ K: w0 O2 k9 u
subplot(3,1,2);7 O6 t0 @1 y  i; M/ L2 F
stem(m,h);
0 a4 g) A: [' N" x; y4 Ytitle('h(n)');
* k1 m2 W1 ^6 M1 J1 mxlabel('n')
' i) \. u  t( p! e0 ?5 A
# V4 w1 a; r! ?' Y2 ^( bsubplot(3,1,3);
: p2 \& e, P" C* l  w1 istem(ny,y);1 O! e! W6 S* W& Y, d* B# ?0 E: K1 T
title('the conv of x(n) and h(n)');
7 n- I2 H' y4 O1 g8 Uxlabel('n')3 _  C) J( k/ R$ O; x) e
xlim([-5,45]);7 c6 q* @4 A8 j' m
# ^# P$ n; Y- }; M$ G
) v, Q6 ^+ x) ]$ V9 f1 d

2 q8 U+ C  G* M( b6 A+ B( C
# B2 y! @, Z. y' ^( z
/ a& R2 ]6 Q8 Y' }* N! ^7 W# @7 p" B' S1 x
/ b/ R8 N  m, D7 g
2 ]. t' ?/ q' q; k( h4 i
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-6-1 15:08 | 只看该作者
    subplot这个函数经常使用4 O7 `% @! T4 e$ d! W, R7 K& O# J
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-5 06:57 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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