采用海明窗,设计FIR滤波器

news2024/11/24 17:55:40


clc; % 清空命令行窗口
clear; %清空工作区
close all;

% fir1函数使用方法
b = fir1(48,[0.35 0.65]);
freqz(b,1,512)

figure
b1 = fir1(11,0.2);
plot(20*log(abs(fft(b1)))/log(10))

% E4_1_fir1.m文件的源码

%

% 采用海明窗,分别设计长度为41(阶数为40)的低通(截止频率为200Hz)、

% 高通(截止频率为200Hz)、带通(通带为200~400Hz)、

% 带阻滤波器(阻带为200~400Hz)FIR滤波器,

% 采样频率为2000Hz,画出其脉冲响应及幅频响应图。

figure
% E4_1_fir1.m文件的源码
% 
% 采用海明窗,分别设计长度为41(阶数为40)的低通(截止频率为200Hz)、
% 高通(截止频率为200Hz)、带通(通带为200~400Hz)、
% 带阻滤波器(阻带为200~400Hz)FIR滤波器,
% 采样频率为2000Hz,画出其脉冲响应及幅频响应图。
N = 41; %滤波器长度
fs = 2000; %采样频率

%g各种滤波器的特征频率
fc_lpf = 200;
fc_hpf = 200;
fp_bandpass = [200 400];
fc_stop = [200 400];

%以采样频率的一半,对频率进行归一化处理
wn_lpf = fc_lpf*2/fs;
wn_hpf = fc_hpf*2/fs;
wn_bandpass = fp_bandpass*2/fs;
wn_stop = fc_stop*2/fs;

%采用fir1 函数涉及FIR滤波器
b_lpf = fir1(N-1,wn_lpf);
b_hpf = fir1(N-1, wn_hpf,"high");
b_bandpass = fir1(N-1,wn_bandpass,'bandpass');
b_stop = fir1(N-1,wn_stop,'stop');

%求滤波器的幅频响应
m_lpf = 20*log(abs(fft(b_lpf)))/log(10);
m_hpf = 20*log(abs(fft(b_hpf)))/log(10);
m_bandpass = 20*log(abs(fft(b_bandpass)))/log(10);
m_stop = 20*log(abs(fft(b_stop)))/log(10);

%设置幅频响应的横坐标单位为Hz
x_f = 0:(fs/length(m_lpf)):fs/2;

%绘制单位脉冲响应
subplot(421); stem(b_lpf); xlabel('n'); ylabel('h(n)');
title('低通滤波器的单位脉冲响应','FontSize',8);
subplot(423); stem(b_hpf); xlabel('n'); ylabel('h(n)');
title('高通滤波器的单位脉冲响应','FontSize',8);
subplot(425); stem(b_bandpass); xlabel('n'); ylabel('h(n)');
title('带通滤波器的单位脉冲响应','FontSize',8);
subplot(427); stem(b_stop); xlabel('n'); ylabel('h(n)');
title('带阻通滤波器的单位脉冲响应','FontSize',8);

%绘制幅频响应曲线
subplot(422); plot(x_f,m_lpf(1:length(x_f))); 
xlabel('频率(Hz)','FontSize',8); ylabel('幅度(dB)','FontSize',8);
title('低通滤波器的幅频响应','FontSize',8);

subplot(424); plot(x_f,m_hpf(1:length(x_f))); 
xlabel('频率(Hz)','FontSize',8); ylabel('幅度(dB)','FontSize',8);
title('高通滤波器的幅频响应','FontSize',8);

subplot(426); plot(x_f,m_bandpass(1:length(x_f))); 
xlabel('频率(Hz)','FontSize',8); ylabel('幅度(dB)','FontSize',8);
title('带通滤波器的幅频响应','FontSize',8);

subplot(428); plot(x_f,m_stop(1:length(x_f))); 
xlabel('频率(Hz)','FontSize',8); ylabel('幅度(dB)','FontSize',8);
title('带阻滤波器的幅频响应','FontSize',8);


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

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

相关文章

python基基基基基基础知识

python 基础入门 一、python介绍和安装 1. python语言的特点 语法简洁类库丰富跨平台可扩展源码开放 2. python版本 官方版本 只包含python的解释程序和一些标准库 https://www.python.org/downloads/,安装后打开终端输入python,显示python版本即为安…

手推FlinkML2.2(二)

FeatureHasher(特征哈希器)是一种用于处理高维分类特征(如文本或类别特征)的方法。它将特征转换为固定长度的数值向量,以便在机器学习模型中使用。特征哈希通过哈希函数将特征映射到较低维度的向量空间,可以…

【Linux网络】PXE高效批量网络装机

