• 信号包络及其提取方法(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 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("基带信号", "希尔伯特变换求出来的包络信号")
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
  • 相关阅读:
    5、DVWA——文件上传
    【上采样方式-OpenCV插值】
    【Mac使用笔记】mac 设置开机自启动
    el-date-picker与el-time-picker的时间格式设置
    你真的知道TCP协议中的序列号确认、上层协议及记录标识问题吗?
    iOS 学习之旅 - OC 篇
    leetcode(力扣) 454. 四数相加 II (优化暴力算法)
    ActionVLAD算法详解
    开源利器:it-tools 项目介绍
    python实现图像添加噪声、噪声处理、滤波器代码实现
  • 原文地址:https://blog.csdn.net/weixin_45827703/article/details/128107427