matlab线条不平滑如何滤波,复杂曲线的包络线不平滑

close all

clear all

clc

fs=1000;                       %采样频率

y=importdata('F:\20190302飞机数据\数据\1595\20190227111500.00000.mat');

z=y(:,1);

% z=z(180001:300000);

N=length(z);              %N表示信号的长度

t=0:1/fs:(N-1)/fs;

% 设计低通滤波器

d = fdesign.lowpass(1.0,30,1,40,fs);% Fpass,Fstop,通带纹波增益(1dB)、阻带衰减(-40dB)

h = design(d);

%对信号进行低通滤波并画出波形

x1=filter(h,z);

figure;

% plot(t,x1);           %滤波后信号时域图

% hold on;

fs2=38.5;

fp2=38;

fp1=29;

fs1=28.5;

[x2]=fir_bpf(z,fs,fs2,fp2,fp1,fs1)

% x2=smooth(x2,50);       %利用移动平均法对x进行平滑处理

% x2=medfilt1(x2,10);         %中值滤波

% [up,down] = envelope(t,x2,'linear');

[up,down] = envelope(t,x2,'linear');

plot(t,up,'m');

hold on;

plot(t,down,'m');

hold on;

grid on;

[up,down] = envelope(t,x1,'linear');

plot(t,up,'b');

hold on;

plot(t,down,'b');

hold on;

grid on;

set(gca,'XTick',[0:60:300]);   % 修改x轴坐标间隔

% set(gca,'yTick',[-3000:200:3000]);  % 修改y轴坐标间隔

% axis([0 300 -1000 1000]) ;

set(gca,'fontsize',18);

xlabel('时间 t/s');

ylabel('幅值');

legend('90-120Hz','','30Hz','');

title('11:15时刻30Hz、90-120Hz滤波后包络线','FontSize',18);

图像分别是这样的,毛刺特别多,尝试过中值滤波和移动平均滤波,结果还是不平滑,请各位老师指教。

111530.jpg

(21.7 KB, 下载次数: 0)

2019-3-19 10:13 上传

b4d287d1aacbf0cf95a77c41289acfe6.gif

c5006d1a5b4047f80d42a7082635a87b.gif

13c8d6a7b440ed15f72d24e253df616c.png

111590120.jpg

(16.17 KB, 下载次数: 0)

2019-3-19 10:13 上传

b4d287d1aacbf0cf95a77c41289acfe6.gif

c5006d1a5b4047f80d42a7082635a87b.gif

7144c578a86ad507ffe50a7da0708c2b.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值