iir滤波器程序的编写课程设计
㈠ IIR数字滤波器设计及软件实现
你这个是课程设计要求
还是毕业设计
要求
你的要谈清晰
这样我才好帮到你的
㈡ 求助!急啊!编程序分别用巴特沃斯和切贝雪夫设计IIR数字滤波器!
Wp1=0.3*pi;
Wp2=0.7*pi;
Rp=1;
Ws1=0.2*pi;
Ws2=0.8*pi;
Rs=20;
Ts=0.001;
[n,Wn] = buttord([Wp1 Wp2]/pi,[Ws1 Ws2]/pi,Rp,Rs);
[b,a] = butter(n,Wn);
[HB,w]=freqz(b,a,1/Ts,1/Ts);
figure
subplot(211)
plot(w,abs(HB))
grid;
[n,Wp] = cheb1ord([Wp1 Wp2]/pi,[Ws1 Ws2]/pi,Rp,Rs);
[b,a] = cheby1(n,Rp,Wp);
[HC,w]=freqz(b,a,1/Ts,1/Ts);
subplot(212)
plot(w,abs(HC))
grid;
㈢ 帮我编写个用MATLAB设计IIR数字带阻滤波器~~
用双线变换法设计一个数字IIR带阻滤波器,要求通带边界频率为200Hz和300z,阻带边界频率分别300Hz和400Hz,通过最大衰减3dB,阻带最小衰减18dB,抽样频率2000Hz.
设计程序如下:
clear all;
fp=[200 500];
fs=[300 400];
rp=3;rs=18; Fs=2000;
wp=fp*2*pi/Fs;
ws=fs*2*pi/Fs;
%
% Firstly to finish frequency prewarping;
wap=2*Fs*tan(wp./2)
was=2*Fs*tan(ws./2);
[n,wn]=buttord(wap,was,rp,rs,'s');
% Note: 's'!
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k)
%
bw=wap(2)-wap(1)
w0=sqrt(wap(1)*wap(2))
[bs,as]=lp2bs(bp,ap,w0,bw)
%带阻
[h1,w1]=freqs(bp,ap);
figure(1)
plot(w1,abs(h1));grid;
ylabel(' lowpass G(p)')
%
w2=[0:Fs/2-1]*2*pi;
h2=freqs(bs,as,w2);
我刚刚运行出来,希望对你有所帮助!
㈣ 基于IIR的语音信号滤波——[DSP课程设计]
这个课程我喜欢啊
㈤ 求高手帮我编一个matlab程序,设计IIR数字滤波器。
别学工科 别学通信
㈥ IIR(无限脉冲响应)数字滤波器设计(matlab编写)
wp=0.2*pi;ws=0.3*pi;
Fs=20000;T=1/Fs;%采样频率可以自己定
OmegaP=(2/T)*tan(wp/2);
OmegaS=(2/T)*tan(ws/2);
rp=1;rs=15;
ripple=10^(-rp/20);attn=10^(-rs/20);
[n,wn]=buttord(OmegaP,OmegaS,rp,rs,'s');
[z,p,k]=Buttap(n);
[b,a]=zp2tf(z,p,k);
[bt,at]=lp2lp(b,a,wn);
[b,a]=bilinear(bt,at,Fs);
[db,mag,pha,grd,w]=freqz_m(b,a);
%
%下面绘出各条曲线
subplot(2,2,1);plot(w/pi,mag);title('幅频特性');
xlabel('w(/pi)');ylabel('|H(jw)|');
axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);
set(gca,'YTickMode','manual','YTick',[0 attn ripple 1]);grid
subplot(2,2,2);plot(w/pi,db);title('幅频特性(db)');
xlabel('w(/pi)');ylabel('dB');
axis([0,1,-30,5]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);
set(gca,'YTickMode','manual','YTick',[-60 -as -rp 0]);grid
subplot(2,2,3);plot(w/pi,pha/pi);title('相频特性');
xlabel('w(/pi)');ylabel('pha(/pi)');
axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);grid
subplot(2,2,4);plot(w/pi,grd);title('群延时');
xlabel('w(/pi)');ylabel('Sample');
axis([0,1,0,15]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1]);grid
㈦ 急求一iir滤波器在DSP芯片上的课程设计,强人帮帮忙,谢谢
最简单的dsp程序
楼上说的是
我经常在那个论坛下资料
图书馆多的死dsp的书
㈧ IIR数字滤波器的设计
利用MATLAB信号处理工具箱中的滤波器设计和分析工具(FDATool)可以很方便地设计出符合应用要求的未经量化的IIR数字滤波器。需要将MATLAB设计出的IIR数字滤波器进一步分解和量化,从而获得可用FPGA实现的滤波器系数。
IIR数字滤波器的设计方法有两类:间接设计法和直接设计法。间接设计法是借助模拟滤波器设计方法进行设计的,先根据数字滤波器设计指标设计相应的过渡模拟滤波器,再将过渡模拟滤波器转换为数字滤波器。直接设计法师在时域或频域直接设计数字滤波器。
由于模拟滤波器设计理论非常成熟,而且有很多性能优良的典型滤波器可供选择(如,巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器等),设计公式和图表完善,而且许多实际应用需要模拟滤波器的数字仿真,所以间接设计法得到广泛的应用。而直接设计法要求解联立方程组,必须采用计算机辅助设计。在计算机普及的今天,各种设计方法都有现成的设计程序(或设计函数)可供调用,例如利用MATLAB仿真平台,可以设计不同类型的IIR滤波器。 3.1.1性能指标确定
按照实际需要确定滤波器的性能要求,比如确定所要设计的滤波器是低通、高通、带通还是带阻,截止频率是多少,阻带的衰减有多大,通带的波动范围是多少等等。
3.1.2系统函数确定
用一个因果稳定的系统函数(或差分方程、脉冲响应h(n))去逼近上述性能要求。此系统函数可分为两类,即IIR系统函数与FIR系统函数。
3.1.3算法设计
用一个有限精度的运算去实现这个系统函数(速度、开销、稳定性等)。这里包括选择算法结构,如级联型、并联型、正准型、横截型或频率采样型等等;还包括选择合适的字长以及选择有效的数字处理方法等。
3.2 IIR数字滤波器的直接设计法
直接设计可以采用优化设计(CAD)法,数字滤波器的系统函数H(Z)的系数ai, bi或零极点ci, di等参数,可采用优化设计的方法。设计步骤:
1. 优化原则——最小均方误差准则,绝对误差准则等。
2. 赋予初值.
3. 一次次的改变参数赋值,根据优化准则计算误差。
4. 改变参数赋值,再次计算误差,如此迭代下去,直至误差达到最小。示意图如下
间接设计法的设计过程如下:
1) 确定数字滤波器指标;
2) 将数字滤波器指标转换为相应的模拟滤波器指标;
3) 设计满足指标要求的过渡模拟函数(s);
4) 将过渡模拟函数(s)转换为数字滤波器H(z)。示意图如下:
把模拟滤波器Ha(S) 转换为数字滤波器H(z)的实质是,用一种从s平面到z平面的映射函数将Ha(S) 转换H(z)。对这种映射函数的要求是:因果稳定的模拟滤波器转换为数字滤波器H(z)后仍然稳定;数字滤波器H(z)的频率响应特性能够近似模仿数字滤波器Ha(S)的片段常数频率响应特性。常用的模拟-数字滤波器变换方法有:脉冲响应不变法和双线性变换法,也就是根据两种准则。
3.3.1 脉冲响应不变法
步骤:
1)对已知的(s) 进行拉氏反变换,求得(t);(t) (nt)
2)对(t) 进行取样,得(nt);
3)令h(n)=T(nt),以求得h(n);
4)对h(n) 进行Z 变换,得H(Z)。
3.3.2双线性变换
由于脉冲响应不变法存在缺点,即因为z=映射关系不是单值对应,所以,从s 平
面直接映射到z 平面时会产生混迭现象,而且脉冲响应不变法只适合频率响应在高频处单调递减的模拟原型滤波器,因此其应用范围受到限制。
双线性变换法的主要目的是从根本上解决上述脉冲响应不变法的问题也付出了一定的代价。
双线性变换法基本步骤:
1) 构造从S 平面到S1 平面的单值映射 :Ω = A tan(T/2)
2) 构造从S1 平面到Z 平面的单值映射: ω = T
实际上,不需要每次都从S 平面→S1平面→Z平面,而是直接求出S=f(Z) 的关系,然后代入Ha(s),得H(z),即H(z) = Ha(s)|s = f(z)。
㈨ IIR最佳滤波器设计举例
[例2-2]已知信号s(n)的功率谱为
地球物理信息处理基础
测量该信号时混入了加性噪声v(n),即测量数据为x(n)=s(n)+v(n),式中v(n)是白噪声(均值等于零、方差等于1),但v(n)与s(n)不相关。设计一非因果IIR最佳滤波器,对x(n)进行处理,以得到对s(n)的线性最佳估计。
解:由于噪声为白噪声,故Pvv(z)=1,并且噪声和信号不相关,所以有
rxx(m)=r(s+v)(s+v)(m)=rss(m)+rvv(m)+rsv(m)+rvs(m)=rss(m)+rvv(m)
rsx(m)=rs(s+v)(m)=rss(m)+rsv(m)=rss(m)
对上述二式两边取Z变换,分别得
Pxx(z)=Pss(z)+Pvv(z),Psx(z)=Pss(z)
将已知参数代入上式得
地球物理信息处理基础
可以用两种方法来求,第一种方法由式(2-20)直接得:
地球物理信息处理基础
第二种方法可以用白化输入信号来求,根据式(2-33)应求
地球物理信息处理基础
令
地球物理信息处理基础
得联立方程
地球物理信息处理基础
解之得f=1/3或3,取f=1/3,则有
地球物理信息处理基础
即
地球物理信息处理基础
由此得出
地球物理信息处理基础
最小均方估计误差的讨论:如果未采用设计的因果IIR最佳滤波器对处理时,均方估计误差为
E[e2(n)]=E{[x(n)-s(n)]2}=E[v2(n)]=1
如果采用设计的非因果IIR最佳滤波器对处理时,估计均方误差为最小均方估计误差,为
地球物理信息处理基础
在单位圆内只有一个极点z=1/3,所以
地球物理信息处理基础
在这里,需要说明的一点是:在实际计算时,第二种方法不用,此处只是为了让大家练习白化求解的方法。
[例2-3]在[例2-2]中设计一因果的IIR最佳滤波器。
解:与[例2-2]相同,噪声和信号不相关,具体步骤如下:
(1)先对功率谱密度函数进行分解,由[例2-2]知
地球物理信息处理基础
(2)对Pss(z)/B(z-1)进行因果和反因果分解,因Psx(z)=Pss(z),所以有
地球物理信息处理基础
将上式写成部分分式
地球物理信息处理基础
显然,因果部分为
地球物理信息处理基础
(3)因果IIR最佳滤波器的系统函数为
地球物理信息处理基础
(4)由于是因果的,所以有|z|>1/3,则该滤波器的单位冲激响应为
地球物理信息处理基础
(5)最小均方估计误差的讨论
如果未采用设计的因果IIR最佳滤波器对处理时,均方估计误差为
E[e2(n)]=E{[x(n)-s(n)]2}=E[v2(n)]=1
如果采用设计的因果IIR最佳滤波器对处理时,估计均方误差为
地球物理信息处理基础
地球物理信息处理基础
在单位圆内有两个极点z=1/3,z=0.6=3/5,所以
地球物理信息处理基础
显然,采用设计的因果IIR最佳滤波器对处理时,均方估计误差要小,大约减小为原来的2.25(1/(4/9))倍,但它比非因果 IIR 最佳滤波器的均方估计误差要大一些(见[例2-2])。
㈩ matlab编程实现 FIR、 IIR滤波器的程序
http://www.pudn.com/downloads159/sourcecode/others/detail716351.html
这里有请注册后下回载!答