窗函数法设计FIR中,如何选择窗函数和滤波器阶数N

news2024/11/24 17:54:55

窗函数法设计FIR中,如何选择窗函数和滤波器阶数N

1、概述

       在用窗函数法设计FIR滤波器时,给出了滤波器要求的具体指标,包括通带频率fp、阻带频率fs、通带波纹Rp 和阻带衰减As 等,有了这些指标后,是否什么窗函数都可以选择呢?答案是否定的。那么怎么选择窗函数呢?在本文中将说明窗函数的选择和滤波器阶数N的选择。

2、理论基础

       不同窗函数的阻带最小衰减是不相同的,例如我们要求阻带衰减为 50dB,则矩形窗和汉宁窗的最小衰减分别为 21dB 和 44dB,若用这两种窗函数,无论 N 有多长,都没有办法满足阻带衰减达到 50dB。为了满足阻带衰减达到 50dB,只有选择海明窗,因为它的阻带衰减能达到 53dB 。所以窗函数的选择主要是根据滤波器指标中对阻带衰减 As 的要求。(根据阻带衰减选择窗函数)

       在选择窗函数后又怎么决定滤波器的阶数 N 呢?在设定的滤波器指标中给出了通带频率fp阻带频率fs ,在通带频率fp 和 阻带频率fs 之间是过渡带,设\Delta f=f_{s}-f_{p}△f=fs-fp,,则过渡带应与对应窗函数的“精确过渡带宽”相等。设把精确过渡带宽表示为dw/N,则对于任意某一种窗函数就应有:\Delta f=dw/N

这样可得N为:N=dw/\Delta f

根据上表,以海明窗为例,N=\frac{6.6\pi }{\Delta f},注意在计算中,△f是归一化的角频率。综上所述,经过渡带可求出FIR滤波器的阶数。对于带通滤波器或带阻滤波器,通带频率有fp1及fp2,阻带频率有fs1及fs2,以带通滤波器为例,分别求出\Delta f1=fp1-fs1 及 \Delta f2=fs2-fp2,从\Delta f1\Delta f2 之间选择小的一个作为\Delta f

\Delta f = min(\Delta f1, \Delta f2)

式中:min(·)表示选用最小值。

3、实例

例3-13-1、要求设计一个低通滤波器,采样频率为100Hz,通带频率fp=3Hz,阻带频率fs=5Hz;而通带波纹Rp=3dB,阻带衰减As=50dB。由于设计要求As=50dB,分析可知选择海明窗能满足要求,所以在窗函数法中用海明窗。

程序如下:

clear all; clc; close all
Fs = 100;                        % 采样频率 
Fs2 = Fs/2;                      % 奈奎斯特频率
fp = 3; fs = 5;                  % 通带和阻带频率
Rp =3 ; As = 50;                 % 通带波纹和阻带衰减
wp = fp*pi/Fs2; ws = fs*pi/Fs2;  % 通带和阻带归一化角频率
deltaw= ws - wp;                 % 过渡带宽Δω的计算
N = ceil(6.6*pi/ deltaw);        % 按海明窗计算所需的滤波器阶数N(按式(3-13-1))
N = N + mod(N,2);                % 保证滤波器系数长N+1为奇数
wind = (hamming(N+1))';          % 海明窗计算
Wn=(3+5)/100;                    % 计算截止频率
b = fir1(N,Wn,wind);             % 用fir1函数设计FIR第1类滤波器
[db,mag,phs,gdy,w] = freqz_m(b,1); % 计算滤波器响应
% 作图
subplot 211; plot(w*Fs/(2*pi),db,'k','linewidth',2);
title('(a)低通滤波器的幅值响应');
grid; axis([0 20 -70 10]); 
xlabel('频率/Hz');  ylabel('幅值/dB')
set(gca,'XTickMode','manual','XTick',[0,3,5,20])
set(gca,'YTickMode','manual','YTick',[-50,0])
subplot 212; stem(1:N+1,b,'k');
xlabel('频率/Hz');  ylabel('幅值/dB')
title('(b)低通滤波器的脉冲响应');
xlabel('样点');  ylabel('幅值')
axis([0 167 -0.05 0.1]); 
set(gca,'XTickMode','manual','XTick',[1,84,167])
set(gcf,'color','w');

说明:

①因为选择了海明窗,按式N=dw/\Delta f求出滤波器阶数N:N = ceil(6.6 * \pi / dw)

②一般设计的FIR滤波器都是第1类FIR滤波器,要求脉冲序列长N是奇数。而从①
中求得的滤波器阶数N不知是偶数还是奇数。通过 N = N + mod(N,2) 保证滤波器阶数N为偶数,而脉冲响应序列长将是N+1,即为奇数,满足第1类FIR滤波器要求。滤波器阶数若为N,脉冲响应序列的长度总为N+1,在FIR滤波器中脉冲响应序列的长度与滤波器阶数总差1。

③在计算窗函数长度时用的 dw 是归一化角频率,而在 fir1函数中的 Wn 用的是归一化频率,这两者的单位是不同的,且截止频率 Wn 的计算是用 Wn=(fp+fs)/2

运行程序后得上图,从图中可看出滤波器完全满足设计的要求,在 5Hz处阻带衰减大于 50dB。

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

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

相关文章

辐射骚扰整改思路及方法:实地验证?|深圳比创达电子EMC

某产品首次EMC测试时,辐射、静电、浪涌均失败。本篇文章就“实地验证”问题进行详细讨论。 方案拟定好后,就该准备前往EMC检测机构进行测试了。出发前,先分析4个解决方案的易操作程度:方案2最容易验证,只要将磁环往电…

