% 包络分析(高中心频率的窄带信号分析)
% 基于:两个信号乘积的Hilbert变换取决于高频信号的Hilbert变换
%http://forum.vibunion.com/forum.php?mod=viewthread&tid=145674&highlight=hilbert
clc
clear all
close all
ts = 0.001;
fs = 1/ts;
N = 200;
k = 0:N-1;
t = k*ts;
% 原始信号
f1 = 10;
f2 = 70;
% a = cos(2*pi*f1*t); % 包络1
% a = 2 + cos(2*pi*f1*t); % 包络2
a = 1./(1+t.^2*50); % 包络3
m = sin(2*pi*f2*t); % 调制信号
y = a.*m; % 信号调制
figure
subplot(241)
plot(t, a)
title('包络')
subplot(242)
plot(t, m)
title('调制信号')
subplot(243)
plot(t, y)
title('调制结果')
% 包络分析
% 结论:Hilbert变换可以有效提取包络、高频调制信号的频率等
yh = hilbert(y);
aabs = abs(yh); % 包络的绝对值
aangle = unwrap(angle(yh)); % 包络的相位
af = diff(aangle)/2/pi; % 包络的瞬时频率,差分代替微分计算
% NFFT = 2^nextpow2(N);
NFFT = 2^nextpow2(1024*4); % 改善栅栏效应
f = fs*linspace(0,1,NFFT);
YH = fft(yh, NFFT)/N; % Hilbert变换复信号的频谱
A = fft(aabs, NFFT)/N; % 包络的频谱
subplot(245)
plot(t, aabs, t, a, '.')
title('包络的绝对值')
legend('包络分析结果', '真实包络')
subplot(246)
plot(t, aangle)
title('调制信号的相位')
subplot(247)
plot(t(1:end-1), af*fs)
title('调制信号的瞬时频率')
subplot(244)
plot(f,abs(YH))
title('原始信号的Hilbert谱')
xlabel('频率f (Hz)')
ylabel('|YH(f)|')
subplot(248)
plot(f,abs(A))
title('包络的频谱')
xlabel('频率f (Hz)')
ylabel('|A(f)|')
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB.zip (8个子文件)
MATLAB
Untitled.m 1KB
001.fig 49KB
a002.m 1KB
mymax.m 267B
Untitled.asv 1KB
a003.m 1KB
a002.asv 1KB
a001.m 1020B
共 8 条
- 1
资源评论
广_
- 粉丝: 17
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功