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

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

[复制链接]

该用户从未签到

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

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 |
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-6-1 15:08 | 只看该作者
    subplot这个函数经常使用9 X9 a! K7 d& x1 T9 z/ G
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-24 03:52 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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