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

您所在的位置:网站首页 matlab阶跃序列怎么写 数字信号处理基础(一):常用信号产生

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

2023-06-11 03:37| 来源: 网络整理| 查看: 265

目录 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; % 产生-2到5间隔为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; % 时间变量,-5到5间隔为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; % 时间变量,-5到5间隔为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; % 时间变量,-3到3间隔为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; % 时间变量,0到2*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); % 产生-10到10,间隔为20/(1024-1)的行向量 figure(7); % 绘制第7幅图 sicf=sinc(t5); % sinc函数 plot(t5,sicf,'LineWidth',2); % 绘制sinc信号 3.6 矩形脉冲信号

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

% 矩形脉冲信号 t6=-2:0.01:2; % 时间变量,-2到2间隔为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; % 产生-2到5间隔为1的行向量 sig = [1 2 -4 4 3 5 -2 3]; % 信号 figure(2); % 绘制第2幅图 stem(k,sig,'LineWidth',2); % 绘制信号 %% 常用信号 % 单位冲激函数 t1=-5:5; % 时间变量,-5到5间隔为1的行向量 y1=(t1==0); % t1中等于0的数对应的序号在x的对应位置的数为1,其余为0 figure(3); % 绘制第3幅图 stem(t1,y1,'LineWidth',2); % 单位冲激序列 % 单位阶跃函数 t2=-5:5; % 时间变量,-5到5间隔为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; % 时间变量,-3到3间隔为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; % 时间变量,0到2*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); % 产生-10到10,间隔为20/(1024-1)的行向量 figure(7); % 绘制第7幅图 sicf=sinc(t5); % sinc函数 plot(t5,sicf,'LineWidth',2); % 绘制sinc信号 % 矩形脉冲信号 t6=-2:0.01:2; % 时间变量,-2到2间隔为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'); % 标题


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3