数字信号处理实验(六)——FIR滤波器的设计

一、四种线性相位FIR滤波器的振幅响应

1、自编函数

[Hr,w,a,L]=hr_type1(h)(P256)  % h偶对称,N为奇数,h(n)=h(N-1-n)
[Hr,w,a,L]=hr_type2(h) (P257) % h偶对称,N为偶数,h(n)=h(N-1-n)
[Hr,w,a,L]=hr_type3(h) (P257) % h奇对称,N为奇数,h(n)=-h(N-1-n)
[Hr,w,a,L]=hr_type4(h) (P257) % h奇对称,N为偶数,h(n)=-h(N-1-n)

2、一个demo

clear all;close all;clc
addpath(genpath(pwd)); % 添加当前文件夹下所有路径

%%
% 题1. 线性相位 FIR 滤波器的特性:
%% (2)已知滤波器的系统函数如下所示,用以上已编好的函数,确定滤波器的振
% 幅响应Hr(w)以及零点位置:
h1_n = [-4,1,-1,-2,5,6,5,-2,-1,1,-4];     % 偶对称,N=11
h2_n = [-4,1,-1,-2,5,6,6,5,-2,-1,1,-4];   % 偶对称,N=12
h3_n = [-4,1,-1,-2,5,0,-5,2,1,-1,4];      % 奇对称,N=11
h4_n = [ -4,1,-1,-2,5,6,-6,-5,2,1,-1,4];  % 奇对称,N=12

new_figure(‘线性相位FIR滤波器‘);
subplot(2,2,1);
[Hr,w]=hr_type1(h1_n);
plot(w/pi, abs(Hr));
title(‘第一类线性相位滤波器‘);
xlabel(‘w/pi‘);

subplot(2,2,2);
[Hr,w]=hr_type2(h2_n);
plot(w/pi, abs(Hr));
title(‘第二类线性相位滤波器‘);
xlabel(‘w/pi‘);

subplot(2,2,3);
[Hr,w]=hr_type3(h3_n);
plot(w/pi, abs(Hr));
title(‘第三类线性相位滤波器‘);
xlabel(‘w/pi‘);

subplot(2,2,4);
[Hr,w]=hr_type4(h4_n);
plot(w/pi, abs(Hr));
title(‘第四类线性相位滤波器‘);
xlabel(‘w/pi‘);

 

二、窗函数法

1、窗函数设计参考指标

2、窗函数设计方法一:

(1)根据实际阻带衰减指标,来确定所使用的窗函数。Matlab提供了几个函数来实现这些窗函数。

   W=boxcar(N);            % 矩形窗         -21dB
   W=triang(N);            % 三角窗         -25dB
   W=hanning(N);           % 汉宁窗         -44dB
   W=hamming(N);           % 海明窗         -53dB
   W=blackman(N);          % 布莱克曼窗     -74dB
   W=kaiser(N,beta);       % 凯泽窗         -80dB

(2)根据过渡带来计算出N值。

例: 通带截止频率wp, 阻带截止频率ws,已知为汉宁窗:N=3.1*2*pi/(ws-wp);

 

(3)求出理想的hd(n)。可使用ideal_lp(P185)来实现理想低通滤波器的冲激响应。

例:由ideal_lp来实现理想带阻滤波器的冲激响应。

hd=ideal_lp(wc1,N)+ideal_lp(pi,N)-ideal_lp(wc2,N);

 

(4)求得所设计的FIR滤波器的单位抽样响应:

h=hd.*w

 

(5)一个demo:

clear all;
wp=0.2*pi;
Rp=0.25;
ws=0.3*pi;
As=50;

wd = ws-wp;
N = ceil(6.6*pi/wd);
wn = (wp+ws)/2;

%
hd = ideal_lp(wn,N+1);
w_ham=(hamming(N+1))‘;
h = hd.*w_ham;
figure(2)
freqz(h,1,512)

 

 

3、窗函数设计方法二:

(1)根据实际阻带衰减指标,来确定所使用的窗函数。

(2)根据过渡带来计算出N值。

(3)利用Matlab所提供的函数fir1,来实现fir滤波器。

h=fir1(N,wn,’ftype’,windows(N+1))

?对于高通滤波器和带阻滤波器,N必须为偶数,N+1为奇数

?‘ftype’指的是:’low’,’bandpass’,’high’,’stop’

?设计的滤波器为N阶

(4)一个demo

%example6.2.3
clear all;
wp=0.2*pi;
Rp=0.25;
ws=0.3*pi;
As=50;

wd = ws-wp;
N = ceil(6.6*pi/wd);
wn = (wp+ws)/2;
b=fir1(N,wn/pi,hamming(N+1));
figure(1)
freqz(b,1,512)

 

三、频率抽样法:

1、根据给定的N值和过渡点来求得Hd(k) 。

2、利用DFT反变换求的所需的h(n)。

h=real(ifft(H,N));
时间: 2024-11-03 21:11:13

