(补)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

相关文章

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

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

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

hdu 1102 uva 10397(最小生成树prim)

hdu 1102: 题意: 给一个邻接矩阵,给一些村庄间已经修的路,问最小生成树。 解析: 把已经修的路的权值改为0,套个prim()。 注意prim 最外层循坏为n-1。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstri