简单的包络检波

这篇博客介绍了简单的包络检波原理,通过比较输入信号Ui(t)和输出信号Uo(t-)的大小来更新输出。当输入大于输出时,输出等于输入;否则,利用RC电路的特性更新输出。博主通过解析差分方程,展示了如何将这一过程转化为编程代码。

当 Ui(t) > Uo(t-) 时 Uo(t) = Ui(t)
当 Ui(t) < Uo(t-) 时
RC dUo/dt = Uo
化成差分方程为:
这里写图片描述
把这个过程用程序来实现就有了下面的代码。

clear all;
x = 0:0.000001:0.005;
y = sin(200000.*pi.*x) .* (sin(2000.*pi.*x)*0.2 + 0.5);
mold = 0.0;
out = x;
rc = 400;
for i=1:5000
    if y(i) > mold
        mold = y(i);
    else
        mold = (mold * rc)/(rc + 1);
    end
    out(i) = mold; 
end
subplot(211);
plot(y);
subplot(212);
plot(out);

% 半波
% void env_half(double in[], double out[], int N)  
% {  
%     for(int i = 0; i < N; i++)  
%     {  
%         if( in[i] > m_old)  
%         {  
%             m_old = in[i];  
%             out[i] = m_old;  
%         }  
%         else  
%         {  
%             m_old *= m_rct / ( m_rct + 1 );  
%             out[i] = m_old;  
%         }  
%     }  
% } 
% 全波
% void env_full(double in[], double out[], int N)  
% {  
%     double abs_in;  
%     for(int i = 0; i < N; i++)  
%     {  
%         abs_in = fabs(in[i]);  
%         if( abs_in > m_old)  
%         {  
%             m_old = abs_in;  
%             out[i] = m_old;  
%         }  
%         else  
%         {  
%             m_old *= m_rct / ( m_rct + 1 );  
%             out[i] = m_old;  
%         }  
%     }  
% }  

这里写图片描述

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司(NI)开发的图形化编程环境,用于构建虚拟仪器应用。在本案例中,“基于LabVIEW的包络检波”是指运用LabVIEW设计并实现包络检波信号处理算法包络检波是通信领域常用技术,主要用于从调幅(AM)信号中提取未调制原始信号,即获取信号幅度信息。其基本原理是将高频调幅信号经非线性器件(如二极管或运算放大器)处理,改变其幅度特性,得到信号包络,可理解为对信号“解调”,揭示调幅信号中隐藏信息。在LabVIEW中实现包络检波,需先了解其数据流编程模型,每个VI(Virtual Instrument,虚拟仪器)由前面板和程序框图组成,前面板用于显示用户界面,程序框图包含实际代码逻辑。对于包络检波,可创建自定义VI,包含输入、输出及必要控制和指示器。输入通常为AM信号时域数据,可连接外部信号源或用LabVIEW内置函数生成;输出为经包络检波处理后的信号包络。在程序框图中,可用数学运算节点实现非线性转换,二极管检波是最简单包络检波方式,LabVIEW虽无直接二极管函数,但可通过数学函数模拟其特性,如用阈值比较器或平方函数,复杂系统可能还需低通滤波器平滑输出、去除高频噪声。为验证包络检波效果,可在前面板添加图表控件,实时显示输入信号和输出包络波形,便于调试分析。在LabVIEW中,错误处理很重要,需在程序中添加适当错误处理结构,如错误簇和错误处理函数,确保程序遇问题能正常运行。设计完成后,可将VI保存为独立程序,与其他LabVIEW用户分享或在不同项目中重用。压缩包中的“包络检波.vi”文件实现了上述功能,打开运行该VI,可查看具体实现细节,包括数据处理流程、使
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值