【滤波器】基于Matlab设计巴斯 切比雪夫 椭圆 低通高通带通带阻数字滤波器附GUI界面

news2024/11/18 16:47:07

 ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

介绍了基于Matlab的IIR数字滤波器设计方法.先确定数字滤波器的性能指标,再按照一定的映射规则(冲激响应不变法或双线性变换法)变换成模拟滤波器的性能指标,然后采用一定的逼近方法(巴特沃斯型或切比雪夫型)设计模拟滤波器,最后将模拟滤波器按照同样的映射规则转变成数字滤波器.同时介绍了设计IIR数字滤波器常用的Matlab函数.通过Matlab实验仿真,利用介绍的数字滤波器的设计方法,成功地设计出了满足预定指标的各型IIR数字滤波器.

⛄ 部分代码

function varargout = Butterworth_bandpass(varargin)

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name',       mfilename, ...

                   'gui_Singleton',  gui_Singleton, ...

                   'gui_OpeningFcn', @Butterworth_bandpass_OpeningFcn, ...

                   'gui_OutputFcn',  @Butterworth_bandpass_OutputFcn, ...

                   'gui_LayoutFcn',  [] , ...

                   'gui_Callback',   []);

if nargin && ischar(varargin{1})

    gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

    gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before Butterworth_bandpass is made visible.

function Butterworth_bandpass_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject    handle to figure

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

% varargin   command line arguments to Butterworth_bandpass (see VARARGIN)

% Choose default command line output for Butterworth_bandpass

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes Butterworth_bandpass wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = Butterworth_bandpass_OutputFcn(hObject, eventdata, handles) 

% varargout  cell array for returning output args (see VARARGOUT);

% hObject    handle to figure

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes during object creation, after setting all properties.

function muestreo_CreateFcn(hObject, eventdata, handles)

