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))
Matlab fir1 设计高低通滤波器
最新推荐文章于 2024-09-06 15:42:57 发布