Matlab fir1 设计高低通滤波器

clc;clear ;close all;

%%输入信号
fs=1000;
T=1/fs;
L=1000;
t=(0:L-1)*T
x=4*sin(2*pi*50*t)+sin(2*pi*150*t)

%%频谱分析
N=length(x)
y=abs(fft(x)/(N/2))
xla=(0:N-1)*fs/N

 
%%设计低通滤波器
%目的 留下频率在150Hz以内的数据
%带通频率的确定

fc0=100;        %固定公式  换成你想要的最低的通过频率  fp0
Wp=2*fc0/fs;
filter_1=fir1(90,Wp,'low');
%filter_1=fir1(90,Wp,'low');
freqz(filter_1)
s=filter(filter_1,1,x);

%%频域分析
N=length(s);
ys=abs(fft(s/(N/2)));
sla=(0:N-1)*fs/N;

figure(); 

 
subplot(3,1,1)
plot(x)
 
subplot(3,1,2);
plot(xla(1:N/2),y(1:N/2   ));

subplot(3,1,3);
plot(xla(1:N/2),ys(1:N/2))








  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值