数字信号处理基础(一):常用信号产生

news2024/11/26 16:37:58

目录

  • 1. 写在前面
  • 2. 连续信号和离散信号
    • 2.1连续信号
    • 2.2 离散信号
  • 3. 常用信号的产生
    • 3.1 单位脉冲序列
    • 3.2 单位阶跃序列
    • 3.3 指数函数
    • 3.4 正弦信号和余弦信号
    • 3.5 sinc函数
    • 3.6 矩形脉冲信号
  • 4. 信号卷积
  • 5. 完整代码

1. 写在前面

为了更好的理解通信原理系列文章,在此补充数字信号处理的部分内容。

2. 连续信号和离散信号

2.1连续信号

连续时间信号,是指自变量的取值范围是连续的。但是从严格意义上来说,MATLAB并不能处理连续信号,而是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。
连续信号的示例
在这里插入图片描述

%% 连续信号
t = -5:0.1:5;                       % 时间变量
y = sin(t);                         % 信号
figure(1);                          % 绘制第1幅图
plot(t,y,'LineWidth',2);            % 绘制信号

2.2 离散信号

自变量的取值范围是不连续的信号。
离散信号示例
在这里插入图片描述

%% 离散信号
k = -2:5;                           % 产生-25间隔为1的行向量
sig = [1 2 -4 4 3 5 -2 3];          % 信号
figure(2);                          % 绘制第2幅图
stem(k,sig,'LineWidth',2);          % 绘制信号

3. 常用信号的产生

3.1 单位脉冲序列

单位脉冲序列是最原点处为1,其余处为0的信号。
在这里插入图片描述

% 单位冲激函数
t1=-5:5;                            % 时间变量,-55间隔为1的行向量
y1=(t1==0);                         % t1中等于0的数对应的序号在x的对应位置的数为1,其余为0
figure(3);                          % 绘制第3幅图
stem(t1,y1,'LineWidth',2);          % 单位冲激序列

3.2 单位阶跃序列

单位阶跃序列是大于等于0处值为1,其余为0的信号。
在这里插入图片描述

% 单位阶跃函数
t2=-5:5;                            % 时间变量,-55间隔为1的行向量
y2=(t2>=0);                         % t2中大于等于0的数对应的序号在x的对应位置的数为1,其余为0
figure(4);                          % 绘制第4幅图
stem(t2,y2,'LineWidth',2);          % 单位阶跃序列
hold on;                            % 允许后续的图像在当前窗口绘制
plot(t2,y2,'LineWidth',2);          % 单位阶跃函数
hold off;                           % 不允许后续的图像在当前窗口绘制

3.3 指数函数

指数函数示例
在这里插入图片描述

figure(5);                          % 绘制第5幅图
t3=-3:0.5:3;                        % 时间变量,-33间隔为0.5的行向量
y3=exp(-t3);                        % 指数函数
plot(t3,y3,'LineWidth',2);          % 绘制连续指数函数
hold on;                            % 允许后续的图像在当前窗口绘制
stem(t3,y3,'LineWidth',2);          % 离散指数序列
hold off;                           % 不允许后续的图像在当前窗口绘制

3.4 正弦信号和余弦信号

正弦信号和余弦信号示例
在这里插入图片描述

% 正弦波和余弦波
t4=0:0.01:2*pi;                     % 时间变量,02*pi间隔为0.01的行向量
y4=sin(2*t4);                       % 正弦信号
y5=cos(2*t4);                       % 余弦信号
figure(6);                          % 绘制第6幅图
plot(t4,y4,'-b','LineWidth',2);     % 绘制正弦信号
hold on;                            % 允许后续的图像在当前窗口绘制
plot(t4,y5,'-r','LineWidth',2);     % 绘制余弦信号
legend('正弦信号','余弦信号');      % 图例
hold off;                           % 不允许后续的图像在当前窗口绘制

3.5 sinc函数

sinc函数示例
在这里插入图片描述