【机器学习】六、概率图模型

今天我们对概率图模型(Probabilistic Graphical Model,PGM)做一个总结。 模型表示 概率图模型,是指一种用图结构来描述多元随机变量之间条件独立关系的概率模型。 它提出的背景是为了更好研究复杂联合概率分布的数据特征&#x…

亚马逊合规,亚马逊涉及12个站点合规政策更新,需警惕合规要求!

最近,许多亚马逊站点的卖家陆续收到了合规政策更新的通知邮件,涵盖了美国站、加拿大站、英国站、法国站、意大利站、德国站以及西班牙站。 这些更新影响了不同品类的卖家,包括以下品类: 美国站(US)对于“发…

农林牧数据可视化监控平台 | 智慧农垦

数字农业是一种现代农业方式,它将信息作为农业生产的重要元素,并利用现代信息技术进行农业生产过程的实时可视化、数字化设计和信息化管理。能将信息技术与农业生产的各个环节有机融合,对于改造传统农业和改变农业生产方式具有重要意义。 图扑…

3 任务3 使用趋动云部署自己的stable-diffusion

使用趋动云部署自己的stable-diffusion 1 创建项目:2 初始化开发环境实例3 部署模型4 模型测试 1 创建项目: 1.进入趋动云用户工作台,选择:当前空间,请确保当前所在空间是注册时系统自动生成的空间。 a.非系统自动生成…

19.6 Boost Asio 文本压缩传输

Base64是一种二进制到文本的编码方案,用于将二进制数据转换为ASCII字符串格式。它通过将二进制数据流转换为一系列64个字符来工作,这些字符都可以安全地传输到设计用于处理文本数据的系统中。 如下代码中我们使用Boost中提供的base64_from_binary头文件…

网站小程序分类目录网源码系统+会员登录注册功能 带完整搭建教程

大家好啊,源码小编今天来给大家分享一款网站小程序分类目录网源码系统会员登录注册功能 。 以下是核心代码图模块: 系统特色功能一览: 分类目录:系统按照不同的类别对网站进行分类,方便用户查找自己需要的网站。用户可…

【算法与数据结构】39、LeetCode组合总和

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:这道题当中数字可以多次使用,那么我们在递归语句当中不能直接找下一个candidate的元素&…

IP地址与MAC地址(硬件地址)的区别

IP地址和硬件地址都是用于标识网络设备的地址,但它们的作用和使用方式不同。IP地址是用于在网络中唯一标识一个设备的逻辑地址它是由网络协议栈分配的,可以动态地分配和改变。而硬件地址是设备的物理地址,也称为MAC地址,是由设备制…

《009.Springboot+vue之进销存管理系统》

《009.Springbootvue之进销存管理系统》 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatisredis; 前台:vueElementUI; [2]功能模块展示: 1.用户管…

Selenium切换窗口句柄及调用Chrome浏览器

一. 调用Chrome浏览器 首先,假设通过Firefox()浏览器定向爬取首页导航栏信息,审查元素代码如下图所示,在div class="menu"路径的ul、li、a下,同时可以定位ul class="clearfix"。 # coding=utf-8 import os from selenium import webdriver #…

提升(Hoisting)和暂时死区(TDZ)在实践中的应用

变量提升 ● 首先我们先声明三个变量,并在声明之前去使用这个变量 console.log(me); console.log(job); console.log(year);var me IT知识一享; let job teacher; const year 1991;使用var声明变量,变量声明会被提升到作用域的顶部,但是…

【论文阅读】Generating Radiology Reports via Memory-driven Transformer (EMNLP 2020)

资料链接 论文原文:https://arxiv.org/pdf/2010.16056v2.pdf 代码链接(含数据集):https://github.com/cuhksz-nlp/R2Gen/ 背景与动机 这篇文章的标题是“Generating Radiology Reports via Memory-driven Transformer”&#xf…

[Linux/UOS]同一解决方案下的控制台程序依赖SO库的方法

该方法是基于VS2019的远程调试Linux的方案,使用的是UOS系统,本文不会去详述如何远程调试Linux和如何新建解决方案中的.so项目和.out项目 只关注于如何令.out项目依赖.so,并成功调用运行 以一个如上图结构的解决方案为例子,SysInfo…

开源库windows平台编译

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

论文阅读——变化检测

Viewpoint Integration and Registration with Vision Language Foundation Model for Image Change Understanding 只有fused adapter image encoder, viewpoint registration flow, semantic emphasizing module, 和 fully connected layer 训练,其他参数冻结。 F…

MeterSphere 任意文件读取漏洞(CVE-2023-25814)

MeterSphere 任意文件读取漏洞(CVE-2023-25814) 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: title"MeterSphere" 漏洞复现1. 构造poc2. 发送数据包3. 查看文件 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地…

使用requests库来发送HTTP请求

首先,你需要安装Python的requests和BeautifulSoup库。然后,你可以使用requests库来发送HTTP请求,并用BeautifulSoup库来解析HTML文档。 import requests from bs4 import BeautifulSouprequests.get(http://www.91hfdm.com) 这行代码会向 ‘…

win11网络连接正常,但是无法正常上网

前言: 这个是一个win11的bug,好多人都遇到了,在孜孜不倦的百度下,毫无收获,终于是在抖音上看到有人分享的经验而解决了这个问题。 找到internet选项,然后点击打开 选择连接 将代理服务器中,为…