离散时间信号——序列的基本运算及matlab实现


文章目录

  • 离散时间信号——序列的基本运算及matlab实现
  • 前言
  • 一、什么是离散时间信号?
    • 1、离散时间信号
    • 2、数字信号处理系统
  • 二、序列的基本运算
    • 1.序列相加
    • 2.序列相乘
    • 3、序列倍率
    • 4、序列移位
    • 5、序列折叠
  • 总结

前言

本篇文章主要介绍数字信号处理内容中的离散信号序列的基本运算,如:序列相加、序列相乘、倍率、移位、折叠、样本和等内容及matlab代码的实现。


提示:以下是本篇文章正文内容,下面MATLAB已亲测有效

一、什么是离散时间信号?

1、离散时间信号

信号可分为模拟信号和数字信号。模拟信号可表示为x(t),表示连续时间,,例如生活中的声音信号。而数字信号可以用x(n)来表示,代表时间的离散时刻,因此也称为离散时间信号,它的表示方法是一个有序的数字序列。
离散时间信号:时间为离散变量,幅度为连续变化的变量。

2、数字信号处理系统

数字信号处理系统基本由以下部分组成:前端模拟信号接收装置、抗混叠滤波、A/D转换装置、数字信号处理模块(DSP)、D/A转换装置、平滑滤波组成。

二、序列的基本运算

1.序列相加

序列相加是一个对应样本与样本之间的相加。
自定义sigadd函数演示运算:

function [y,n] = sigadd(x1,n1,x2,n2)
%实现序列相加
% 实现y(n)=x1(n)+x2(n)
% [y,n ]=sigadd(x1 ,n1,x2,n2)
n = min(min(n1),min(n2)):max(max(n1),max(n2));
y1 = zeros(1,length(n));
y2=y1;y1 (find( (n>=min (n1) ) & (n<=max (n1) )==1) )=x1 ;
y2 (find( (n>=min (n2) ) & (n<=max (n2) )==1) )=x2 ;y=y1+y2;end

调用该函数

n1=[0 1 2 3];
x1=[1 2 3 4];n2=[2 3 4 5];
x2=[1 2 3 4];subplot(131);
stem(n1,x1);
axis([-1 5,0 5]);
title('x1序列');subplot(132);
stem(n2,x2);
axis([-1 6,0 5]);
title('x2序列');[y,n]=sigadd(x1,n1,x2,n2);subplot(133);
stem(n,y);
axis([-1 6,0 8]);
title('相加后序列');

结果是正确的

2.序列相乘

序列相乘是对应采样点之间的相乘(点乘)
自定义sigmuti函数演示运算:

function [y,n] = sigmuti(x1,n1,x2,n2)
% 实现y(n)=x1(n)*x2(n)
% [y,n ]=sigmuti(x1 ,n1,x2,n2)
n = min(min(n1),min(n2)):max(max(n1),max(n2));
y1 = zeros(1,length(n));
y2=y1;y1 (find( (n>=min (n1) ) & (n<=max (n1) )==1) )=x1 ;
y2 (find( (n>=min (n2) ) & (n<=max (n2) )==1) )=x2 ;y=y1.*y2;
end

调用该函数

n1=[0 1 2 3];
x1=[1 2 3 4];n2=[2 3 4 5];
x2=[1 2 3 4];subplot(131);
stem(n1,x1);
axis([-1 5,0 5]);
title('x1序列');subplot(132);
stem(n2,x2);
axis([-1 6,0 5]);
title('x2序列');[y,n]=sigmuti(x1,n1,x2,n2);subplot(133);
stem(n,y);
axis([-1 6,0 10]);
title('相乘后序列');

结果图

3、序列倍率

这个运算很简单,每一个采样值都乘以倍数a就可以了。
自定义sigdouble函数演示运算:

function [y,n] = sigdouble(x1,n1,a)
%sigdouble 序列倍率
%   在此运算中,
% 每个采样值乘以一个常数a。
% a{x(n)}= {ax(n)}
% 在MATLAB中可用算术运算符“*”来实现倍率运算。
n=n1;
y=a*x1;
end

调用运行

n1=[0 1 2 3];
x1=[1 2 3 4];
a=3;        %倍率
[y,n]=sigdouble(x1,n1,a);
subplot(121);
stem(n1,x1);
axis([-1 5,0 5]);
title('x1序列');subplot(122);
stem(n,y);
axis([-1 5,0 13]);
title('倍率后序列');

结果图

4、序列移位

通过移位运算,每个采样值都向右移动k个单位(k正为右,负为左)。
移位后:y(n)={x(n-k)}
自定义sigfold函数演示运算:

function [y,n] = sigshift(x,m,n0)
%实现y(n)=x(n-n0)
%移位--在此运算中,x (n)的每一个样本都移动n0个周期,移位后的序列y (n)如下。n=m+n0;
y=x;end

调用运行:

n1=[0 1 2 3];
x1=[1 2 3 4];
a=-3;        %向左平移3个单位
[y,n]=sigshift(x1,n1,a);
subplot(121);
stem(n1,x1);
axis([-4 4,0 5]);
title('x1序列');subplot(122);
stem(n,y);
axis([-4 4,0 5]);
title('移位后序列');

结果图:

5、序列折叠

通过折叠运算,使得采样值每个样本按照n=0翻转
自定义sigfold函数演示运行:

function [y,n] = sigfold(x,n0)
%序列折叠运算
%在此运算中,x (n)的每个样本都对n= o翻转,得到一个折叠后的序列y(n)
%y(n)={x(-n)}
y=fliplr(x);
n=-max(n0):-min(n0);  end

调用运行:

n1=[0 1 2 3];
x1=[1 2 3 4];
[y,n]=sigfold(x1,n1);
subplot(121);
stem(n1,x1);
axis([-4 4,0 5]);
title('x1序列');subplot(122);
stem(n,y);
axis([-4 4,0 5]);
title('折叠后序列');

结果图:


总结

至此,序列的基本运算就介绍完了。往后我会持续更新信号处理的其他内容,欢迎志同道合的同仁批评指正,一起探讨经验。
QQ:2395277840
作者:草莓味的徐大力

信号处理第一式——离散信号序列的基本运算及MATLAB实现相关推荐

  1. (更新源码)数字信号处理音频FIR去噪滤波器(基于MATLAB GUI的开发)

    数字信号处理音频FIR去噪滤波器(基于MATLAB GUI的开发) 1.内容简介 2.函数使用 3.实现功能 4.操作实例 5.窗函数对比 6.源代码 1.内容简介 利用MATLAB GUI设计平台, ...

  2. 离散傅里叶变换(DTFT) MATLAB实例

    离散傅里叶变换(DTFT) MATLAB实例 w = [0:1:500]*pi/500; X= exp(1i*w) ./ (exp(1i*w) - 0.5*ones(1,501));        % ...

  3. matlab数字信号处理实验报告,【实验设计论文】Matlab的数字信号处理课程实验设计(共3490字)...

    摘要:本文设计了一个基于Matlab的"数字信号处理"课程综合性实验.该实验把"数字信号处理"课程中的许多离散的知识点串接了起来,包括采样.量化.滤波器设计.滤 ...

  4. 【信号处理】基于双音多频(DTMF)信号检测含Matlab源码

    1 简介 DTMF信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,应用D/A变换器,采用快速的频率检测算法--戈泽尔(GEORTZEL)算法的原理,以及该算法在双音多频拨号 ...

  5. 数字信号处理 --- 用离散傅里叶变换(循环卷积)实现线性卷积(个人学习笔记)

    时域的循环卷积等于频域的离散傅里叶变换,离散傅里叶变换DFT是离散傅里叶级数DFS的一个周期,离散傅里叶级数DFS是对连续时间傅里叶变换CTFT的采样 离散傅里叶级数DFS 周期为10的方波信号的傅里 ...

  6. 【信号处理】基于小波变换的语音增强matlab源码

    一.简介 语音通信是人类传播信息,进行交流时使用最多.最自然.最基本的一种手段.而这种通信中的信息载体-语音信号却是一种时变的.非平稳的信号,只有在很短的一段时间内(通常为10~30ms)才被认为是平 ...

  7. 数字信号处理实验一(离散时间信号的MATLAB实现)

    1.正弦序列 离散正弦序列的MATLAB表示与连续信号类似,只不过是用stem函数而不是用plot函数来画出序列的波形.下面就是正弦序列的MATLAB源程序. %正弦序列实现程序 k=0:39; fk ...

  8. 【数字信号处理】带通采样定理及其MATLAB仿真

    目录 一.带通采样定理 1.1 内容 1.2 公式推导 二.MATLAB信号仿真 2.1 信号仿真实验 2.2 MATLAB代码 三.总结 参考 一.带通采样定理 按照奈奎斯特采样定理(低通采样),采 ...

  9. 【信号处理】数字基带信号波形仿真含Matlab源码

    1 简介 双极性归零码仿真​ 2 部分代码 close allclear all%采样点数的设置k=14;%每码元采样数的设置L= 32;N=2^k;M=N/L;%M为码元个数dt=1/L;%时域采样 ...

  10. 【20220623】【信号处理】深入理解Pearson相关系数和Matlab corr()、corrcoef()仿真

    目录 一.定义 二.特性 三.适用条件 四.Matlab 仿真 1. 时间序列 2. 矩阵 一.定义 相关系数(correlation of coefficient)是统计学中的概念,是由统计学家卡尔 ...

最新文章

  1. SQL Server查询某个字段存在哪些表中
  2. 厉害了黑科技,动态安全下的防拖库原来可以这么简单!
  3. matlab画三维图电磁场,利用matlab实现矩形波导电磁场分布图的绘制.doc
  4. 英语采访问题之:你每天上班的动机是什么?
  5. ESP8266等模块
  6. javascript js string.Format()收集
  7. java从入门到精通 韩顺平_韩顺平Java从入门到精通视频教程(94集)
  8. (FPGA学习)环境及入门-------基于黑金FPGA cyclone IV EP4CE15F17开发板
  9. C++-dllmain介绍
  10. Python精讲:Python中集合的概念和创建方法详解
  11. 你可能不知道的印度手机市场
  12. 语言独立性和与语言无关的组件
  13. Docker容器化开发
  14. JSF Chapter11
  15. 希特管理学(希特)【内容摘要】
  16. 前端模块化 AMD 详解
  17. 网页静态化之Freemarker
  18. 科技早闻:传科比将成苹果iWatch代言人
  19. 强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C(下)
  20. 蓝光视频BDMV转MKV

热门文章

  1. coreldraw x4忽略视图样式补丁_Coreldraw x4忽略颜色样式和视图样式补丁
  2. c语言求信源的信息熵,第二章-信源与信息熵(三)
  3. 高等数学(第七版)同济大学 习题8-1 个人解答
  4. 程序员文档写作能力(三)-如何处理好微信、邮件、开会时的话术
  5. arctan查表法_DSP正弦波——查表法原理
  6. 三极管特性——截止区、放大区、饱和区
  7. 什么是工序分析法?工序分析的方法和实施步骤有哪些
  8. 线性四叉树的实现C++
  9. 经验:OrCAD Capture卡顿问题的解决方法
  10. 计算机基础知识试题 试题及答案