% sinc函数
t5=linspace(-10,10,1024);           % 产生-1010,间隔为20/(1024-1)的行向量
figure(7);                          % 绘制第7幅图
sicf=sinc(t5);                      % sinc函数
plot(t5,sicf,'LineWidth',2);        % 绘制sinc信号

3.6 矩形脉冲信号

矩形脉冲信号示例
在这里插入图片描述

% 矩形脉冲信号
t6=-2:0.01:2;                       % 时间变量,-22间隔为0.01的行向量
y6=rectpuls(t6);                    % 矩形脉冲信号
figure(8);                          % 绘制第8幅图
plot(t6,y6,'LineWidth',2);          % 绘制矩形脉冲信号

4. 信号卷积

卷积运算是信号运算中重要的运算,用conv函数实现。
在这里插入图片描述

%% 信号卷积
x=[4,3,2,1];                        % 输入信号
h=[2,5,1];                          % 单位脉冲响应函数
y=conv(x,h);                        % 输出信号
figure(9);                          % 绘制第3幅图
subplot(1,3,1);                     % 将窗口分割成1*3,当前是第1个子图
stem(x,'LineWidth',2);              % 绘制输入信号
title('输入信号x');                 % 标题
subplot(1,3,2);                     % 将窗口分割成1*3,当前是第2个子图
stem(h,'LineWidth',2);              % 绘制单位脉冲响应函数
title('单位脉冲响应函数h');         % 标题
subplot(1,3,3);                     % 将窗口分割成1*3,当前是第3个子图
stem(y,'LineWidth',2);              % 绘制输出信号
title('输出信号y');                 % 标题

5. 完整代码

clear all;                          % 清除所有变量
close all;                          % 关闭窗口
clc;                                % 清屏
%% 连续信号
t = -5:0.1:5;                       % 时间变量
y = sin(t);                         % 信号
figure(1);                          % 绘制第1幅图
plot(t,y,'LineWidth',2);            % 绘制信号

%% 离散信号
k = -2:5;                           % 产生-25间隔为1的行向量
sig = [1 2 -4 4 3 5 -2 3];          % 信号
figure(2);                          % 绘制第2幅图
stem(k,sig,'LineWidth',2);          % 绘制信号

%% 常用信号
% 单位冲激函数
t1=-5:5;                            % 时间变量,-55间隔为1的行向量
y1=(t1==0);                         % t1中等于0的数对应的序号在x的对应位置的数为1,其余为0
figure(3);                          % 绘制第3幅图
stem(t1,y1,'LineWidth',2);          % 单位冲激序列

% 单位阶跃函数
t2=-5:5;                            % 时间变量,-55间隔为1的行向量
y2=(t2>=0);                         % t2中大于等于0的数对应的序号在x的对应位置的数为1,其余为0
figure(4);                          % 绘制第4幅图
stem(t2,y2,'LineWidth',2);          % 单位阶跃序列
hold on;                            % 允许后续的图像在当前窗口绘制
plot(t2,y2,'LineWidth',2);          % 单位阶跃函数
hold off;                           % 不允许后续的图像在当前窗口绘制

% 指数函数
figure(5);                          % 绘制第5幅图
t3=-3:0.5:3;                        % 时间变量,-33间隔为0.5的行向量
y3=exp(-t3);                        % 指数函数
plot(t3,y3,'LineWidth',2);          % 绘制连续指数函数
hold on;                            % 允许后续的图像在当前窗口绘制
stem(t3,y3,'LineWidth',2);          % 离散指数序列
hold off;                           % 不允许后续的图像在当前窗口绘制

% 正弦波和余弦波
t4=0:0.01:2*pi;                     % 时间变量,02*pi间隔为0.01的行向量
y4=sin(2*t4);                       % 正弦信号
y5=cos(2*t4);                       % 余弦信号
figure(6);                          % 绘制第6幅图
plot(t4,y4,'-b','LineWidth',2);     % 绘制正弦信号
hold on;                            % 允许后续的图像在当前窗口绘制
plot(t4,y5,'-r','LineWidth',2);     % 绘制余弦信号
legend('正弦信号','余弦信号');      % 图例
hold off;                           % 不允许后续的图像在当前窗口绘制

