envelope函数MATLAB代码
时间: 2024-05-10 21:19:04 浏览: 172
envelope_matlab.rar_matlab envelope_matlab 包络_matlab 包络谱_包络_包络谱
以下是MATLAB中实现envelope函数的代码:
```matlab
function y = envelope(x, fs, fc)
% x: 输入信号
% fs: 采样率
% fc: 截止频率
% 设计Butterworth滤波器
[b, a] = butter(4, fc/(fs/2), 'low');
% 通过滤波器将信号x分离成上下包络
x_low = filtfilt(b, a, x);
x_high = x - x_low;
% 计算包络信号,取绝对值
y = abs(hilbert(x_high));
end
```
使用方法:
假设已经有一个采样率为`fs`的信号`x`,需要计算其上下包络,截止频率为`fc`,则可以调用`envelope(x, fs, fc)`函数,返回信号的包络`y`。
阅读全文