PEX高效批量网络装机 一、部署PXE远程安装服务1.1PXE的优点1.2搭建PXE网络体系的前提条件 二、实现Kincksatrt无人值守安装2.1实验思路,2.2实验:无人值守远程安装2.2.1实现 Kickstart 无人值守安装 一、部署PXE远程安装服务 PXE(预启动执行环…

Apple 的 plist 编辑器入门指南:基础操作与高级功能详解

PlistEdit Pro是一款专为macOS编写的最高级属性列表Plist编辑器。对于Mac和IOS开发人员来说,编写应用程序时必须编辑各种列表文件。PlistEdit Pro通过提供直观且功能强大的界面,使编辑这些文件更加容易。它不仅能够复制和粘贴或拖放属性列表数据&#xf…

三种线程安全的List

在单线程开发环境中,我们经常使用ArrayList作容器来存储我们的数据,但它不是线程安全的,在多线程环境中使用它可能会出现意想不到的结果。 多线程中的ArrayList: 我们可以从一段代码了解并发环境下使用ArrayList的情况&#xff…

用友滴滴:商旅费控领域现实中的1+1>2

当前,AI、5G、大数据等数智技术持续演进,千行百业数智化正在加速。在行业数字化之下,企业服务生态也进入新发展阶段,同时也孕育着新合作、新机遇。 在2023用友生态峰会上,用友与滴滴签署战略合作。用友依托数智化商旅费…

塔望3W消费战略产品案丨筷手小厨:筷手功夫饭的差异化致胜之道

筷手小厨 自热米饭 客户:颐海国际控股有限公司 品牌:筷手小厨 服务:3W消费战略 自热米饭产品案 项目背景 颐海国际控股有限公司,成立于2013年。2016年在香港主板上市(股票代码:01579.HK)。是一家集研…

使用随机森林回归填补缺失值

文章目录 一、概述二、实现1. 导入需要的库2. 加载数据集3. 构造缺失值4. 使用0和均值填充缺失值5. 使用随机森林填充缺失值6. 对填充好的数据进行建模7. 评估效果对比 一、概述 现实中收集的数据,几乎不可能是完美无缺的,往往都会有一些缺失值。面对缺…

简单沟通,远离纸质繁琐!灵活简单的在线表单制作工具

在线表单制作表单的便利性、灵活性、简易性等优势特点已经成为当今现代化办公中的必需品。随着科技的进步和发展,大到企业、学校,小到集体、个人都需要采用正确的方式去采集信息。鉴于此,在线表单制作工具就是比较理想的记录工具了。那么&…

独立储能的现货电能量与调频辅助服务市场出清协调机制(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥 🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 …

中小型企业的仓库管理中常见问题及解决方案

中小型企业的仓储管理是企业运营中非常关键的一环,直接影响到企业的资金使用效率和客户体验。因此,建立高效的仓储管理系统对于企业来说至关重要。今天我们就来聊聊中小型企业该如何建立高效的仓库管理。 一、分析一下中小型企业仓库管理的现状 1、手工…

16.Java IO数据流

目录 1. Java基本介绍 2. JDK下载安装及其环境配置 3. 一个简单的java程序 4. Eclipse基本使用、数据类型、运算符 5. 控制语句(if、switch、for、while、foreach) 6. Java数组 7. Java字符串对象(String|StringBuffer|StringBuilder|StringJoiner…

功能安全ISO26262 道路车辆 功能安全审核及评估方法第3部分:软件层面

道路车辆 功能安全审核及评估方法 第3部分:软件层面 Road vehicles - Functional Safety Audit and Assessment Method - Part 3: Software Level (工作组草案) 2022.4.15 前  言 本文件按照GB/T 1.1—2020《标准化工作导则 第1部分…

什么是客户服务平台?

在社交媒体和智能手机出现之前,品牌主要通过单向广告渠道与客户互动。社交媒体打破了这种自上而下的动态,以前所未有的方式打开了对话,将客户包括在内。 品牌不再控制客户对人们分享公司内容的行为。人们可以点击离开,向左滑动&a…

分别使用软件和硬件SPI驱动1.28寸LCD屏幕刷新时间对比(驱动IC为GC9A01)

写在前面: 屏幕供应商提供的GC9A01驱动代码过于简陋,使用的话需要修改的东西比较多,还好看到一篇文章,而且博主分享了驱动代码。文章地址 以下软件SPI部分是通过博主分享的驱动代码得来的,稍微改一下就可以用&#xf…

jconsole工具监测jvm

背景 本篇文章为了记录如何使用jconsole工具。 jconsole工具使用环境是windows,监控服务端在linux上。 如何启动jconsole 找到你本地jdk的目录,进入bin目录,找到jconsole.exe程序双击启动即可 本地进程 如果是想调试本地程序的话&#xf…

23、iOS逆向防护

一、ptrace 1.1 、ptrace概述 ptrace: process trace,提供一个进程监察和控制另一个进程.并且可以读取和改变被控制进程的内存和寄存器里面的数据.它就可以用来实现断点调试和系统调用跟踪. App可以被lldb动态调试,因为App被设备中的debugserver附加,它会跟踪我们的应用进程…

Java阶段二Day08

Java阶段二Day08 文章目录 Java阶段二Day08DML语言-数据操作语言INSERTUPDATEDELETE 数据类型整数类型浮点类型字符类型日期类型 约束条件主键约束(PRIMARY KEY)非空约束(NOT NULL)唯一性约束(UNIQUE)检查约…

安科瑞:列头柜、监控系统、触摸屏的数据中心机房配电方案

摘要 安科瑞精密配电系统是安科瑞针对数据中心集中监控要求提供的多回路监控装置,监控多回路电参量并可对各种故障进行告警。主要适用于各类列头柜、精密配电柜、电源分配柜、UPS输出柜等末端配电设备的监控。在阐述数据中心机房机柜配电目标要求的基础上&#xff…

Redis分布式缓存方案

分布式缓存 单节点Redis问题 数据丢失:数据持久化并发能力弱:搭建主从集群,实现读写分离故障恢复问题:哨兵实现健康检测,自动恢复存储能力:搭建分片集群,利用插槽机制实现动态扩容 Redis持久…