(补)20210622:基于最大误差最小准则的最佳滤波器设计

2023-11-02 08:20

本文主要是介绍(补)20210622:基于最大误差最小准则的最佳滤波器设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于最大误差最小准则的最佳滤波器设计

基本原理

最佳滤波器的设计指的是滤波器的频率响应在所感兴趣的频率范围内与理想滤波器之间的频率响应在最大逼近误差最小,也就是”最大最小准则“意义上的最佳化,也称为切比雪夫意义上的最佳化。实质原理即是对切比雪夫逼近问题的数学推导。

实验仿真

Matlab中主要使用remez函数和remezord函数,这两个函数现在已经废弃,建议使用firpm和firpmord作为替代。

这里我们以下图的低通滤波器为示例进行说明:

在这里插入图片描述

由上图可以得到的信息为:

  1. 过渡带为[1.6 1.8]
  2. 与过渡带相关的幅度矢量为A = [1 0]
  3. 通带波纹与阻带波纹都设置到很小,分别为δp = 0.001,δs = 0.0001。采样率fs为10Mhz。

以此来进行设计最佳滤波器的幅频特性分别为

在这里插入图片描述

代码实现

clc; clear all; close all; %%  firpm_test 
%%  @IMMUNIZE
F = [1.6 1.8];                       % 过渡带
A = [1 0];                           % 与过渡带对应的幅度矢量增益
Dev = [0.001 0.0001];                % 通带与阻带波纹
Fs = 10;                             % 采样率
% 计算对应的最佳滤波器的阶数 : N
% 对硬的归一化频率矢量 : F
% 对应的频率矢量的幅度增益: A0
% 幅度加权矢量 : w
[N,F0,A0,w] = firpmord(F,A,Dev,Fs);
% [N,F0,A0,w] = remezord(F,A,Dev,Fs);
num1 = firpm(N,F0,A0,w);
% num2 = remez(N,F0,A0,w);
figure(1);
freqz(num1);
% figure(2);
% freqz(num2);

这篇关于(补)20210622:基于最大误差最小准则的最佳滤波器设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329320

相关文章

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机