% sinc函数
t5=linspace(-10,10,1024);           % 产生-1010,间隔为20/(1024-1)的行向量
figure(7);                          % 绘制第7幅图
sicf=sinc(t5);                      % sinc函数
plot(t5,sicf,'LineWidth',2);        % 绘制sinc信号

% 矩形脉冲信号
t6=-2:0.01:2;                       % 时间变量,-22间隔为0.01的行向量
y6=rectpuls(t6);                    % 矩形脉冲信号
figure(8);                          % 绘制第8幅图
plot(t6,y6,'LineWidth',2);          % 绘制矩形脉冲信号

%% 信号卷积
x=[4,3,2,1];                        % 输入信号
h=[2,5,1];                          % 单位脉冲响应函数
y=conv(x,h);                        % 输出信号
figure(9);                          % 绘制第3幅图
subplot(1,3,1);                     % 将窗口分割成1*3,当前是第1个子图
stem(x,'LineWidth',2);              % 绘制输入信号
title('输入信号x');                 % 标题
subplot(1,3,2);                     % 将窗口分割成1*3,当前是第2个子图
stem(h,'LineWidth',2);              % 绘制单位脉冲响应函数
title('单位脉冲响应函数h');         % 标题
subplot(1,3,3);                     % 将窗口分割成1*3,当前是第3个子图
stem(y,'LineWidth',2);              % 绘制输出信号
title('输出信号y');                 % 标题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/551654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

28 SQL——表子查询

