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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
设矩形脉冲 是脉冲响应 的LTI系统的输入,求输出 y(n).
' |  d+ ^  w- t
  i8 p3 P4 z5 u9 }9 s$ U- V$ D/ d" I下面的脚本中用到了一个自定义的函数,也就是两个信号相加的函数:
' D5 s1 Y+ Z6 X& _5 k" [" t: b( m/ y' B3 a6 ^3 Z/ \
function [y,n] = sigadd(x1,n1,x2,n2)
2 x7 Y1 w: Z6 L3 s4 z2 g. J/ o- L% implements y(n) = x1(n) + x2(n)
8 q- p. Z2 {8 _4 M+ I2 `" o1 r6 R% [y,n] = sigadd(x1,n1,x2,n2)8 \8 _* l. _- K( J8 u: E  w6 ~' T
%——————————————————————————————
5 ]1 v+ t2 D  a! b& {8 l# d: Z% y = sum sequence over n, which includes n1 and n2  |, V3 m4 p6 a- F! b
% x1 = first sequence over n1
' N( T+ W. g8 F/ o! h% x2 = second sequence over n2( n2 can be different from n1). P, X5 t6 M, L/ L% A' ^4 Z
%- o! N' r1 I' Z: i. r' \3 _
n = min( min(n1), min(n2) ):max( max(n1), max(n2) ); %duration of y(n). a7 B. T% _- i! {
y1 = zeros(1,length(n)); y2 = y1; %initialization
  T, L( v  R4 }y1( find( ( n >= min(n1) )&( n <= max(n1) ) == 1  )  ) = x1; %x1 with duration of y1) W9 W' ]$ c$ Y+ q
y2( find( ( n >= min(n2) )&( n <= max(n2) ) == 1  )  ) = x1; %x2 with duration of y2. a/ \, r+ R2 t; F) `& F0 Z
y = y1 + y2;: @2 n6 W+ W8 F
! Q' L" U% q% A9 {) D2 \) k
; n2 w0 H8 }  m0 n9 ]# x7 H
直接给出MATLAB脚本:
7 _0 K" L/ @2 j0 D' n1 I+ s2 J  ]
clc
7 ~, b& H6 Z( ?5 L' T; rclear
3 Y' i! l& H/ \  [+ z5 Bclose all
- U6 _) q! C. f- K; h$ v% E! z  H' p) s; {* I5 z6 Q6 \. }+ Q
% help stepseq: j" [; S2 }7 c( Q/ v3 C6 A
%   generate x(n) = u(n - n0); n1 <= n <= n2
7 X; [: t4 {$ X%  _____________________________________________
% s% A- x* t1 T  i%  [x,n] = stepseq(n0, n1, n2);  N$ ^: y6 _1 l2 M
[u1,n1] = stepseq(0,-5,45);
/ Z0 [# M! L4 K# B5 M. [[u2,n2] = stepseq(10,-5,45);8 T3 v  X% G6 f  T5 N7 l' I- [

8 o" `7 l! a, M5 |# l% generate signal x(n)" v% {7 `$ k9 j' p& M/ c. X
[x,n] = sigadd(u1,n1,-u2,n2);
3 g0 ~5 `5 b7 b  @, m& c" M  i; q( r' P2 L1 h) V4 h' }0 P$ ?
% generate signal h(n)
* W8 Z" j! k1 b. zm = -5:45;
- F. F% U7 @( K/ xh = ( (0.9).^m ).* u1;$ n3 N* H3 N( J: ^
4 B3 l3 J: S) f! P( S6 N

# {: K1 N5 p- u% the convolution of x(h) and h(n)  O, C9 A' u/ `$ G
y = conv(x,h);, [1 d" ]3 }4 X$ L) q# X( e
% ensure the index
1 }# K7 f& K8 Vnyb = n(1)+ m(1);9 R% g. x. v5 Q( F; V7 p0 Z
nye = n(length(x)) +n(length(h));
* f* [$ k$ k0 C* v. w# ]$ a& Hny = nyb:nye;. v# _) a. T; N3 c" n! y

, b  l9 K+ }- c) y5 l( W; y8 A& J' s$ M. b8 L, V  `* q" x
subplot(3,1,1);
/ [! x, r% \) Z2 a7 Estem(n,x);) E" p" _6 Y! }3 J
title('x(n)');
% v& ~; R( k, O  H; x. g% H" X. W; bxlabel('n')( x# u) z' r; K3 {) T
& m  L/ V6 w7 U0 w+ C1 L
subplot(3,1,2);
( N! q% k+ R# S! w9 q+ lstem(m,h);
; s$ t" c3 B5 F* Xtitle('h(n)');3 I# s; D$ N" B0 F9 ~2 s. w- Q! l
xlabel('n'): f6 f- z2 ], n
6 b  C; @$ h  {$ J& k. j$ L2 e
subplot(3,1,3);
& d+ N  G( a9 M" q8 E: \stem(ny,y);
- D9 K! v% N1 M  Z& ~title('the conv of x(n) and h(n)');
4 q$ F5 A# K# Q6 }4 w; p7 sxlabel('n')! O, K! ~6 l+ T4 c8 [
xlim([-5,45]);, b) v& C7 R) @& `3 X3 @! m
+ Y7 D/ Y0 O" }8 P

3 B9 X2 E  F5 k
* r" L; ^& S! J: Y# a
4 [7 n& y9 t7 }& m& p- b4 N; x0 P, P5 l
' S# k) o( p3 e4 \& `$ M! ~% G

9 ?9 Q8 _% D+ v9 m5 C' [1 Z3 o. B/ j& n9 s: `
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-6-1 15:08 | 只看该作者
    subplot这个函数经常使用
    8 T6 N. l; k* X
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-24 19:39 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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