我是靠谱客的博主 彪壮羊,最近开发中收集的这篇文章主要介绍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= %4dn',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;


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

最后

以上就是彪壮羊为你收集整理的MATLAB:巴特沃斯低通滤波器过滤信号的全部内容,希望文章能够帮你解决MATLAB:巴特沃斯低通滤波器过滤信号所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部