信号包络及其提取方法(Matlab)

news2024/11/26 15:31:58

信号包络及其提取方法

介绍信号包络,以及信号包络的提取方法。

一、信号包络

直观地从时域来讲,信号包络就是信号波形的轮廓。

本质上,信号包络是带通信号的基带部分。

一个实带通信号记为x(t),将它频谱的中心频点搬移到零频,将得到信号的复包络,复包络取模就是信号的包络,复包络取相位就是信号的相位分量。

请添加图片描述

二、包络检波器

通常需要接收到的信号进行解调,才能得到需要的基带信号(比如语音)。包络检波是一种非相干解调方式,接收机不需要产生相干载波。其基本电路是

请添加图片描述

检波原理:二极管使得正半周高电压通过,此时对电容器充电,负半周截止的时候电容器经电阻器放电,如此循环,从而输出近似于包络的纹波信号。

参数设计:RC是滤波时间常数, B A M B_{AM} BAM是基带信号带宽, f c f_c fc是载波频率。
B A M ≪ 1 2 π R C ≪ f c B_{AM} \ll \frac{1}{2\pi RC} \ll f_c BAM2πRC1fc

三、Matlab实现包络提取

在计算机仿真的时候,包络提取可以采用希尔伯特变换。Matlab的希尔伯特变换求得的是原信号的解析信号z(t),解析信号又称信号预包络,对解析信号取模求得的就是信号的包络。

简单来讲,就是下面这个公式,其中x(t)是原信号,a(t)是信号包络, x ^ ( t ) \hat x(t) x^(t)是原信号的希尔伯特变换,因此对解析信号取模就得到了信号的包络。
z ( t ) = a ( t ) e j θ ( t ) e j 2 π f c t = x ( t ) + j x ^ ( t ) z(t) = a(t)e^{j\theta(t)}e^{j2\pi f_ct} = x(t)+j \hat x(t) z(t)=a(t)ejθ(t)ej2πfct=x(t)+jx^(t)
这其中的数学道理,详细的推理步骤可以随便参考一本通信原理的教材,主要是搞明白第二个等号怎么来的。

下图的红色线条是常规调幅信号的包络,等于 基带信号m(t)+1

请添加图片描述

仿真代码:

% ---------------------------------------------
% 作者:wsg
% 日期:2022年11月29日
% 邮箱:shouguo19@163.com
% 说明:常规调幅信号的包络提取
% ---------------------------------------------


f1 = 15;        % 信号频率分量1,单位Hz
f2 = 50;
f3 = 60;

fc = 3e3;       % 载波频率
fs = 10e3;      % 采样频率

t = 0:1/fs:(0.5-1/fs);
N_point = length(t);

m = cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);   % 基带信号

m = m/max(abs(m));

s_AM = (1+m).*cos(2*pi*fc*t);   % 常规调幅信号

f = (0:1/N_point:(0.5-1/N_point))*fs;
pxx = 10*log10(abs(fft(s_AM))); % 调幅信号的频谱

z = hilbert(s_AM);	% 解析信号
baoluo = abs(z);

%% 绘图部分
figure(1)
subplot(211)
plot(t, s_AM)
hold on
plot(t,1+m,LineWidth=3);
hold off
xlabel("t/s")
ylabel("电压/V")
legend("幅度调制信号","包络")

subplot(212)

plot(f,pxx(1:N_point/2));
xlabel("频率/Hz")


figure(2)
plot(t,m);
hold on
plot(t,baoluo);
hold off
legend("基带信号", "希尔伯特变换求出来的包络信号")


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

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

相关文章

数据结构初阶--栈和队列(讲解+类模板实现)

栈的概念和结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)加粗样式的原则。 入…

debug - 用Procmon记录目标程序启动后的操作

文章目录debug - 用Procmon记录目标程序启动后的操作概述笔记备注ENDdebug - 用Procmon记录目标程序启动后的操作 概述 想看看 D:\Cadence\SPB_17.4\tools\bin\Capture.exe 开始页中的recent projects 从哪里读的. 想用Procmon记录Capture.exe启动后的动作, 再记录成文本日志…

【Spring】一文带你吃透AOP面向切面编程技术(上篇)

个人主页: 几分醉意的CSDN博客_传送门 文章目录💖AOP概念✨AOP作用✨AOP术语✨什么时候需要用AOP💖Aspectj框架介绍✨Aspectj的5个通知注解✨Aspectj切入点表达式✨前置通知Before💖投票传送门(欢迎伙伴们投票&#xf…

Nginx加载Lua脚本lua_shared_dict缓存

1、介绍 lua_shared_dict缓存是nginx为lua提供的一个多进程共享空间,为了避免多进程修改造成脏数据,lua_shared_dict修改数据是用锁来实现的。这样就会有qps访问瓶颈变小的问题。这是性能缺点。 2、使用 1)首先在nginx.conf里申请一块共享…

数据分享|PYTHON用决策树分类预测糖尿病和可视化实例

全文下载链接:http://tecdat.cn/?p23848在本文中,决策树是对例子进行分类的一种简单表示。它是一种有监督的机器学习技术,数据根据某个参数被连续分割。决策树分析可以帮助解决分类和回归问题(点击文末“阅读原文”获取完整代码数…

大一学生WEB前端静态网页——唯品会1页 包含hover效果

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业,Web大学生网页 HTML&a…

SpringCloud:使用Nacos作为配置中心

