生成一段matlab代码,对x = 5*(exp(-80*t)).*sin(2*pi*f*t)信号做希尔伯特变换做出原信号包络谱,并绘制出改信号的频谱图
时间: 2023-11-14 12:53:38 浏览: 134
用matlab进行信号的频谱分析
% 设置参数
f = 100; % 信号频率
t = linspace(0, 0.05, 1000); % 时间范围及采样点数
x = 5*(exp(-80*t)).*sin(2*pi*f*t); % 原信号
% 希尔伯特变换
h = hilbert(x);
env = abs(h);
% 绘制原信号包络谱
figure;
plot(t, x, t, env);
title('Original Signal Envelope Spectrum');
xlabel('Time (s)');
ylabel('Amplitude');
legend('Original Signal', 'Envelope');
% 绘制信号的频谱图
figure;
Fs = 1/(t(2)-t(1)); % 采样频率
N = length(x); % 采样点数
Y = fft(x)/N; % 傅里叶变换
freq = linspace(0, Fs/2, N/2); % 频率范围
plot(freq, 2*abs(Y(1:N/2)));
title('Frequency Spectrum');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
阅读全文