1.确定参数:

Wp 通带截止频率

Ws  阻带截止频率

As  衰减dB

Rp   纹波dB

2.根据参数确定理想 频率响应 (M     (Wp + Ws )/2  )

双边响应

3.选窗

过滤带宽

阻带衰减

4.得出最终响应

时域相乘 频域卷积

5.观察各项参数是否达标(采用归一化后的数据)

衰减

幅频特性

相频

群延时 ??

···

Ps:观察频率响应的函数

这里a = 1 因为FIR可由差分方程描述

故分母为1

代码:

wp =0.2*pi;

ws = 0.3*pi;

tr_width = ws -wp;

M = ceil(6.6*pi/tr_width)+1;

n = [0:1:M-1];

wc = ((ws + wp)/2) %ideal LPF cutoff frequency

hd = ideal_lp(wc,M);

w_ham = (hamming(M))';

h = hd .* w_ham;

[db,mag,pha,grd,w] = freqz_m(h,[1]);

delta_w = 2*pi/1000;

Rp = -(min(db(1:1:wp/delta_w+1)));

As = -round(max(db(ws/delta_w+1:1:501)));

%plot

subplot(2,2,1);

stem(n,hd);

title('Ideal Impulse Response');

axis([0 M-1 -0.1 0.3]);

xlabel('n');

ylabel('hd(n)');

subplot(2,2,2);

stem(n,w_ham);

title(' Hamming Window');

axis([0 M-1 0 1.1]);

xlabel('n');

ylabel('w(n)');

subplot(2,2,3);

stem(n,h);

title('Actual Impluse Response');

axis([0 M-1 -0.1 0.3]);

xlabel('n');

ylabel('h(n)');

subplot(2,2,4);

plot(w/pi,db);

title('Magnitude Response in dB');grid

axis([0 1 -100 10]);

xlabel('frequency in pi units');

ylabel('Decibels');

带通:

wp1 =0.35*pi;

ws1 = 0.2*pi;

wp2 =0.65*pi;

ws2 = 0.8*pi;

tr_width = min((wp1 -ws1),(ws2 - wp2));

M = ceil(11*pi/tr_width)+1;

M

n = [0:1:M-1];

wc1 = ((ws1 + wp1)/2);

wc2 = ((ws2 + wp2)/2);

hd = ideal_lp(wc2,M)-ideal_lp(wc1,M);

w_ham = (blackman(M))';

h = hd .* w_ham;

[db,mag,pha,grd,w] = freqz_m(h,[1]);

delta_w = 2*pi/1000;

Rp = -(min(db(wp1/delta_w+1:1:wp2/delta_w+1)));

Rp

As = -round(max(db(ws2/delta_w+1:1:501)));

As

%plot

subplot(2,2,1);

stem(n,hd);

title('Ideal Impulse Response');

axis([0 M-1 -0.5 0.5]);

xlabel('n');

ylabel('hd(n)');

subplot(2,2,2);

stem(n,w_ham);

title(' blackman Window');

axis([0 M-1 0 1.1]);

xlabel('n');

ylabel('w(n)');

subplot(2,2,3);

stem(n,h);

title('Actual Impluse Response');

axis([0 M-1 -0.5 0.5]);

xlabel('n');

ylabel('h(n)');

subplot(2,2,4);

plot(w/pi,db);

title('Magnitude Response in dB');grid

axis([0 1 -150 10]);

xlabel('frequency in pi units');

ylabel('Decibels');

