• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Matlab
  • 标签:

资源简介

MATLAB希尔伯特Hilbert变换求包络谱 源程序代码MATLAB希尔伯特Hilbert变换求包络谱 源程序代码MATLAB希尔伯特Hilbert变换求包络谱 源程序代码

资源截图

代码片段和文件信息

clear all;close all;clc
fs=10000;  %采样频率
t=0:0.005:1*pi;  %采样时间
x=4*sin(2*200*pi*t).*(sin(2*4500*pi*t))+25*(sin(2*4500*pi*t));  %原信号x
N=length(x); %计算原信号的长度
f=fs*(0:N-1)/N;  %频率分布

y=fft(x);  %对原时域信号x进行fft,得到频域信号y
subplot(311)
plot(fabs(y))  %绘制原信号的频谱y
title(‘原信号频谱‘)

%设计滤波器FIR滤波器
f1=128/fs;  %上截止频率(要除以采样频率,归一化)
f2=4096/fs; %下截止频率(要除以采样频率,归一化)
b=fir1(48[f1 f2]);  %设计带通滤波器
c=freqz(b1N);   %频率特性
subplot(312)   
plot(fabs(c));  %绘制带通滤波器
title(‘滤波器‘)
xlabel(‘f(Hz)‘)

%频域滤波
y1=y.*c‘;   %对原信号频域滤波,得到滤波之后的频域信号y1(原频域信号y*滤波器c)
subplot(313) 
plot(fabs(y1))  %绘制滤波之后的频域信号y1
title(‘原信号频域滤波之后‘)

%反变换y1,得到滤波之后的时域信号x1
x1=ifft(y1); %反变换y1,得到滤波之后的时域信号x1
figure
subplot(211)
plot(tx)  %绘制时域原信号x
title(‘时域原信号‘)  
subplot(212)
plot(treal(x1))   %绘制滤波之后的时域信号x1
title(‘滤波之后的时域信号‘)

%hilbert变换,对x1求包络线
x2=hilbert(real(x1));  %x1的希尔伯特变换x2
x3=abs(x2);      %x2取模,得到x3

%对x3进行fft,求包络谱
nfft=1024;  
p=abs(fft(x3nfft)); %将x3补齐到1024个,并fft,得到p,就是包络线的fft---包络谱
figure
plot((0:nfft-1)/nfft*fsp)   %绘制包络谱
title(‘包络谱‘)
msgbox(‘MATLAB编程答疑,请加QQ: 1530497909‘‘MATLAB答疑‘‘help‘)
web http://url.cn/TKcdXk -browser

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1436  2014-03-15 22:55  MATLAB希尔伯特Hilbert变换求包络谱 源程序代码\chengxu.m

     文件        892  2018-03-20 17:20  MATLAB希尔伯特Hilbert变换求包络谱 源程序代码\chengxu.rar

     目录          0  2018-03-20 17:22  MATLAB希尔伯特Hilbert变换求包络谱 源程序代码

----------- ---------  ---------- -----  ----

                 2328                    3


评论

共有 条评论