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');

最新文章

  1. .NET程序运行过程产生的问题
  2. 在java中如何用键盘输入一个数,字符,字符串
  3. List多对多的查询应用
  4. List remove注意点
  5. [C++] socket -7 [邮槽]
  6. matlab练习程序(最小包围矩形)
  7. AdventureWorks2008 数据库安装
  8. java 数组插入元素
  9. NET 2015
  10. AVFoundation自定义录制视频
  11. centos系统升级PHP版本程序
  12. python 学习第四天
  13. 解决ubuntu中arm-linux-gcc not found
  14. 全自动数据表格JQuery版
  15. Linux内存管理--基本概念【转】
  16. 【Linux】DNS服务-BIND基础配置(二)
  17. Java heap space cdh 5.11.1
  18. BZOJ 1029: [JSOI2007]建筑抢修 优先队列
  19. N76E003学习之路(二)
  20. Mac Iterm 或者自带终端 bogon:~ username$

热门文章

  1. 实例甜点 Unreal Engine 4迷你教程(3)之用C++改变Image小部件的其它属性
  2. 支付宝pc端支付接入PHP实现
  3. php创建token
  4. MySQL优化方法论
  5. VS2017自定义代码片段, 实现快捷输入
  6. (转).Net基础体系和跨框架开发普及
  7. Handler消息传送机制
  8. Android 4 学习(15):持久化:Files, Saving State and Preferences
  9. nginx反向代理负载均衡初次配置
  10. Linux进阶路线