基于matlab的iir数字滤波器的设计(编辑修改稿)内容摘要:
易出错,结果不直观。 数字高通滤波器 的设计 , ,通带最大衰减为 1dB,阻带最小衰减为 100dB。 基于 MATLAB 的 IIR 数字滤波器的设计 13 用 脉冲响应不变法 设计 巴特沃斯高通滤波器 , 程序 如下: Wp=*pi/T。 Ws=*pi/T。 %设置归一化通带和阻带截止频率 T=1。 %设置采样周期为 1 fs=1/T。 %采样频率为周期倒数 Ap=1。 As=100。 %设置通带最大和最小衰减 [N,Wn]=buttord(Wp,Ws,Ap,As,39。 s39。 )。 %调用 butter 函数确定巴特沃斯滤波器阶数 [B,A]=butter(N,Wn,39。 high39。 ,39。 s39。 )。 %调用 butter 函数设计巴特沃斯滤波器 W=linspace(0,pi,1000*pi)。 %指定一段频率值 hf=freqs(B,A,W)。 %计算模拟滤波器的幅频响应 [D,C]=impinvar(B,A,fs)。 %调用脉冲响应不变法 Hz=freqz(D,C,W)。 %返回频率响应 plot(W/pi,abs(Hz))。 %绘出巴特沃斯数字高通滤波器的幅频特性曲线 grid on。 xlabel(39。 Frequency/Hz39。 )。 ylabel(39。 Magnitude39。 )。 图 32脉冲响应不变法设计的巴特沃斯高通滤波器运行波形 用 双线性变换法设计巴特沃斯高通滤波器, 程序 如下: 基于 MATLAB 的 IIR 数字滤波器的设计 14 Wp=*pi/T。 Ws=*pi/T。 %设置归一化通带和阻带截止频率 T=1。 %设置采样周期为 1 fs=1/T。 %采样频率为周期倒数 Ap=1。 As=100。 %设置通带最大和最小衰减 [N,Wn]=buttord(Wp,Ws,Ap,As,39。 s39。 )。 %调用 butter 函数确定巴特沃斯滤波器阶数 [B,A]=butter(N,Wn,39。 high39。 ,39。 s39。 )。 %调用 butter 函数设计巴特沃斯滤波器 W=linspace(0,pi,400*pi)。 %指定一段频率值 hf=freqs(B,A,W)。 %计算模拟滤波器的幅频响应 [D,C]=bilinear(B,A,fs)。 %调用双线性变换法 Hz=freqz(D,C,W)。 %返回频率响应 plot(W/pi,abs(Hz))。 %绘出巴特沃斯数字高通滤波器的幅频特性曲线 grid on。 xlabel(39。 Frequency39。 )。 ylabel(39。 Magnitude39。 )。 图 33双线性变换法设计的巴特沃斯高通滤波器运行波形 数字带通滤波器的 设计 1 , 1 , 2 , 2 ,通带最大衰减为 1dB,阻带最小衰减为 100dB。 基于 MATLAB 的 IIR 数字滤波器的设计 15 用 脉冲 响应 不变法设计巴特沃斯带通滤波器, 程序 如下: Wp1=*pi/T。 Wp2=*pi/T。 Ws1=*pi/T。 Ws2=*pi/T。 %设置归一化通带和阻带截止频率 T=1。 %设置采样周期为 1 fs=1/T。 %采样频率为周期倒数 Ap=1。 As=100。 %设置通带最大和最小衰减 Wp=[Wp1,Wp2]。 Ws=[Ws1,Ws2]。 [N,Wn]=buttord(Wp,Ws,Ap,As,39。 s39。 )。 %调用 butter 函数确定巴特沃斯滤波器阶数 [B,A]=butter(N,Wn,39。 bandpass39。 ,39。 s39。 )。 %调用 butter 函数设计巴特沃斯滤波器 W=linspace(0,pi,1000*pi)。 %指定一段频率值 hf=freqs(B,A,W)。 %计算模拟滤波器的幅频响应 [D,C]=impinvar(B,A,fs)。 %调用脉冲响应不变法 Hz=freqz(D,C,W)。 %返回频率响应 plot(W/pi,abs(Hz))。 %绘出巴特沃斯数字带通滤波器的幅频特性曲线 grid on。 xlabel(39。 Frequency39。 )。 ylabel(39。 Magnitude39。 )。 基于 MATLAB 的 IIR 数字滤波器的设计 16 图 34脉冲响应不变法设计的巴特沃斯带通滤波器运行波形 用 双线性变换法设计巴特沃斯带通滤波器, 程序 如下: Wp1=*pi/T。 Wp2=*pi/T。 Ws1=*pi/T。 Ws2=*pi/T。 %设置归一化通带和阻带截止 频率 T=1。 %设置采样周期为 1 fs=1/T。 %采样频率为周期倒数 Ap=1。 As=100。 %设置通带最大和最小衰减 Wp=[Wp1,Wp2]。 Ws=[Ws1,Ws2]。 [N,Wn]=buttord(Wp,Ws,Ap,As,39。 s39。 )。 %调用 butter 函数确定巴特沃斯滤波器阶数 [B,A]=butter(N,Wn,39。 bandpass39。 ,39。 s39。 )。 %调用 butter 函数设计巴特沃斯滤 波器 W=linspace(0,pi,1000*pi)。 %指定一段频率值 hf=freqs(B,A,W)。 %计算模拟滤波器的幅频响应 [D,C]=bilinear(B,A,fs)。 %调用双线性转换法 Hz=freqz(D,C,W)。 %返回频率响应 plot(W/pi,abs(Hz))。 %绘出巴特沃斯数字带通滤波器的幅频特性曲线 grid on。 xlabel(39。 Frequency39。 )。 基于 MATLAB 的 IIR 数字滤波器的设计 17 ylabel(39。 Magnitude39。 )。 图 35双线性变换法设计的巴特沃斯带通滤波器运行波形 数字 带阻滤波器的设计 1 , 1 , 2 , 2 ,通带最大衰减为 1dB,阻带最小衰减为 100dB。 用 脉冲响应不变法设计巴特沃斯带阻滤波器, 程序 如下: Wp1=*pi/T。 Wp2=*pi/T。 Ws1=*pi/T。 Ws2=*pi/T。 %设置归一化通带和阻带截止频率 T=1。 %设置采样周期为 1 fs=1/T。 %采样频率为周期倒数 Ap=1。 As=100。 %设置通带最大和最小衰减 Wp=[Wp1,Wp2]。 Ws=[Ws1,Ws2]。 [N,Wn]=buttord(Wp,Ws,Ap,As,39。 s39。 )。 %调用 butter 函数确定巴特沃斯滤波器阶数 [B,A]=butter(N,Wn,39。 stop39。 ,39。 s39。 )。 %调用 butter 函数设计巴特沃斯滤波器 W=linspace(0,pi,1000*pi)。 %指定一段频率值 hf=freqs(B,A,W)。 %计算模拟滤波器的幅频响应 基于 MATLAB 的 IIR 数字滤波器的设计 18 [D,C]=impinvar(B,A,fs)。 %调用脉冲响应不变法 Hz=freqz(D,C,W)。 %返回频率响 应 plot(W/pi,abs(Hz))。 %绘出巴特沃斯数字带阻滤波器的幅频特性曲线 grid on。 xlabel(39。 Frequency39。 )。 ylabel(39。 Magnitude39。 )。 图 36脉冲响应不变法设计的巴特沃斯带阻滤波器运行波形 用 双线性变换法设计巴特沃斯带阻滤波器, 程序 如下: Wp1=*pi/T。 Wp2=*pi/T。 Ws1=*pi/T。 Ws2=*pi/T。 %设置归一化通带 和阻带截止频率 T=1。 %设置采样周期为 1 fs=1/T。 %采样频率为周期倒数 Ap=1。 As=100。 %设置通带最大和最小衰减 Wp=[Wp1,Wp2]。 Ws=[Ws1,Ws2]。 [N,Wn]=buttord(Wp,Ws,Ap,As,39。 s39。 )。 %调用 butter 函数确定巴特沃斯滤波器阶数 [B,A]=butter(N,Wn,39。 stop39。 ,39。 s39。 )。 %调用 butter 函数设计巴特沃斯 滤波器 W=linspace(0,pi,400*pi)。 %指定一段频率值 基于 MATLAB 的 IIR 数字滤波器的设计 19 hf=freqs(B,A,W)。 %计算模拟滤波器的幅频响应 [D,C]=bilinear(B,A,fs)。 %调用双线性变换法 Hz=freqz(D,C,W)。 %返回频率响应 plot(W/pi,abs(Hz))。 %绘出巴特沃斯数字带阻滤波器的幅频特性曲线 grid on。 xlabel(39。 Frequency39。 )。 ylabel(39。 Magnitude39。 )。 图 37双线性变换法设计的巴特沃斯带阻滤波器运行波形 切比雪夫数字 滤波器的设计 切比雪夫Ⅰ型滤波器在通带内幅度特性是等波纹的,在阻带内是单调的。 切比雪夫Ⅱ滤波器在通带内是单调的,在阻带内是等波纹的。 切比雪夫Ⅰ型低通滤波器的幅度平方函数为: )(11)(222cNajjCjH 上式结果是一个正实数,式 中的 是一个小于 1 的正数,它与通带的波 纹有关, 越大,波纹越大, c 为通带的截止频率, ()NCx时 N 阶切比雪夫多项式,定义为: 1))(c o sc o s ( 1))(( 11)( xxN xxN c hchN xC 基于 MATLAB 的 IIR 数字滤波器的设计 20 切比雪夫滤波器的传递函数参数确定: , c , N。 当 N 大于或等于 1 时,切比雪夫多项式递推公式为: )()()( 11 xCxNCxC NNN 切比雪夫滤波器的阶数 N 等于通带内等幅波动的次数,即最大值和最小值的总数,可由下式确定 (10 1)pA , (10 1)sA () 其中 ,均为与衰减有关的参数, Ap 为通带内的最大衰减, As 为阻带内的容许衰减,它们的单位为 dB。 因为滤波器的幅度平方函数为: 222211)(11)( cNajjCjH 进而化简得到 : ()N cjC j ,又因为 ( / ) 1c ,由式上式得到: ))/((/j 1 ccN jjNc hchjC )( 故滤波器的阶数 N 为:)()(11echchN 若要求阻带截止频率上的衰减越大,或过渡带内幅度特性越陡,则所需的阶数 N越高。 从式中可知切比雪夫滤波器的幅度平方函数也只有极点没有零点,且只需求出左半平面的极点,所以一旦求出 , c , N,就能确定 ()aHs。 数字高通。基于matlab的iir数字滤波器的设计(编辑修改稿)
相关推荐
27) 比较方程( 217)与( 218),可知( 219)中的位移 x 是( 220)中复数 x 的虚部,因此( 225)的虚部就是方程( 212)的特解,即有 )sin( tBx ( 228) 其中 B 为振幅, 为相位差。 由式( 226)、 223)及( 224)得出稳态强迫振动有如下的基本特点: 辽宁工程技术大学毕业设计(论文) 13
入到科学研究及工程计算各个领域的重要原因。 ( 3)强大的科学计算机数据处理能力 Matlab 是一个包含大量计算算法的集合。 其拥有 600 多个工程中要用到的数学运算函数,可以方便的实现 用户所需的各种计算功能。 函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。 在通常情况下,可以用它来代替底层编程语言,如 C 和 C++。 在计算要求相同的情况下,使用
一个滤波器的截止频率 Wn 和最小阶数 n。 调用形式为: R s )R p ,W s ,p,c h e b2 o r d ( WW n ][ n , ( 7) 通过上式求得滤波器的 n 和 Wn 后,在通过 MATLAB 软件中的 cheby2 函数的调用得到滤波器 传递函数的 分母系数 a 和 滤波器传递函数的分子 系数 b。 调用形式 为: W n)R s ,c he by2( n
击响应长度9,即滤波器阶数为8b=fir1(N1,wc/pi,39。 high39。 ,boxcar(N))。 n=0:1:8。 %调用fir1函数subplot(1,2,1)。 stem(n,b,39。 .39。 ) %输出单位脉冲冲击响应axis([0,8,1])。 grid。 xlabel(39。 n39。 )。 ylabel(39。 h(n)39。 )。 title(39。 冲激响应39
构功能十分强大 , 复杂的逻辑控制可以用最简单明确的语言来描述。 ② 独立于 任何 器件的设计:设计人员 使用 VHDL 语言进行硬件电路的设计时, 可以脱离此项设计的逻辑器件来进行设计。 这样,设计人员就 能花费大量的时间与精力来进行设计的构思。 ③ 可进行程序 的 移 植: VHDL 语言的移植能力是允许设计人员对需要综合设计描述 来 进行模拟
断没有被使能,也就是中断使能位的值为 0,那么外设就不会向 PIE 控制器提出中断请求。 但在本系统中,定时器 0 内部的 计数 寄存器一旦递减到零,就会向 PIE 产生一个中断请求 TINT, 而 无需经过外设内部的中断位置位。 第 8 页 级 PIE 模块的 8 个外设中断和外部引脚中断复用一个 CPU 中断,这些中断被分为 12 组, 即 一组中的中断复用一个 CPU 中断。