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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
设矩形脉冲 是脉冲响应 的LTI系统的输入,求输出 y(n).
( S6 ?$ D1 [/ r. b7 ~6 a# n
# j7 D' f5 J( x% D8 J7 }7 K下面的脚本中用到了一个自定义的函数,也就是两个信号相加的函数:# b5 |* ^" ~7 P3 t9 n- G

% T0 e) z9 }. Gfunction [y,n] = sigadd(x1,n1,x2,n2)
/ A, ^: _* t6 u. i, G1 `, ^% implements y(n) = x1(n) + x2(n)
# k3 E& O# k7 e! ~% [y,n] = sigadd(x1,n1,x2,n2)1 {( D; q% e% K- q
%——————————————————————————————+ ~5 R7 W5 [+ W5 ~) U9 \, s. V
% y = sum sequence over n, which includes n1 and n22 O) `" f6 y- u5 m1 C( N  r
% x1 = first sequence over n1* O" z6 ?- m3 ?3 Z1 m0 u
% x2 = second sequence over n2( n2 can be different from n1); E; K1 y% k) J. w2 F' d2 E# O/ L+ w
%! p, E2 B6 D( @2 Z* I4 b: t) }
n = min( min(n1), min(n2) ):max( max(n1), max(n2) ); %duration of y(n)
4 W: _% h5 J' p% k: }: Ty1 = zeros(1,length(n)); y2 = y1; %initialization
; Q( T5 A$ W3 R' E2 s! ]0 Uy1( find( ( n >= min(n1) )&( n <= max(n1) ) == 1  )  ) = x1; %x1 with duration of y1  V1 V; k  t$ J: v5 }
y2( find( ( n >= min(n2) )&( n <= max(n2) ) == 1  )  ) = x1; %x2 with duration of y2
8 T( O) a& T0 V' i/ i: b: Q3 ?3 Sy = y1 + y2;
& _' l& k# W3 Y# u  p* @( o
) N1 D' Z$ H' b. W& e, G) [' c, J! F& ]! X" G
直接给出MATLAB脚本:( U9 k+ T3 Q% ~- g9 |, _6 s0 d

) S3 f% n% @* w+ q+ H2 y- @" ~clc
. P" g+ l! u/ I  ]clear9 M: b4 [* C$ L: b. A' T8 I% `8 R
close all
# D, p+ Z! U4 r2 l! \* F; b5 B
. y) r, Y1 s- I, p9 N% help stepseq
" @7 e6 M1 k9 f, u/ f3 P. N* _%   generate x(n) = u(n - n0); n1 <= n <= n2  C1 t6 d5 o. R) w
%  _____________________________________________
1 G/ h: F2 |& N! C9 C0 s4 v9 m- N%  [x,n] = stepseq(n0, n1, n2);* ^* N& D/ X* |) K+ d1 C
[u1,n1] = stepseq(0,-5,45);
3 v8 _( w& u1 k0 V$ q' Z[u2,n2] = stepseq(10,-5,45);! O8 o$ V& B! [' \5 R

! Q- v& N! S7 u0 M! S% generate signal x(n)
* _7 t4 @" {7 t# A& v[x,n] = sigadd(u1,n1,-u2,n2);7 J2 U! ]1 a; `6 l  Q9 O

; e" b' D7 H* y7 b0 i% generate signal h(n)
( f3 P/ ^. R0 ]- Z3 Z" em = -5:45;8 W; {9 m8 h( M  R# X6 ^; v
h = ( (0.9).^m ).* u1;
  ]4 V/ L* N' Q) p1 _8 o4 Y9 {, i' V) Y1 p

2 @' d/ g& S) W1 B% the convolution of x(h) and h(n)( u3 _" ^/ ^; E1 A$ C+ u0 V
y = conv(x,h);+ w2 R# T+ g, a) h& i- d; h& M
% ensure the index
# a1 r6 m# Q3 u; p1 Z. Jnyb = n(1)+ m(1);- G; u; b/ t9 Z) [) X* d9 ^
nye = n(length(x)) +n(length(h));7 H9 U7 q) a5 s1 s% c9 z4 E  H  N
ny = nyb:nye;: [% x( Y, d7 e7 H% g
3 h/ w- l0 g9 G! T! o0 |

2 T" {0 H& e/ F. t2 `- wsubplot(3,1,1);
, P8 z1 @+ u: D* ^/ H7 jstem(n,x);3 Y9 t/ J4 i- ]0 U# C
title('x(n)');8 l7 A" T* [; e% D
xlabel('n')2 x) X0 h% \& u& Q! S0 M3 Z+ g+ _
. f2 f; t; |# Z# I: o" q
subplot(3,1,2);% r8 E, L( {& t( B
stem(m,h);
6 p3 ]3 d. C- F! ]% Xtitle('h(n)');
8 D5 t3 ~) y. Z5 ]xlabel('n')2 ?2 a" |2 r2 ]! ^# K1 H& z

3 \$ L0 x, D* I1 R; U' O6 csubplot(3,1,3);
+ l& p' f0 ]7 @  U0 Xstem(ny,y);# b. K6 _  f+ Q
title('the conv of x(n) and h(n)');: ]5 `/ z3 T; k0 b
xlabel('n')
6 n" X! ?5 y  D4 X0 |4 [xlim([-5,45]);0 x9 ]9 c7 J  G) \7 a
- s4 p+ ~- f1 t# M& o1 L

0 h7 Y% g- ^1 s& r8 h " T) u6 @6 k, j% g% W: F
# U2 p& x  J5 \8 ?8 D
" s# }1 D- T' g) x7 l5 s+ u: N2 o
! k1 T* M+ O  U+ K

& h$ T+ Z5 Y% c( e5 ~" W6 c0 Q5 |5 C! ]: Q# S4 ^' Z. u
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-6-1 15:08 | 只看该作者
    subplot这个函数经常使用
    # d+ p" r4 \8 U7 Z' O
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-20 06:06 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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