目录 一、nacos配置中心简介 二、nacos配置实时更新及同一个微服务不同环境的差异化配置 准备工作 针对商品微服务实现实时更新(以商品微服务为例) 三、nacos同一个微服务不同环境的共享配置 同一个微服务修改配置才能访问不同环境 四、nacos不同微…

【JavaEE】MyBatis

文章目录1.MyBatis介绍2.MyBatis快速入门3.Mapper代理开发4.MyBatis核心配置文件5.配置文件完成增删改查5.1 查询5.2 添加/修改5.3 删除6.MyBatis参数传递7.注解完成增删改查1.MyBatis介绍 1.什么是MyBatis? MyBatis是一款优秀的 持久层框架,用于简化JDBC开发MyBat…

STC 51单片机46——看门狗测试

#include <reg52.h> sfr WDT_CONTR 0xE1; //声明WDT_CONTR void delay(void){ //改变延时长度&#xff0c;可以观测是否触发看门狗 unsigned char i,j,k; for(i0;i<255;i) for(j0;j<255;j) for(k0;k<255;k); } void…

图神经网络

前言 图与图的表示 图是由一些点和一些线构成的&#xff0c;能表示一些实体之间的关系&#xff0c;图中的点就是实体&#xff0c;线就是实体间的关系。如下图&#xff0c;v就是顶点&#xff0c;e是边&#xff0c;u是整张图。attrinbutes是信息的意思&#xff0c;每个点、每条…

MFC界面控件BCGControlBar v33.3 - 升级Ribbon Bar自定义功能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 该版本包含了增强的Ribbon自定义、新的日期/时间数字指示器、带有文本对齐的组控件、多行支持以及其他一些新功…

第二证券|12月A股投资方向来了!这些板块已先涨为敬

日前&#xff0c;我国银河、信达证券、中泰证券、安全证券等多家券商连续发布12月A股月度出资组合。全体上券商对后市持活跃情绪&#xff0c;以为当时商场处于震动磨底装备区间&#xff0c;商场动摇并不影响“暖冬行情”的延续&#xff0c;一些活跃的券商以为后市有望走出季度级…

R语言rcurl抓取问财财经搜索网页股票数据

问财财经搜索是同花顺旗下的服务之一,主要针对上市公司的公告、研报、即时新闻等提供搜索及参考资料。相对于其他股票软件来说&#xff0c;一个强大之处在于用自然语言就可以按你指定的条件进行筛选。而大部分现有的行情软件支持的都不是很好&#xff0c;写起来就费尽心思&…

Nginx加载Lua脚本链接mysql

1、nginx加载lua脚本方法可参我的这篇文章 Nginx安装Openresty加载Lua代码_IT东东歌的博客-CSDN博客 2、测试代码 官网 https://github.com/openresty/lua-resty-mysql local mysql require "resty.mysql" local db, err mysql:new() if not db then ngx.sa…

Django 第四章 模版系统详解(ORM数据模型-使用mysql数据库增删改查)

djiango模版系统&#xff1a; 用于自动渲染一个文本文件&#xff0c;一般用于HTML页面&#xff0c;模版引擎渲染的最终HTML内容返回给客户端浏览器 模版系统分成两部分 静态部分&#xff1a; 例如html css .js 动态部分 djiango 模版语言&#xff0c;类似于jinja语法变量定义&…

SpringCloud 组件Gateway服务网关【全局过滤器】

目录 1&#xff0c;全局过滤器 1.1&#xff1a;全局过滤器作用 1.2&#xff1a;自定义全局过滤器 1.3&#xff1a;过滤器执行顺序、 2&#xff1a;跨域问题 2.1&#xff1a;什么是跨域问题 2.2&#xff1a;示例跨域问题 2.3&#xff1a;解决跨域问题 1&#xff0c;全局…

python将CSV文件(excel文件)按固定行数拆分成小文件

最近接到一个需求&#xff0c;就是把非常大的CSV文件&#xff0c;电脑根本打不开&#xff08;或者打开也不能完全展现所有的数据&#xff09;&#xff0c;以每 80万(不够80万行的也独自成为一个单独的文件) 行进行拆分成一个小文件&#xff0c;各位小伙伴在日常工作中有没有遇到…

seata分布式事务1.4版本TM注册全局事务之源码分析(五)

今天我们分析seata分布式事务1.4版本TM注册到全流程的源码&#xff0c;这也是事务执行的核心开始&#xff1a; 首先分为客户端TM和服务端TC&#xff0c;业务发起肯定在TM端&#xff0c;接受在TC端。 整体类图&#xff1a; 一、业务入口TM端&#xff1a; 1、GlobalTransactio…

将本地文件上传到gitee和GitHub,以及Github加速访问

&#xff08;1&#xff09;我全程使用网络上合法加速软件&#xff0c;网易UU加速器是网易自主研发极速引擎&#xff0c;属于合法软件。我们进行加速行为也只是针对于Github这一个网站。 &#xff08;2&#xff09;GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;纯技…

Win,M1Mac上安装jupyter的MATLAB支持插件的方法

tags: MATLAB Win Mac Tips 写在前面 11月的最后一天了, 总结一下支持MATLAB的一个jupyter的插件, 有了这个你就可以在jupyter notebook或者jupyter lab上面使用MATLAB语句了, 还是很不错的, 虽然我安装了好久… 下面来说一下我在我的电脑以及朋友的电脑(Win11)上面安装这个…