基于matlab的FIR加窗滤波器设计的更多相关文章

  1. IIR滤波器设计(调用MATLAB IIR函数来实现)

    转载请注明文章来源 – http://blog.csdn.net/v_hyx ,请勿用于任何商业用途         对于滤波器设计,以前虽然学过相关的理论(现代数字信号处理和DSP设计),但一直不求 ...

  2. 基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

    摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧.通过”录音“按钮可以实现声音从电脑的声 ...

  3. Matlab滤波器设计(转)

    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程.滤波器的实现包括滤波器结构的选择和滤波器参数的计算.只有完成了滤波器的设计和实现,才能最终完成数据的滤波. 滤波器设计的目标是实现数据序列的频率 ...

  4. FIR滤波器设计

    FIR滤波器的优越性: 相位对应为严格的线性,不存在延迟失真,仅仅有固定的时间延迟: 因为不存在稳定性问题,设计相对简单: 仅仅包括实数算法,不涉及复数算法,不须要递推运算,长度为M,阶数为M-1,计 ...

  5. 信号、系统与滤波器设计(matlab)

    0. 基本概念 AWG:Additive White(zero-mean) Gaussian,可加白噪声: AWGN:Additive White(zero-mean) Gaussian Noise ...

  6. 基于Matlab的MMSE的语音增强算法的研究

    本课题隶属于学校的创新性课题研究项目.2012年就已经做完了,今天一并拿来发表.   目录: --基于谱减法的语音信号增强算法..................................... ...

  7. 基于MATLAB的多功能语音处理器

    一.设计功能 录制音频,保存音频 对录制的语音信号进行频谱分析,确定该段语音的主要频率范围: 利用采样定理,对该段语音信号进行采样,观察不用采样频率(过采样.欠采样.临界采样)对信号的影响: 实现语音 ...

  8. fdatool的滤波器设计

    作者:桂. 时间:2017-08-15  20:28:11 链接:http://www.cnblogs.com/xingshansi/p/7367738.html 前言 本文主要记录滤波器设计的基本流 ...

  9. 基于MATLAB的离散小波变换

    申明,本文非笔者原创,原文转载自:  基于Matlab的离散小波变换         http://blog.sina.com.cn/s/blog_725866260100ryh3.html 简介 在 ...

随机推荐

  1. Box2D学习blog

    http://www.ladeng6666.com/blog/category/box2d/

  2. python开发mysql:mysql安装(windows)&密码找回&存储引擎简介&库表的增删改查

    一,mysql安装 下载地址 https://dev.mysql.com/downloads/file/?id=471342 解压后,将目录C:\mysql-5.7.19-winx64\bin添加到计 ...

  3. PLSQL Developer备份恢复oracle数据

    使用PL sql提供的功能可以快速的备份恢复oracle数据. 1  导出存储过程,触发器,序列等所有用户对象.(备份) 在PL/SQL Developer的菜单Tools(工具) => Exp ...

  4. StarkSoft题库管理系统

    一.功能介绍    1.自定义试题库管理系统目录.难易程度,题型,知识库等.    2.试题录入.    3.强大的试题编辑功能,并与通常应用编辑工具有共通.    4.灵活的试卷构造功能,用户可自定 ...

  5. 进程之 Process join方法其他属性与进程Queue

    Process join方法 以及其他属性 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情 ...

  6. pandas索引操作

    Pandas的索引操作 索引对象Index 1. Series和DataFrame中的索引都是Index对象 示例代码: print(type(ser_obj.index)) print(type(d ...

  7. CentOS Firewall简单使用

    启动 systemctl start firewalld 停止 systemctl stop firewalld 获取 firewalld 状态 firewall-cmd --state 在不改变状态 ...

  8. 【转】VS 安全开发生命周期(SDL)检查

    前面在学习使用google的protobuf时在VS2012中一直无法编译编译通过,经过查找一些资料原来发现,并不是protobuf的问题,而是自己在使用VS2012时,没有完全了解VS2012的强大 ...

  9. jQuery.prop() 与attr()

    1.attr()是jQuery 1.0版本就有的函数,prop()是jQuery 1.6版本新增的函数.毫无疑问,在1.6之前,你只能使用attr()函数:1.6及以后版本,你可以根据实际需要选择对应 ...

  10. 通过模板判断Value是否为指针

    有个参数,需要判断其Value是否为指针,如果是做相应的处理. 代码示例如下,后来发现is_pointer在std空间中. #include <stdio.h> #include<i ...