% hObject    handle to muestreo (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

%       See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

    set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in menu.

function menu_Callback(hObject, eventdata, handles)

% hObject    handle to menu (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

FILTER

close Butterworth_bandpass

% --- Executes on button press in calcular.

function calcular_Callback(hObject, eventdata, handles)

% hObject    handle to calcular (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

Fs=str2double(get(handles.muestreo,'String'));

Fpb=str2double(get(handles.b_pb,'String'));

Fpb1=str2double(get(handles.dos0,'String'));

Fsb=str2double(get(handles.b_rb,'String'));

Fsb1=str2double(get(handles.dos1,'String'));

Rpb=str2double(get(handles.edit4,'String'));

Rsb=str2double(get(handles.edit5,'String'));

if (Fs<0 | isnan(Fs))

   errordlg('El valor debe ser num閞ico positivo ',' ERROR ');

   set(handles.muestreo,'String',10);

   handles.muestreo=10;

end

if (Fpb<0 | isnan(Fpb))

   errordlg('El valor debe ser num閞ico positivo ',' ERROR ');

   set(handles.b_pb,'String',1);

   handles.muestreo=1;

end

if (Fsb<0 | isnan(Fsb))

   errordlg('El valor debe ser num閞ico positivo ',' ERROR ');

   set(handles.b_rb,'String',4);

   handles.b_rb=4;

end

if (Rpb<0 | isnan(Rpb))

   errordlg('El valor debe ser num閞ico positivo ',' ERROR ');

   set(handles.edit4,'String',10);

   handles.edit4=10;

end

if (Rsb<0 | isnan(Rsb))

   errordlg('El valor debe ser num閞ico positivo ',' ERROR ');

   set(handles.edit5,'String',30);

   handles.edit5=30;

end

fs=Fs/2;    %Frec. de muestreo

fpb=[Fpb Fpb1]/fs;  %Frec. de borde pasa banda

fpb

fsb=[Fsb Fsb1]/fs; % Frec. de borde rechaza banda

fsb

%------------------------------------------------------------

[n,wn]=buttord(fpb, fsb, Rpb, Rsb);

[b,a] =butter(n,wn,'bandpass');

[H,w]=freqz(b,a,512,1);

%Trazado de la respuesta en Magnitud

axes(handles.axes1)

plot(w,20*log10(abs(H)));

grid on;

title (['Filtro pasa-bajos, Respuesta en magnitud, orden=', num2str(n)]);

xlabel('frecuencia');

ylabel('H(f) db')

axis([0 0.5 -Rsb-10 0])

axes(handles.axes2)

plot(w,angle(H));

grid on;

title (['Filtro pasa-bajos, Respuesta en magnitud, orden=', num2str(n)]);

xlabel('frecuencia')

ylabel('醤gulo de H rad')

%Resp al impulso

axes(handles.axes3)

[y,t]= impz(b,a,60);

stem(t,y);

title (['Filtro pasa-bajos, Respuesta al impulso, orden=', num2str(n)]);

%Ploteo de los polos y ceros

z= roots(b);  %Zeros

p = roots(a);  % Polos

axes(handles.axes4)

zplane(z,p)

title(['Trazade polos y ceros para Butter'])

⛄ 运行结果

⛄ 参考文献

[1]王艳文, 史先红. 基于MATLAB的切比雪夫Ⅱ型数字低通滤波器设计[J]. 科技视界, 2013(17):1.

[2]贾建科, 韩团军, 朱宁洲. 基于MatlabGUI的模拟带通滤波器的设计[J]. 现代电子技术, 2010, 33(10):5.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11月VR大数据:SteamVR新增PICO 4串流数据统计

Hello大家好&#xff0c;每月一期的VR内容/硬件大数据统计又和大家见面了。 想了解VR软硬件行情么&#xff1f;关注这里就对了。我们会统计Steam平台的用户及内容等数据&#xff0c;每月初准时为你推送&#xff0c;不要错过喔&#xff01; 本数据报告包含&#xff1a;Steam VR硬…

暖通锅炉远程监控解决方案

现状及需求分析 随着科学技术的发展&#xff0c;人们对生活品质的追求越来越高&#xff0c;空调行业也在快速发展&#xff0c;建筑空调已经成为现代城市不可或缺的重要组成部分。一般楼宇大厦都采用大型空调机组供暖制冷&#xff0c;那如何保证设备能恒温正常运行&#xff1f;…

[Python图像处理] 使用OpenCV检测对象颜色

使用OpenCV检测对象颜色前言使用 OpenCV 检测对象颜色相关链接前言 检测图像中对象颜色的一种简单方法是首先将图像从 RGB 转换为 HSV 颜色空间&#xff0c;然后使用一系列色调检测对象&#xff0c;这可以通过使用 OpenCV 库轻松完成。为了完成对象检测任务&#xff0c;我们需…

【论文合集】2022年12月医学影像期刊论文合集

★ 本月IEEE Transactions on Medical Imaging(1区 top if 11.037) 共41篇, 本月无MIA。 ”标题高频词汇 (learning, 13), (imaging, 6), (image, 6), (segmentation, 6), (network, 6), (deep, 5), (images, 5), (medical, 4), (multiple, 4), (dynamic, 4), (mri, 4), (magn…

《痞子衡嵌入式半月刊》 第 40 期

痞子衡嵌入式半月刊&#xff1a; 第 40 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻&#xff0c;农历年分二十四节气&#xff0c;希望在每个交节之日准时发布一期。 本期刊是开源项目&#xff08;GitHub: JayHeng/pzh-mcu-bi-weekly&#xff09;&#xff0c;欢…

[附源码]计算机毕业设计基于Springboot颐养天年辅助平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

网络管理配置怎么路由

作者简介&#xff1a;一名99年软件运维应届毕业生&#xff0c;正在自学云计算课程。宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。创作不易&#xff0c;动动小手…

基于springboot的鲜花销售商城网站

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Qt-FFmpeg开发-打开本地摄像头(6)

Qt-FFmpeg开发-打开本地摄像头【软解码 OpenGL显示YUV】 文章目录Qt-FFmpeg开发-打开本地摄像头【软解码 OpenGL显示YUV】1、概述2、实现效果3、FFmpeg打开摄像头解码流程4、查询可用摄像头5、设置摄像头打开参数6、主要代码6.1 解码代码5.2 OpenGL显示RGB图像代码7、完整源代码…

SQLDEV平台教学 - 权限配置

前置 - 安装SQLDEV并激活 未安装的可以访问SQLDEV官网下载社区版安装或申请商业版试用。 社区版只支持单个项目&#xff0c;无法新建项目&#xff0c;本篇以商业版为演示基础。 新建项目 超级管理员/应用管理员账号登录系统。点击顶部导航“应用管理”&#xff0c;在下拉菜单…

nginx $uri导致的CRLF注入漏洞

路径&#xff1a;nginx/insecure-configuration 运行成功后&#xff0c;Nginx将会监听8080/8081/8082三个端口&#xff0c;分别对应三种漏洞。 8080&#xff1a;CRLF注入漏洞 8081&#xff1a; 目录穿越漏洞 8082&#xff1a; add_header被覆盖 $uri导致的CRLF注入漏洞 Nginx…

GDP-L-岩藻糖二钠盐,GDP-fucose ,6-Deoxy-β-L-galactopyranosylguanosine 5′-diphosphate

产品名称&#xff1a;GDP-L-岩藻糖二钠盐&#xff0c;GDP-B-L-岩藻糖(钠盐) 英文名称&#xff1a;GDP-fucose &#xff0c;6-Deoxy-β-L-galactopyranosylguanosine 5′-diphosphate Chemical Name GDP-L-岩藻糖 GDP-L-fucose disodium salt CAS Number 15839-70-0 Mol. For…

了解低压差稳压IC(LDO)及其在电池驱动设备中的意义

了解低压差稳压IC&#xff08;LDO&#xff09;及其在电池供电设备中的重要性 如今&#xff0c;电子设备的尺寸比以往任何时候都要小。这使我们能够在智能手表&#xff0c;健身追踪器和其他可穿戴设备等紧凑型便携式设备中加入功能&#xff0c;它还帮助我们部署远程物联网设备进…

Batch Normalization——李宏毅机器学习笔记

Batch Normalization 详细可见paper《Batch Normalization: Accelerating Deep Network Training by Reducing Internet Covariate Shift》&#xff0c;2015 Feature Scaling&#xff08;特征缩放&#xff09;/Feature Normalization &#xff08;引言&#xff09; Make dif…

Python入门项目,从不会编程到完成这个小游戏,也就两天时间

前言 还在啃书本学python吗&#xff1f; 为什么不试试用有趣的小游戏来学编程&#xff1f;自己开发的游戏&#xff0c;既能活学活用python&#xff0c;又能找回学习的自信。 &#xff08;文末送读者福利&#xff09; 下面我带大家开发一个Python小游戏&#xff0c;这是我在…

ORACLE连接不上 Linux网络 端口 问题判断

最近遇到一个问题&#xff0c;配置一个oracle数据源怎么都连接不上&#xff0c;ping Ip可以连接通&#xff0c;且毫秒数都很小。telnet 也能连接 但是很快就自动断开。 别人也能连接oracle的数据库&#xff0c;我这边服务器不行&#xff0c;就很奇怪。各种方法都来试试。 SEL…

GD32F30x系列Systick系统滴答定时器 (Qt模拟项目 可套函数模板)

GD32F30x系列Systick系统滴答定时器【0】Qt 项目效果展示【1】SysTick 简介【2】SysTick 寄存器【3】代码配置和初始化说明【3.1】core_cm4.h头文件【3.2】systick.h【3.3】mainwindow.h【3.4】systick.cpp【3.5】mainwindow.cpp [主流程]本次Systick系统滴答定时器&#xff0c…

Ubuntu 18.04安装fast-dds

提纲 1、概述 2、foonathan_memory_vendor 3、fast-cdr 4、fast-dds 5、编译HelloWorldExample 6、安装fast-dds-gen&#xff0c;使用IDL文件构建代码 1、概述 fastdds是干什么&#xff0c;就不重复说了。 操作系统是Ubuntu18.04 本次采用源码编译安装&#xff0c;需要使用到…

用二元泊松模型预测2022世界杯8强

用二元泊松模型预测2022世界杯8强 网上有很多文章用双泊松&#xff08;Double Poisson&#xff09;模型来预测世界杯比赛结果。但是双泊松模型有一个严重的缺陷&#xff0c;那就是它假设比赛中两队的比分是条件独立的。而我们都知道&#xff0c;在对抗性比赛中&#xff0c;两…

(十二)笔记MQ学习之优劣介绍

&#xff08;&#xff08;十二&#xff09;笔记MQ学习之优劣介绍一、MQ的优势1.应用解耦2.异步提速3.削峰填谷二、MQ的劣势1.系统可用性降低2.系统复杂度提高3.一致性问题三、MQ的使用条件四、常见的MQ产品一、MQ的优势 1.应用解耦 使用MQ使得应用解耦&#xff0c;提升容错性…