create table dept(id int primary key auto_increment,name varchar(15))comment 部门;insert into dept(id, name) values (1,研发部),(2,市场部),(3,财务部),(4,销售部),(5,总经办),(6,人事部);create table staff (id int primary key auto_increment commentID,name …

使用Mathtype公式编辑器生成CSDN中的数学公式

使用Mathtype公式编辑器生成CSDN中的数学公式 在CSDN中输入数学公式,直接使用LaTeX编辑输入公式有一些难度,如果你熟悉Mathtype公式编辑器,那么在CSDN文档中输入数学公式也变的相对容易。 下面我们举例说明使用Mathtype转换输入CSDN的公式。…

Weex工具链的奥秘

在2017年1月12日 Weex Conf 2017上,来自阿里的卜道依据Weex开发中的痛点介绍了Weex的打包和插件机制,同样来自阿里的归影介绍了Weex的调试工具Devtools,共同揭秘了Weex的工具链。本文是卜道和归影关于Weex工具链实践的分享整理。 Weexpack与…

MyBatis各种类型查询数据的数据绑定

文章目录 1、前言2、查询一个实体类对象字段名和属性名无法映射处理方式一:起别名方式二:使用全局配置文件配置映射规则方式三:自定义resultmap 3、查询一个list集合4、查询单个数据5、查询一条数据为map集合6、 查询多条数据为map集合方式一…

Python中使用Scipy模块中root函数求解非线性方程的解法举例

Python中使用Scipy模块中root函数求解非线性方程的解法举例 Python中的SciPy模块功能强大,下面举例说明使用该模块求解非线性方程或非线性方程组。在求解时候,用到scipy.optimize模块中的root函数。 1.root函数的调用格式 调用它们的格式为 from scipy…

使用MinIO文件存储系统【完成视频断点续传】业务逻辑

目录 视频上传 接口一:检查该视频/媒资文件是否已经上传完成 接口二:检查视频分块是否已经在minio中已经存在 接口三:上传分块文件到minio中(已经上传的分块会在接口二进行校验) 接口四:合并上传的分块…

git生成密钥方法

1、密钥生成 打开Git Bash,查看ls ~/.ssh下是否有密钥文件id_rsa*,有的话可先进行备份。 然后用如下命令生成新密钥: ssh-keygen -t rsa -C "your_emailexample.com" 参数含义: -t 指定密钥类型,默认是 …

chatgpt赋能Python-pythonbif

Python Bif: 简介和使用指南 Python Bif是一种用于机器学习和数据科学的强大包。它提供了一些重要的功能,例如分类、集成和回归。这篇文章将向您介绍Python Bif的主要特性和如何使用它来完成各种数据科学任务。 什么是Python Bif? Python Bif是一个通…

Spring源码阅读:AOP原理

一、概述 以下便是Spring Aop的流程,下面我将一一介绍下面的各个方法。 下面是流程中的主要方法。 二、测试代码 下面我将写一个例子介绍Spring Aop的流程。 被增强类: public class MyCalculator {public Integer add(Integer i, Integer j) throw…

逼近GPT-4!BLOOMChat: 开源可商用支持多语言的大语言模型

背景 SambaNova和Together这2家公司于2023.05.19开源了可商用的支持多语言的微调模型BLOOMChat。 SambaNova这家公司专注于为企业和政府提供生成式AI平台,Together专注于用开源的方式打造一站式的foundation model,赋能各个行业。 OpenAI的GPT-4和Goo…

【将maven源改为国内阿里云镜像】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 如何配置Maven镜像? 2. Idea中m…

【Java入门】初识Java

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Java入门篇系列,该专栏主要讲解:什么是java、java的数据类型与变…

MATLAB|004|MATLAB M-Files|MATLAB数据类型

MATLAB M-Files 我们一直强调MATLAB是一个功能强大的编程语言及交互式计算环境,之前学习的内容中,我们学会了在 MATLAB 命令提示符下输入命令,而且我们主要是把MATLAB环境作为一个计算器使用。其实,MATLAB 还允许写入到一个文件中…

5分钟掌握利用pycharm插件BitoAI 实现chatgpt自动编写代码

一、BitoAI 简介 最近出现了一款新型编程助手BitoAI。今天的主要内容就是给大家介绍它,号称 IDE 的“瑞士军刀”,可以提升开发 10 倍的效率。 简言之它的强大之处就是可以通过类似于ChatGPT对话的方式来编写代码,分析代码,生成代…

Flutter控件之Tab选项卡封装

Tab选项卡,这是一个非常常见且权重很高的一个组件,随便打开一个App,比如CSDN,如下图,首页顶部就是一个Tab选项卡,这个功能可以说,几乎每个App都会存在。 在Android中,我们可以使用Ta…

“Shell“iptales防火墙设置

文章目录 一.Linux防火墙基础1.1Linux包过滤防火墙概述1.2四表五链1.3规则链之间的匹配顺序1.4规则链内的匹配顺序1.5总结 二.编写防火墙规则2.1iptables防火墙的配置方法2.2规则的匹配2.3命令使用 一.Linux防火墙基础 1.1Linux包过滤防火墙概述 Linux 系统的防火墙: IP信息包…

惯性导航论文详解:神经惯性定位

来源:投稿 作者:小灰灰 编辑:学姐 论文标题:Neural Inertial Localization 论文链接: https://arxiv.org/pdf/2203.15851v1.pdf 图1.从IMU测量到位置估计。给定惯性传感器数据(左),我们的方法…

C#,生信软件实践(04)——DNA数据库EMBL格式文件的解释器之完整源代码

EMBL文件的格式详解请阅读前面的文章: C#,生信软件实践(02)——DNA数据库EMBL格式详解及转为FASTA格式文件的源代码https://blog.csdn.net/beijinghorn/article/details/130462070 本文的代码用于: (1&a…

Linux---文件操作命令(cp、mv、rm)

1. cp命令 cp命令可以用于复制文件\文件夹,cp命令来自英文单词:copy。 语法:cp [选项] 参数1 参数2 参数1:Linux路径,表示被复制的文件或文件夹 参数2:Linux路径,表示要复制去的地方 选…

《Java 核心技术面试》课程笔记(十一)

Java 提供了哪些 IO 方式? 典型回答 Java IO 基于不同的 IO 抽象模型和交互方式,可以分为: BIO,传统的 java.io 包,它基于流模型实现。 提供了我们最熟知的⼀些 IO 功能,比如 File 抽象、输入输出流等。交…