信号包络及其提取方法(Matlab)
信号包络及其提取方法
介绍信号包络,以及信号包络的提取方法。
一、信号包络
直观地从时域来讲,信号包络就是信号波形的轮廓。
本质上,信号包络是带通信号的基带部分。
一个实带通信号记为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 BAM≪2πRC1≪fc
三、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("基带信号", "希尔伯特变换求出来的包络信号")
信号包络及其提取方法(Matlab)相关推荐
- am信号包络检波matlab,通信电路课程设计--AM信号包络检波器.doc
项目: AM信号包络检波器 班级: 电气系 07级 通信工程 学号: 070913**** 姓名: ** ** ** 指导老师: * * * 老师 日期: 2009年12月28日~~2009年12月3 ...
- 类EMD的“信号分解方法”及MATLAB实现(第七篇)——EWT
这是"类EMD"方法系列的第7篇,前几篇分别是EEMD.CEEMD.CEEMDAN.VMD.ICEEMDAN.LMD,想要看前几种方法的点击链接可以跳转. 经验小波变换(empir ...
- 类EMD的“信号分解方法”及MATLAB实现(第六篇)——LMD
继续完善"类EMD"方法系列,本篇是继EEMD.CEEMD.CEEMDAN.VMD.ICEEMDAN后的第6篇,想要看前几种方法的点击链接可以跳转. LMD(local mean ...
- 类EMD的“信号分解方法”及MATLAB实现(第四篇)——VMD
重头戏来了. 在以往的应用经验里,VMD方法在众多模态分解方法中可以说是非常好的.从催更力度上看,这个方法也是格外受关注.笔者决定加快进度快一些写完这个方法,十月份了有些同学要开始做毕设,希望这篇文能 ...
- 基于ITD实现的轴承故障信号分解并附Matlab源码
基于ITD实现的轴承故障信号分解并附Matlab源码 轴承是旋转机械中重要的支撑部件,其状态的健康程度对设备运行的性能和寿命有着至关重要的影响.因此,轴承状态监测和故障诊断成为了研究热点.本文基于IT ...
- python cv2 轮廓的包络 面积_Python 基于FIR实现Hilbert滤波器求信号包络详解
在通信领域,可以通过希尔伯特变换求解解析信号,进而求解窄带信号的包络. 实现希尔伯特变换有两种方法,一种是对信号做FFT,单后只保留单边频谱,在做IFFT,我们称之为频域方法:另一种是基于FIR根据传 ...
- 基于matlab的离散系统时域分析实验,《信号与系统》 实验一 信号的时域分析及Matlab实现...
实验一 信号的时域分析及Matlab实现 参考文章 题目 题目1代码实现 讲解 sinc(t) Sa(t) 时移.翻转.展缩 subs(s,old,new) ezplot() 绘画符号函数 题目2代码 ...
- matlab仿真生成信号程序,信号与系统的MATLAB仿真
用哪个MATLAB进行信号与系统仿真,有详细的实例程序及结果 1 信号与系统的MATLAB 仿真 一.信号生成与运算的实现 1.1 实现)3(sin )()(π±===t t t t S t f a ...
- 基于MATLAB的信号与系统实验指导,《信号与系统及MATLAB实现》实验指导书
内容简介: <信号与系统及MATLAB实现>实验指导书 前 言 长期以来,<信号与系统>课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计 ...
最新文章
- 递归 累加和累乘
- Websocket协议的学习、调研和实现
- sim卡rfm_信用卡客户的RFM集群
- 黑马程序员——生成html静态页面,方便seo,加快加载速度
- 中国联通被指乱扣费 返还金额限制用
- 第六部分 PHP实例
- 栈的应用 - 就近匹配
- 6-5 软件测试与测试优先的编程
- 1104File Space Bitmap Block损坏能修复吗
- 基于jquery.fixedheadertable 表格插件左侧固定 对齐
- USACO 3.4 Closed Fences (计算几何)
- UNIX 环境高级编程(四)—— dirent.h
- POJ 3576 Language Recognition
- chroot环境的快速构建
- 教你如何用C语言做一个简单的贪吃蛇
- kali linux查看局域网下所有IP,并对指定IP实施局域网内攻击
- 多个jar合并成一个jar(复制的)
- 卡路里计算JAVA_pedometer 这是一个基于android平台的软件,用于计算你走路的步数,算出消耗的卡路里,以达到健 238万源代码下载...
- 白鹭引擎入门教程一(Egret)
- 计算机2级mysql有用吗_计算机二级证书对程序员并没有什么卵用!