MATLAB:巴特沃斯低通滤波器过滤信号

MATLAB:巴特沃斯低通滤波器过滤信号

实验内容产生两个不同频率的正弦信号,设计合适的滤波器,输出其中的一个信号,滤除另外的一个信号。

代码:

%生成两个不同频率的信号
clc;
T=2;%时域长度
fs=10000;%抽样频率1KHz
T1=1/fs;%时域两相邻点之间的采样时间距离
n=0:T1:T-1;%在T时间段的采样点数
f1=200;%信号1的频率20HZ
f2=9000;%信号2的频率100HZ
x1=cos(f1*2*pi*n);%信号1
x2=cos(f2*2*pi*n);%信号2
x3=cos(f1*2*pi*n)+cos(f2*2*pi*n);%信号叠加
xk1=fft(x3);
magxk1=abs(xk1);
figure
subplot(211);plot(n,x1);axis([ 0 1 -2 2]);%信号1图像
xlabel('n');ylabel('x1(n)');title('x1(n)');grid on;
subplot(212);plot(n,x2);%信号2图像
xlabel('n');ylabel('x2(n)');title('x2(n)');grid on;
figure
subplot(211);plot(n,x3);%叠加信号图像
xlabel('n');ylabel('x3(n)');title('叠加信号x3(n)');grid on;
subplot(212);plot(n*10000,magxk1);%叠加信号频谱幅度
xlabel('f/Hz');ylabel('magxk1(n)');title('叠加信号magxk1(n)');grid on;

%巴特沃斯低通滤波器过滤信号,wp<ws为低通滤波器
fp=500;%数字滤波器的参数
ft=700;
Fs=5000;                            %设置抽样频率5KHz
wp=fp/(Fs/2);%奈奎斯特频率归一       %设置通带频率
ws=ft/(Fs/2);                       %设置阻带频率
Rp=1;                                %设置通带波纹系数
Rs=25;                               %设置阻带波纹系数        
[N,Wc]=buttord(wp,ws,Rp,Rs);%N代表满足设计要求的滤波器最小阶数,Wc是等效低通滤波器截止频率
fprintf('巴特沃斯滤波器 N= %4d\n',N);  %显示滤波器阶数
[bb,ab]=butter(N,Wc);       %求巴特沃斯滤波器系数,即求传输函数的分子和分母的系数向量
[Hb,wb]=freqz(bb,ab);             %求巴特沃斯滤波器频率响应
figure
plot(wb*Fs/(2*pi), 20*log10(abs(Hb)),'b'); %巴特沃斯滤波器图形
axis([0 1000 -30 2]);
title('巴特沃斯数字低通幅度响应/dB');
xlabel('f/Hz');ylabel('幅值/dB');
line([0 max(wb*Fs/(2*pi))],[-25 -25],'color','k','linestyle','--');
line([0 max(wb*Fs/(2*pi))],[-1 -1],'color','k','linestyle','--');
line([500 500],[-30 2],'color','k','linestyle','--');
line([700 700],[-30 2],'color','k','linestyle','--');
grid on

x4=filter(bb,ab,x1);%使用filter函数对信号进行滤波
%参数分别为滤波器系统函数的分子和分母多项式系数向量和待滤波信号输入
xk2=fft(x4);
magxk2=abs(xk2);
figure
subplot(211);plot(n,x4);% axis([ 0 4 -2 2]);
xlabel('n');ylabel('x4(n)');title('滤波后信号时域图像x4(n)');grid on;
subplot(212);plot(n*10000,magxk2);%axis([ 0 100 0 2000]);
xlabel('f/Hz');ylabel('magxk2(n)');title('滤波后信号时域图像magxk2(n)');grid on;


图形:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 12
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li星野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值