数字信号处理实验(六)——FIR滤波器的设计的相关文章

数字信号处理实验(五)——IIR滤波器的设计

一.使用自编函数设计IIR滤波器 1.冲激响应法 (1)注给出的数字滤波器指标先化成模拟指标 (2)设计出模拟滤波器: (3)使用冲激响应法转化成数字滤波器 (4)一个demo clear all; wp=0.2*pi; %数字指标 ws=0.3*pi; Rp=1; As=15; T=1;Fs=1/T; %冲激响应法 [cs,ds]=afd_butt(wp/T,ws/T,Rp,As); [b,a]=imp_invr(cs,ds,T); [C,B,A]=dir2par(b,a) [db,mag,p

数字信号处理实验(零)—— 一维声音信号处理和二维图像处理

一.在matlab下声音信号的I/O 1.读wav文件函数 ?y = wavread('filename') ?[y,Fs,bits] = wavread('filename') ?[...] = wavread('filename',N) ?[...] = wavread('filename',[N1 N2])   2.写wav文件函数 ?wavwrite(y,'filename') ?wavwrite(y,Fs,'filename') ?wavwrite(y,Fs,N,'filename')

转载论文关于fir滤波器的fpga实现

摘 要 本文讨论的FIR滤波器因其具有严格的线性相位特性而得到广泛的应用.在工程实践中,往往要求信号处理具有实时性和灵活性,本论文研究FIR的FPGA解决方案正体现了电子系统的微型化和单片化. 本论文主要讨论了以下的问题: 首先,以FIR滤波器的基本理论为依据,研究适应工程实际的数字滤波器的设计方法,确定了直接型网络结构.窗函数设计法的设计方案: 然后,讨论了FPGA的原理与结构特点,总结FPGA的设计流程与设计原则,并用Verilog HDL语言根据设计方案编写出FIR滤波器程序: 接着,采用

IIR滤波器和FIR滤波器的区别与联系zz

  -------------------------------------------------------------------------------------------------- 1.两种滤波器都是数字滤波器.根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器.对于FIR滤波器,冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的输入信号值.对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,

数字信号处理 基础知识 对比回顾

1.非周期序列 非周期序列傅里叶变换FT: 非周期序列傅里叶逆变换IFT: 连续时间信号的傅里叶变换FT: = 连续时间信号的傅里叶逆变换IFT: (t) = 2.非周期序列傅里叶变换FT性质: (1).周期性 (2).线性 FT[a*x(n)+b*y(n)] = a*+b* (3).时移与频移 FT[x(n - a)] = FT[x(n)]* = * FT[] = (4).对称性       x(n) = 共轭对称序列 共轭对称序列的实部是偶函数,虚部是奇函数 eg:      x(n) =

转载--关于FPGA设计数字信号处理电路的心得

FPGA使用的越来越广泛,除了可用于设计控制电路以为,数字信号处理电路更是FPGA的强项和难点.个人可以说才刚刚入门FPGA设计,也做过一些数字信号处理方面的电路设计,记录下个人心得体会. (一)善用MATLAB来为设计做充分的准备和验证. 在学习EDA课程的时候,我们往往都是按照要求,直接打开QuartusII,噼里啪啦开始疯狂敲代码,然后仿真--不对--再改再仿真--还不对--再改直到仿真结果正确为止.不错,这的确是人们先入为主的一种方法.但这只是我们学习HDL语言,学习使用开发工具时候比较

FIR滤波器设计

FIR滤波器的优越性: 相位相应为严格的线性,不存在延迟失真,只有固定的时间延迟: 由于不存在稳定性问题,设计相对简单: 只包含实数算法,不涉及复数算法,不需要递推运算,长度为M,阶数为M-1,计算值约为M/2. 关于FIR滤波器的幅频特性和相频特性.在人们不关心相位时,可以让幅频特性常为正,原来为负的部分只需相位加上pi来补偿. 但当相位很重要,不允许随便增减时,幅频特性就必须区分正负.我们这里称为符幅特性. 符幅特性负值部分向上反褶就和我们平时看到的幅频特性一样,还是满足对称性的. 4类FI

记录。8,23之fir滤波器设计。

尝试设计FIR滤波器(低通,高通,带通),由5种频率组成的信号,傅里叶变换后的频谱上看,这个滤波器貌似很好. 滤波前信号频谱 低通滤波 高通滤波 带通滤波

VIVADO FIR滤波器设计与仿真(二)

VIVADO FIR滤波器设计与仿真(二) 在VIVADO FIR滤波器设计与仿真(一)中产生了两路正弦信号,频率分别为4MHz和5MHz,今天要进行FIR滤波器设计,在进行滤波器设计之前,需要对滤波器的参数进行设置,需要借助MATLAB软件或者Filter Solutions软件,这次使用Filter Solutions来进行参数设定. 关于Filter Solutions软件的使用,这里有一篇博客比较详细的介绍了它的用法,可以作为参考: Filter Solutions之滤波器设计 滤波器参