• 时域中的离散时间信号01


    一、序列的时域表示

    1、什么是序列:

    • Sequences:离散时间信号,即时间变量离散化的信号。 连续时间变量经过抽样,就可以得到离散时间信号。 通常抽样时间间隔是均匀的,所以得到的信号可以称为等间隔离散时间信号。
      序列可以表示为{x[n]}(或x[n]),其中的n仅仅为整数的时候为有效值。
      例:{x[n]}={…,2,2.4,1,5,4,6,4.4,…},在一个序列中,通常要知道序列零点的位置,可以看作time index(时间索引),在零点左边的n值依次为-1,-2,…在零点右边的n值依次为1,2,…
    • 使用matlab可以生成任意的序列,这里给出几种常用的序列信号的代码以及仿真图
      stem函数作用为将数据序列Y从x轴到数据值按照茎状形式画出,以圆圈终止。如果Y是一个矩阵,则将其每一列按照分隔方式画出。
    N = 101;        %设置序列长度为101
    n = -50:50;      %定义n值
    %生成各序列数值
    un = [zeros(1,50) ones(1,51)];              
    dn = [zeros(1,50) 1 zeros(1,50)];
    rn = [zeros(1,50) ones(1,10) zeros(1,41)];
    %画图
    subplot(311);
    stem(n,un);
    title('单位阶跃序列');
    subplot(312);
    stem(n,dn);
    title('单位脉冲序列');
    subplot(313);
    stem(n,rn);
    title('矩形序列');
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    • 在对一个信号进行采样时,需要确定采样周期T,每隔一个T值进行一次采样,与此同时,为确保采样的准确性,对应的采样频率必须大于采样信号中最高频率的两倍。
      在这里插入图片描述

    2、实数序列和负数序列

    • 对于一个实序列{x[n]},如果第n个样本的x[n]对所有n值都是实数,那么是实序列,否则是复数序列。
    • eg:
      {x[n]} = {cos0.25n}是一个实序列;
      {y[n]} = {e^(j0.3n)}是一个复数序列,可以使用欧拉公式展开。
      🐖:欧拉公式:e^(ix) = cosx + isinx
      因此{y[n]}可以写作:{y[n]} = {cos0.3n} + j{sin0.3n},前面是实部,后面是虚部

    3、复共轭序列

    • {x[n]}的复共轭序列为:{x*[n]} = {xre[n]}-j{xim[n]}
    • eg:{w[n]} = {cos0.3n} - j{sin0.3n} = {e^(-j0.3n)}就是{y[n]}的复共轭序列

    4、因果、反因果序列和非因果序列

    • 因果序列:一个右边序列,当nN1时,y[n]为无限长的序列,是一个因果序列

    • 一个左边序列,当n>N2时,y[n]=0;,当n 在这里插入图片描述

    • 将h[0]=0(n<0)的序列称为因果序列,不满足的为非因果序列
      在这里插入图片描述

    二、序列的运算操作

    1、序列运算种类:

    一个单输入单输出离散时间系统在输入序列上按照规定的规则运行,并发展出输出序列,使其具有更理想的性质。

    • 调制操作:y[n]=x[n]·w[n]
      在这里插入图片描述
    n = 0:9;        %定义序列长度
    a = [1 2 3 4 5 5 4 3 2 1];
    b = [1 1 4 4 6 6 8 8 9 10];
    %画图
    subplot(311);
    stem(n,a);title('a序列');
    subplot(312);
    stem(n,b);title('b序列');
    subplot(313);
    stem(n,a.*b);title('操作');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    • 累加操作:y[n]=x[n]+w[n]
      在这里插入图片描述
    n = 0:9;        %定义序列长度
    a = [1 2 3 4 5 5 4 3 2 1];
    b = [1 1 4 4 6 6 8 8 9 10];
    %画图
    subplot(311);
    stem(n,a);title('a序列');
    subplot(312);
    stem(n,b);title('b序列');
    subplot(313);
    stem(n,a+b);title('操作');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    • 乘法操作:y[n]=A·x[n]
      在这里插入图片描述
    n = 0:9;        %定义序列长度
    a = [1 2 3 4 5 5 4 3 2 1];
    b = [1 1 4 4 6 6 8 8 9 10];
    %画图
    subplot(311);
    stem(n,a);title('a序列');
    %subplot(312);
    %stem(n,b);title('b序列');
    subplot(313);
    stem(n,4*a);title('操作');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    • 延时操作:y[n]=x[n-1]
      在这里插入图片描述
    n = 0:9;        %定义序列长度
    a = [1 2 3 4 5 5 4 3 2 1];
    b = [1 1 4 4 6 6 8 8 9 10];
    %画图
    subplot(311);
    stem(n,a);title('a序列');
    %subplot(312);
    %stem(n,b);title('b序列');
    subplot(313);
    stem(n+1,a);title('操作');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    • 超前操作:y[n]=x[n+1]
      在这里插入图片描述
    n = 0:9;        %定义序列长度
    a = [1 2 3 4 5 5 4 3 2 1];
    b = [1 1 4 4 6 6 8 8 9 10];
    %画图
    subplot(311);
    stem(n,a);title('a序列');
    %subplot(312);
    %stem(n,b);title('b序列');
    subplot(313);
    stem(n-1,a);title('操作');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    • 逆时操作:y[n]=x[-n]
    n = 0:9;        %定义序列长度
    a = [1 2 3 4 5 5 4 3 2 1];
    b = [1 1 4 4 6 6 8 8 9 10];
    %画图
    subplot(311);
    stem(n,a);title('a序列');
    %subplot(312);
    %stem(n,b);title('b序列');
    subplot(313);
    stem(-n,a);title('操作');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    2、序列相加运算取平均值进行去噪

    • eg:生成一个无损的信号,同时生成一个幅值在-0.5~+0.5之间的噪声信号,通过累加后取平均值的方法将噪声滤除。
      采用累加后取平均值去噪的原因:噪声是幅值在-0.5~+0.5随机的信号,其平均值为0,因此取平均后就可以将噪声滤除。
    N = 100;        %定义序列长度
    n = 0:N-1;
    s = 2*n.*(0.9.^n);  %生成无损信号
    d = rand(N,1)-0.5;  %生成噪声
    x = s + d';
    figure(1);
    stem(n,x);title('singal+noise');
    pause
    for m = 1:100;
        d = rand(N,1)-0.5;
        x1 = s + d';
        x = x + x1;
    end    
    x = x/100;
    figure(2);
    stem(n,d);title('noise');
    figure(3);
    stem(n,s);title('signal');
    figure(4);
    stem(n,x);title('result');
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 噪声信号
      在这里插入图片描述

    • 无损信号
      在这里插入图片描述

    • 混合噪声的信号
      在这里插入图片描述

    • 去噪后的信号
      在这里插入图片描述

  • 相关阅读:
    【Python爬虫】python打印本地代理
    洛谷_P1007 独木桥_思维
    Python声明式统计可视化库 altair-GitHub鉴赏官
    Q-Tester 3.2:适用于开发、生产和售后的诊断测试软件
    SQLServer过滤数据
    调用API接口的一些注意技巧
    申报设立2022年湖北省博士后创新实践基地条件、时间、流程
    vscode中对 python 快速增加header 描述
    mysql(1)
    3、Semaphore&CountDownLatch&CyclicBarrier详解
  • 原文地址:https://blog.csdn.net/qq_52450571/article/details/126653509