fir 窗口设计法
加窗的原因。对于理想的低通滤波器H(exp(jw)),其h(n)是无限长序列。这是可以证明的。因此为了得到有限长的h(n)就需要截断,而这个过程就是加窗。由于h(n)截断即其频率响应就和理想的低通滤波器有差别。从感性上分析,h(n)越长,Hw(exp(jw))也就越接近理想低通滤波器,这就对应确定序列的长度。还有就是如何截断即加什么窗,对Hw(exp(jw))也是有影响。这就是对应的窗的设计。
窗口设计法:H(exp(jw)) = F(h(n)), W(exp(jw)) = F(w(n)). F[h(n)*w(n)] = H(exp(jw)) ø(周期卷积) W((exp(jw))。其中h(n)是理想的频域低通滤波器的时域序列,w(n)是加窗的时域函数。最终的目的是的到截断的h(n)即滤波器系数。
汉明窗的时域,频域。如下图
hanmming窗:
设计低通滤波器使用此方法时:根据设计指标确定窗函数,和阶数。得到的窗函数的系数乘以理想的低通滤波器的时域信号,即得使用窗函数截断后的系数。
根据阻带的衰减要求确定窗函数。具体查表得到各个窗函数的性能,确定窗函数。
滤波器阶数的确定:
N = (-20lg(sqrt(εp*εc)) - 12) / (14.6(fc - fp) / fs) 对滤波器阶数的逼近方程。
N = (-10lg(εp*εc) - 13) / 2.324(fc-fp)/fs + 1; 这两个应该是接近的。
这只是逼近,如果没有满足设计目标,就需要提高阶数。
2、窗口设计法的基本思想:根据滤波器的性能要求,确定h序列长度和合适的窗。
3、单位的关系:(一直有这个问题)实际的信号频率f(hz),采样频率fs(hz),模拟频率(??),数字频率(??)。在这里要切底搞清楚。
实际低通滤波器的设计:
假设某信号的最高频率是1500hz, 采样率fs = 6.5k,即fp = 1500hz, fc = 1800hz,εp = 0.174dB, εc = 40dB 。那就可以具体的设计fir低通滤波器了。
若2*pi = 6500, fp = 0.46pi, fc = 0.55pi,
确定使用hamming窗,估计16阶。
由上图可以看出需要60阶的fir才能达到需要的性能。
fir 窗口设计法的更多相关文章
- 《数字信号处理》课程实验2 – FIR数字滤波器设计
一.FIR数字滤波器设计原理 本实验采用窗函数法设计FIR数字低通滤波器.我们希望设计的滤波器系统函数如下: \(H_{d}\left( e^{jw} \right) = \left\{ \begi ...
- Qt5窗口设计
主窗口设计通常是应用程序界面设计的第一步,主窗口主要分为窗口标题,菜单栏,工具栏和状态栏这四个部分,只要在程序设计中分别对四个项目进行设计就可以实现主窗口的编程了.在下面的例子中,我们就以一个打开文件 ...
- 《UltraFast设计法实践》系列目录
最近准备开始潜心学习快速和高效的时序收敛设计了,突然想就把整个学习过程做成一个博客系列吧,虽然想想就很激动(技术狗就这么点出息--),但希望坚持下来. 这篇做个目录或者索引,不断向其中添加学习内容. ...
- LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法
LC滤波器概述 LC滤波器也称为无源滤波器,是传统的谐波补偿装置.LC滤波器之所以称为无源滤波器,顾名思义,就是该装置不需要额外提供电源.LC滤波器一般是由滤波电容器.电抗器和电阻器适当组合而成,与谐 ...
- FIR滤波器设计
FIR滤波器的优越性: 相位对应为严格的线性,不存在延迟失真,仅仅有固定的时间延迟: 因为不存在稳定性问题,设计相对简单: 仅仅包括实数算法,不涉及复数算法,不须要递推运算,长度为M,阶数为M-1,计 ...
- UltraFast设计法实践(1) -- 初始设计检查
目录 1. report_failfast 1.1 命令使用 1.2 优化 1.3.总结 2.report_timing_summary 3. report_methodology 4. 总结 5.遗 ...
- matlab进行FIR滤波器设计(一)
来源:https://blog.csdn.net/leokingszx/article/details/80041910 在实际的应用中,有时需要使用FIR根据完成一些特定功能,比如近似一阶RC低通电 ...
- Python中Tk模块简单窗口设计
Python中Tk和PyQt都可以设计小程序,区别在于:Tk界面美观度相对较差,但由于是Python的内置模块,最终生成的程序大小相比于PyQt较小. import tkinter # 导入TKint ...
- qt 1 qt开发中的窗口设计
一个简单的qt界面 相应代码如下: setWindowTitle(tr("Sotware"));//设置窗体标题 ui->tabWidget->removeTab(); ...
随机推荐
- GPU编程自学2 —— CUDA环境配置
深度学习的兴起,使得多线程以及GPU编程逐渐成为算法工程师无法规避的问题.这里主要记录自己的GPU自学历程. 目录 <GPU编程自学1 -- 引言> <GPU编程自学2 -- CUD ...
- 一张图说明HTTPS 握手过程
- event.preventDefault() 解决按钮多次点击 导致页面变大
event.preventDefault() 解决按钮多次点击 导致页面变大
- mongodb 使用
一.下载 MongoDB的官网是:http://www.mongodb.org/ MongoDB最新版本下载在官网的DownLoad菜单下:http://www.mongodb.org/downloa ...
- objc/runtime.h 相关
Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runtime(交互运行)中,运行时函数部分,苹果给出了/usr/lib/libobjc.A.d ...
- java 多线程超详细总结——阿里大牛熬夜整理
引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...
- 2018秋C语言程序设计(初级)作业- 第3次作业
7-1 找出最小值 #include<stdio.h> int main() { int min,i,n,count; scanf("%d",&n); for( ...
- [转载][QT][SQL]sql学习记录3_sqlite之update delete like
转载自:详见 : http://www.runoob.com/sqlite/sqlite-create-table.html 约束表实例 下面是一个实例,它创建了一个 COMPANY 表,ID 作为主 ...
- C++面向对象的编程思想机器人
C++的面向对象的编程思想如下,一般情况为一个类中包含了这个对象的所有属性与函数,直接调用这个对象就可以对这个对象执行它可以使用的任何操作. #include <iostream> cla ...
- 表单验证——jquery validate使用说明
//validate 选项*********************************************************** $("form").validat ...