课程设计-低通滤波器设计(含matlab程序)
2010/2011学年第2 学期学院:信息与通信工程学院专业:电子信息科学与技术学生姓名:学号:课程设计题目:低通滤波器设计起迄日期: 6 月13 日~6月24日课程设计地点:指导教师:系主任:下达任务书日期: 2011 年 6 月12 日课程设计任务书课程设计任务书目录1 设计目的及要 (5)1.1设计目的 (5)1.2设计内容和要求 (5)2 设计原理 (5)2.1 FIR滤波器 (5)2.2窗函数 (6)2.3矩形窗 (7)3 设计过程 (8)3.1 设计流程图 (8)3.2 产生原始信号并分析频谱 (8)3.3 使用矩形窗设计不同特性的数字滤波器 (10)3.4 信号滤波处理 (11)4 实验结果及分析 (12)5 课程设计心得体会 (12)6 参考文献 (13)附录: (14)低通滤波器的设计1 设计目的及要求1.1设计目的设计一种低通滤波器并对信号进行滤波。
低通滤波器的作用是滤去信号中的中频和高频成分,增强低频成分。
要求做到:1.了解MATLAB的信号处理技术;2.使用MATLAB设计低通滤波器,掌握其滤波处理技术;3.对滤波前和滤波后的波形进行时域和频域比较。
1.2设计内容和要求1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析;2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进行滤波,对比分析滤波前后信号的频谱;3.实现信号频谱分析和滤波等有关MATLAB函数;2设计原理本次课程设计,我们主要是基于矩形窗的FIR滤波器来设计一个低通滤波器。
2.1 FIR滤波器FIR滤波器即有限抽样响应因果系统,其单位抽样响应h(n)是有限长的;极点皆位于z=0处;结构上不存在输出到输入的反馈,是非递归型的。
其系统函数表示为:普通的FIR滤波器系统的差分方程为:式中:N为FIR滤波器的抽头数;x(n)为第n时刻的输入样本;h(i)为FIR滤波器第i级抽头系数。
其直接型如图2-1所示。
图2-1 FIR直接型的一般形式在自适应处理、数据通信等领域中往往要求信号在传输过程中不能有明显的相位失真,FIR滤波器可以做到线性相位满足此要求。
FIR滤波器实质上是一个分节的延迟线,把每一节的输出加权累加,得到滤波器的输出。
对于FIR滤波器的单位脉冲响应h(i)只要满足以下2个条件之一,则为线性相位滤波器。
线性相位的FIR滤波器具有中心对称的特性,其对称中心在N/2处。
FIR滤波器的结构主要是非递归结构,没有输出到输入的反馈。
并且FIR滤波器很容易获得严格的线性相位特性,避免被处理信号产生相位失真。
而线性相位体现在时域中仅仅是h( n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系统中是非常重要的。
此外,他不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。
其主要的不足之处是,其较好的性能是以较高的阶数为代价换来的。
因此,在保证相同性能的前提下,努力降低其阶数是FIR 数字滤波器设计的重要因素之一。
2.2窗函数FIR 滤波器的设计方法有窗函数法、频率取样法和最优化设计法。
其中窗函数法是设计FIR 滤波器最简单有效的方法,也是最常用的方法。
在本次设计中,低通滤波器的系数是借助于窗函数法完成的。
窗函数设计的思想是采用不同有限时宽的窗函数去乘以无限长序列()n h d ,从而得到有限长序列h(n)。
利用加窗函数进行截断和平滑,实现一个物理可实现且具有线性相位的FIR 滤波器的设计目的。
FIR 滤波器的窗函数法设计过程为:)()()()()(Ω⨯Ω−−→−−−→−−−→−j DTFT n d IDTFT j d e H n h n h e H ω 式中:)(Ωj d e H 为逼近的理想滤波器频率响应;)(k h d 为理想滤波器的单位脉冲响应,是无限长序列。
为获取实际应用的FIR 滤波,需将()n h d 截断,用有限长的h(n)近似表示,用窗函数可以得到h(n)= ()n h d *()n ω,最后得到实际FIR 滤波的频率响应H(e jΩ)。
设计常用的窗函数有矩形窗、汉宁窗、海明窗、凯撒窗等。
矩形窗是一种比较容易实现的窗,本设计选择矩形窗实现。
2.3矩形窗这是一种最简单的窗函数,其窗函数为它的频率响应函数是将这个值与主瓣幅度(等于M)比较,这个峰值旁瓣幅度是主瓣幅度的13dB 。
累加振幅响应由第一个旁瓣幅度在21dB ,这就形成了21dB 的最小阻带衰减而与窗的宽度M 无关。
利用最小阻带衰减,可将过渡带宽准确计算处,这个计算出的真正过渡带宽是 b s ωω-=M8.1π ,这大约是近似带宽的一半。
3 设计过程3.1 设计流程图流程图如图3-1所示:图3-1 设计流程图3.2 产生原始信号并分析频谱要产生一个连续信号,包含低频,中频,高频分量,并对其进行采样。
这里信号取的是s=sin(2*π*t*5)+sin(2*π*t*15)+sin(2*π*t*30),信号中包含了5Hz 、15Hz 、30Hz 频率分量,对其采样的频率取100Hz 。
用plot 函数画出其时域波形如图3-2所示:图3-2 原始信号时域波形图用fft 函数对其进行快速傅里叶变换,画出其频谱图,即幅度谱和相位谱,如图3-3所示:图3-3 幅度谱和相位谱从频谱图中可以清楚看出其包含有低频、中频和高频分量。
3.3 使用矩形窗设计不同特性的数字滤波器首先设计低通滤波器,针对信号含有的三个频率分量,低通滤波器要把中频和高频分量滤掉,因此取通带截止频率为b f =10Hz ,阻带截止频率为s f =13Hz 。
取样频率为s f =100Hz ,由b ω=2*π*s b f /f ,s ω=2*s c f /f *π、过渡带宽:b s ωω-=M8.1π,得出M 。
取一理想低通脉冲响应d h =ideal_lp(c ω,M),其中c ω=0.5*(b s ωω+);矩形窗用窗函数w_box=(boxcar(M))',对d h 加矩形窗w_box ,得到一长度为M 的因果且线性相位FIR 滤波器h=d h .*w_box ,用函数[db,mag,pha,grd,w]=freqz_m(h,[1])得出其频谱特性。
画出理想脉冲响应d h 、矩形窗w_boxcar 、实际脉冲响应h 和滤波器的幅度响应(dB),如图3-4所示。
图3-4 低通滤波器的相关图3.4 信号滤波处理用函数sf=filter(h,[1],s)分别得出滤波后的信号,其中h 对应不同滤波器而不同。
画出滤波后信号的时域波形和频谱图。
通过低通滤波器后的的信号时域波形和频谱图如图3-5、3-6所示。
图3-5 低通滤波后的时域波形图3-6 低通滤波后的频域波形4 实验结果及分析把原有的信号通过所设计的低通滤波器后,得到了其时域和频域波形。
通过和原有信号分析比较,可以发现滤波后信号的时域波形中高频及中频分量被滤除,只剩下了s=sin(2*π*t*5)的低频信号。
对滤波前后的频域谱中幅度谱的对比,可以发现滤波后的幅度谱中在低频分量中的幅度和原有的信号几乎一样,而中频和高频中的幅度则可以忽略不计。
经过对比,可以发现我们通过窗函数设计的低通滤波器基本符合设计要求。
5 课程设计心得体会低通滤波器用于过滤掉信号中的高频与中频分量,以提取低频分量。
我们这次设计是通过矩形窗函数来设计FIR 低通滤波器,窗函数设计的思想是采用不同有限时宽的窗函数去乘以无限长序列()n h d ,从而得到有限长序列h(n)。
利用加窗函数进行截断和平滑,实现一个物理可实现且具有线性相位的FIR 滤波器的设计目的。
通过这次课设设计,让我对以学的知识有所回忆,加深了MATLAB 的应用,并且学到了许多新的知识。
我们组只有三个人,虽然人比较少,但是我们对这次的课程设计都非常积极。
我们根据在网上和参考书上找到有关低通滤波器的知识,在一起研究和设计程序;在MTALAB 程序出不来结果时,我们认真检查核对程序,对程序加以改正,最终出来低通滤波的结果,并对滤波前后的时域频域进行分析。
这次课程设计提高了我们的动手能力和自己主动分析解决问题的能力,也让我意识到团队合作的重要性,只有让每个人发挥自己的长处,才会发挥团队的力量。
6 参考文献1、桂志国,楼国红,陈友兴.数字信号处理.北京:科学出版社,20092、许开宇.数字信号处理.北京:电子工业出版社,20053、董长虹.MATLAB 信号处理与应用.北京:国防工业出版社,2005.附录:程序功能:产生一个包含低频、中频、高频的连续信号进行取样并画出其时域图 Fs=100;t=(1:100)/Fs;s1=sin(2*pi*t*5);s2=sin(2*pi*t*15);s3=sin(2*pi*t*30);s=s1+s2+s3;plot(t,s); % 画出信号的时域波形xlabel('Time(seconds)');ylabel('Time waveform');title('原始信号的时域波形');程序功能:画出信号的频谱图S=fft(s,512); % 对s进行快速傅立叶变换w=(0:255)/256*(Fs/2);plot(w,abs(S(1:256))); % 画出信号的幅度图xlabel('Frequency (Hz)');ylabel('幅度');title('幅度谱');axis([0 35 0 60]);grid;plot(w,angle(S(1:256))); % 画出信号的相位图xlabel('Frequency (Hz)');ylabel('相位');title('相位谱');程序功能:设计低通滤波器并画出其频谱图:fb=10; fc=13; % 设置滤波器截止频率fs=100; wb=2*pi*fb/fs;ws=2*pi*fc/fs; wc=0.5*(wb+ws);tr_width=ws-wb; % 过渡带宽M=ceil(1.8*pi/tr_width);hd=ideal_lp(wc,M); % 产生一理想低通滤波器w_box=(boxcar(M))'; % 矩形窗窗函数h=hd.*w_box;h=hd.*w_box;h=hd.*w_box;[db,mag,pha,grd,w]=freqz_m(h,[1]);n=[0:1:M-1];subplot(2,2,1);stem(n,hd); % 理想脉冲响应xlabel('n');ylabel('hd(n)'); title('Ideal Impulse Response');subplot(2,2,2);stem(n,w_box); % 矩形窗xlabel('n');ylabel('w(n)'); title('Boxcar Window');subplot(2,2,3);stem(n,h); % 实际脉冲响应xlabel('n');ylabel('h(n)'); title('Actual Impulse Response');subplot(2,2,4);plot(w*fs/(2*pi),db); % 幅度响应(dB)axis([0 40 -50 0]);xlabel('Frequency (Hz)');ylabel('Decibels');title('Magnitude Response in dB');grid产生理想状态低通滤波器function hd=ideal_lp(wc,M);alpha=(M-1)/2;n=[0:1:(M-1)];m=n-alpha+eps;hd=sin(wc*m)./(pi*m);对频谱图分析function [db,mag,pha,grd,w] = freqz_m(b,a);[H,w] = freqz(b,a,1000, 'whole' );H = (H(1:1:501))'; w = (w(1:1:501))';mag = abs(H);db = 20*log10((mag+eps)/max(mag));pha = angle(H);grd = grpdelay(b,a,w);程序功能:画出滤波后信号的时域波形和频谱sf=filter(h,[1],s); % sf为滤波后的信号plot(t,sf); % 画出滤波后信号的时域波形xlabel('时间(s)');ylabel('时域波形');axis([0 1 -1 1]);title('滤波后信号的时域波形');SF=fft(sf,512); % 对sf进行快速傅里叶变换w=(0:255)/256*(Fs/2);subplot(1,2,1);plot(w,abs(SF(1:256))); % 画出滤波后信号的幅度图xlabel('频率(Hz)');ylabel('幅度谱');title('滤波后信号的幅度谱'); grid;subplot(1,2,2);plot(w,angle(SF(1:256))); % 画出滤波后信号的相位图xlabel('频率(Hz)');ylabel('相位谱');title('滤波后信号的相位谱');。
用双线性变换法设计原型低通为椭圆型的数字IIR带通滤波器
课程设计课程设计名称:用双线性变换法设计原型低通为椭圆型的数字IIR带通滤波器专业班级: xxxxxx学生姓名:xxx学号: xxxxxxxxxxxx指导教师: xxx 课程设计时间:2014.6.16至2014.6.20电子信息工程专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一需求分析和技术要求1、需求分析滤波器从广义上来说对特定的频点或频点以外的频率进行有效滤波的电路,这种电路保留输入信号中的有用信息,滤除不需要的信息,从而达到信号的检测、提取、识别等不同的目的。
如果处理的信号是时域离散信号,那么相应的处理系统就称为数字滤波器,由于在实际工作中被处理的信号都是幅度量化的数字信号,因此,数字滤波器实际上是用有限精度的算法实现一个线性时不变的时域离散系统。
数字滤波器的种类很多,分类方法也不同,可以从功能上分类,也可以从实现方法上及设计方法上来分类等等。
滤波器在功能上总的可分为四类,即低通(LP)、高通(HP)、带通(BP)、带阻(BS)滤波器等,从实现方法上,由有限长冲激响应的数字滤波器被称为FIR滤波器,具有无限长冲激响应的数字滤波器称作IIR滤波器。
椭圆滤波器(Elliptic filter)又称考尔滤波器(Causer filter),是在通带和阻带等波纹的一种滤波器。
椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。
它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及阻带平坦、通带等波纹的切比雪夫滤波器。
利用双线性变换法将模拟传输信号Ha(s)变换为数字传输函数G(z),从而是z域的数字传输函数保留s域的模拟传输函数的基本性质。
设计成的IIR数字低通滤波器能够去掉信号中不必要的高频成分,降低采样频率,避免频率混淆,去掉高频干扰。
2、技术要求1、掌握用双线性变换法设计原型低通为椭圆型的数字IIR低通滤波器的原理和设计方法。
(完整版)fir低通滤波器设计(完整版)
电子科技大学信息与软件工程学院学院标准实验报告(实验)课程名称数字信号处理电子科技大学教务处制表电 子 科 技 大 学实 验 报 告学生姓名: 学 号: 指导教师: 实验地点: 实验时间:14-18一、实验室名称:计算机学院机房 二、实验项目名称:fir 低通滤波器的设计 三、实验学时: 四、实验原理:1. FIR 滤波器FIR 滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。
M 阶FIR 滤波器的系统函数H(z)为()[]Mkk H z h k z-==∑其中H(z)是kz-的M 阶多项式,在有限的z 平面内H(z)有M 个零点,在z平面原点z=0有M 个极点.FIR 滤波器的频率响应()j H e Ω为 0()[]Mj jk k H e h k e Ω-Ω==∑它的另外一种表示方法为()()()j j j H e H e e φΩΩΩ=其中()j H e Ω和()φΩ分别为系统的幅度响应和相位响应。
若系统的相位响应()φΩ满足下面的条件()φαΩ=-Ω即系统的群延迟是一个与Ω没有关系的常数α,称为系统H(z)具有严格线性相位。
由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR 滤波器设计中一般使用广义线性相位。
如果一个离散系统的频率响应()j H e Ω可以表示为()()()j j H e A e αβΩ-Ω+=Ω其中α和β是与Ω无关联的常数,()A Ω是可正可负的实函数,则称系统是广义线性相位的。
如果M 阶FIR 滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为[][]h k h M k =±-当h[k]满足h[k]=h[M-k],称h[k]偶对称。
当h[k]满足h[k]=-h[M-k],称h[k]奇对称。
按阶数h[k]又可分为M 奇数和M 偶数,所以线性相位的FIR 滤波器可以有四种类型。
2. 窗函数法设计FIR 滤波器窗函数设计法又称为傅里叶级数法。
MATLAB低通滤波器的设计代码
单位冲激响应及其幅频响应及其代码单位冲激响应的绘制思路比较简单,就是将一条直线用stem函数绘制出来,其图形必须为23个点。
其代码如下:n=0:22;x=n./n;stem(n,x); title('h(n)');axis([0,25,0,1.3]);单位冲激响应的幅频响应要用到专门的函数m文件。
该函数文件可以在主程序中调用多次,节省篇幅。
函数m文件代码如下:function xk=dft(xn,N)n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;xk=xn* WNnk;不同窗函数低通幅频响应对比模块窗函数不同,会对设计出的低通滤波器的性能不同。
应尽量选取旁瓣小主瓣窄的窗函数。
为了细致观察窗函数不同对设计的低通滤波器的不同影响,本次试验中设计了不同窗函数的低通滤波器的比较环节。
各个窗函数设计低通滤波器的思路是相似的,只是其中的窗函数是不同的。
用矩形窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string'));wn=D*pi;N=23;b=fir1(N,wn,boxcar(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0);title('矩形窗');用汉明窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string'));wn=D*pi;N=23;b=fir1(N,wn);[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('汉明窗');用三角窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string'));wn=D*pi;N=23;b=fir1(N,wn,triang(N+1));[w,t]=freqz(b,1,512);axis([0,3.5,0,1.5]);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)axis([0,3.5,0,1.4]);title('三角窗');用汉宁窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string')); wn=D*pi;N=23;b=fir1(N,wn,hanning(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('汉宁窗');用布莱克曼窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string')); wn=D*pi;N=23;b=fir1(N,wn,blackman(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('布莱克曼窗');用凯泽窗设计低通滤波器的代码:D=str2num(get(handles.edit1,'string')); wn=D*pi;N=23;b=fir1(N,wn,kaiser(N+1));[w,t]=freqz(b,1,512);QX=plot(t,abs(w));set(QX,'LineWidth',2.0)title('凯泽窗');。
用Matlab设计的低通数字滤波器
指导教师评定成绩:审定成绩:重庆邮电大学自动化学院综合课程设计报告低通数字滤波器设计单位(二级学院):自动化学生姓名:专业:自动化班级:0810902学号:指导教师:设计时间:2012 年11月重庆邮电大学自动化学院制摘要本次设计以AT89S52单片机为控制器件,利用AD/DA转换芯片构成低通数字滤波器。
首先利用MATLAB根据要求设计低通滤波器模型并在该平台进行初步仿真得到较为理想的效果。
接着利用proteus软件搭建硬件电路,并对编写的程序进行检测;程序检测无误后,再用Protel画出电路图。
首先利用ADC0809将模拟信号转换成数字信号输入单片机,正弦模拟信号由AD9850模块产生,是一般正常的低频正弦波;另一个噪声信号是通过单片机产生的高频脉冲信号。
然后通过滤波程序将采集的数据进行算法滤波,滤波后的数据通过DAC0832输出,将DA0832的输出信号通过一级运放(UA741)转换成电压输出。
最后将运放输出的结果接到示波器上进行显示。
关键字:AT89C51、DDS、ADC0809、DAC0832、UA741设计题目题目与要求低通滤波器是允许低频讯号通过,而不允许高频讯号通过的滤波器。
本题目要求用单片机(型号任选)制作一个低通数字滤波器,要求:1.根据确定的采样频率,用MATLAB设计低通滤波器模型以满足不同截止频率需求,并进行仿真;2.用单片机设计并制作一个低通数字滤波器,实现数据采集、滤波处理、信号输出等功能(包括软、硬件);3.滤波器能与PC机通信,设计通信协议,实现截止频率参数的调节、原始信号采样数据与滤波后数据的上传;4.利用高级语言开发工具,设计PC机端的程序,可以调节滤波器参数,接收滤波器上传的原始信号采样数据与滤波后数据,并能绘图、保存;5.设计几种不同频率、类型的噪声,利用滤波器进行试验,记录实验情况并进行分析、总结;6.按规定的统一格式设计报告。
目录第一章 MATLAB仿真 (4)1.1方案论证 (4)1.2设计方法及原理介绍 (4)1.3 matlab编程实现 (5)1.4 Simulink仿真结构图 (5)第二章硬件设计方案 (6)2.1硬件功能整体设计 (6)2.2单片机最小系统 (7)2.3 ADC0809和74HC74 (7)2.4 DAC0832和UA741 (8)2.5 串口部分 (9)2.6 DDS部分 (9)第三章软件设计 (10)3.1 单片机软件设计 (10)3.2 PC机通信软件设计 (12)第四章心得体会 (13)参考文献 (14)附件1:方波源程序 (15)附件2:DDS正弦信号模块 (15)附件3:主单片机程序 (19)附录4:protues原理图 (21)附录5:protel电路图 (22)附录6:DDS原理图 (22)第一章 MATLAB 仿真1.1方案论证数字滤波器,按功能分类,可以分成低通、高通、带通、带阻、全通滤波器;按实现的网络结构或单位抽样响应分类:可以分成无限脉冲响应滤波器(IIR 滤波器)、有限脉冲响应滤波器(FIR 滤波器)。
用MATLAB设计巴特沃斯低通滤波器
⽤MATLAB设计巴特沃斯低通滤波器⽤MATLAB 设计巴特沃斯低通滤波器1 巴特沃斯低通滤波器的特性⼀个理想低通滤波器的幅频特性如图3-80的阴影部分所⽰。
为了实现这个理想低通特性,需要在从0~ωC 的整个频带内增强增益,在ω>ωC 增益要降到0。
实际上,理想滤波器是不可能实现的。
图3-78是实际滤波器的幅频特性。
但是实际滤波器的特性愈接近理想特性愈好,巴特沃斯(Butterworth )滤波器就是解决这个问题的⽅法之⼀。
巴特沃斯滤波器以巴特沃斯函数来近似滤波器的系统函数,巴特沃斯的低通模平⽅函数为:221|()|1,2,,1(/)NC H j N j j ωωω==+ (3-138)式中以C ω是滤波器的电压-3dB 点或半功率点。
不同阶次的巴特沃斯滤波器特性如图3-79(a)所⽰。
4阶巴特沃斯滤波器的极点分布如图3-79(b)所⽰。
巴特沃斯滤波器幅频响应有以下特点:最⼤平坦性:在0=ω附近⼀段范围内是⾮常平直的,它以原点的最⼤平坦性来逼近理想低通滤波器。
通带、阻带下降的单调性。
这种滤波器具有良好的相频特性。
3dB 的不变性:随着N 的增加,频带边缘下降越陡峭,越接近理想特性。
但不管N 是多少,幅频特性都通过-3dB 点。
极点配置在半径为ωC 的圆上,并且均匀分布。
左半平⾯上的N 个极点是)(s H 的极点,右半平⾯上的N 个极点是)(s H -的极点。
2 巴特沃斯低通滤波器的实现为使巴特沃斯滤波器实⽤,我们必须能够实现它。
⼀个较好的⽅法是将巴特沃斯滤波器函数化成若⼲⼆阶节级联,其中每⼀节实现⼀对共轭复极点。
通过将极点以共轭复数的形式配对,对所有的每⼀个⼆阶节都具有实系数。
1图3-78 低通滤波器的幅频特性图3-80所⽰运算放⼤器电路为实现⼀对共轭极点提供了很好的⽅法。
电路的系统函数为202202121121122121)(1)11(1)(ωωω++=+++=s Qs C C R R s C R C R s C C R R s H (3-139)式中,ω0是S 平⾯原点与极点之间的距离,Q 被称为电路的“品质因数”,它提供了对响应峰值尖锐程度的⼀种度量。
课程设计_低通滤波器设计(含matlab程序)
2010/2011学年第 2 学期学院:信息与通信工程学院专业:电子信息科学与技术学生姓名:学号:课程设计题目:低通滤波器设计起迄日期: 6 月 13 日~6月 24日课程设计地点:指导教师:系主任:下达任务书日期: 2011 年 6 月12 日课程设计任务书课程设计任务书目录1 设计目的及要 (5)1.1设计目的 (5)1.2设计内容和要求 (5)2设计原理 (5)2.1 FIR滤波器 (5)2.2窗函数 (6)2.3矩形窗 (7)3设计过程 (8)3.1设计流程图 (8)3.2 产生原始信号并分析频谱 (8)3.3 使用矩形窗设计不同特性的数字滤波器 (10)3.4 信号滤波处理 (11)4 实验结果及分析 (12)5 课程设计心得体会 (12)6 参考文献 (13)附录: (14)低通滤波器的设计1 设计目的及要求1.1设计目的设计一种低通滤波器并对信号进行滤波。
低通滤波器的作用是滤去信号中的中频和高频成分,增强低频成分。
要求做到:1.了解MATLAB的信号处理技术;2.使用MATLAB设计低通滤波器,掌握其滤波处理技术;3.对滤波前和滤波后的波形进行时域和频域比较。
1.2设计内容和要求1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析;2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进行滤波,对比分析滤波前后信号的频谱;3.实现信号频谱分析和滤波等有关MATLAB函数;2设计原理本次课程设计,我们主要是基于矩形窗的FIR滤波器来设计一个低通滤波器。
2.1 FIR滤波器FIR滤波器即有限抽样响应因果系统,其单位抽样响应h<n>是有限长的;极点皆位于z=0处;结构上不存在输出到输入的反馈,是非递归型的。
其系统函数表示为:普通的FIR滤波器系统的差分方程为:式中:N为FIR滤波器的抽头数;x<n>为第n时刻的输入样本;h<i>为FIR滤波器第i级抽头系数。
数字滤波器的设计及其MATLAB实现
设计低通数字滤波器,要求在通带内频率低于0.2pirad时,允许幅度误差在1dB以内,在频率0.3pi rad~pi rad之间的阻带衰减大于15dB,用脉冲响应不变法设计数字滤波器,T=1: 切比雪夫I型模拟滤波器的设计子程序:function [b,a]=afd_chb1(Omegap,Omegar,Ar)if Omegap<=0error('通带边缘必须大于0')endif(Dt<=0)|(Ar<0)error('通带波动或阻带衰减必须大于0');endep=sqrt(10^(Dt/10)-1);A=10^(Ar/20);OmegaC=Omegap;OmegaR=Omegar/Omegap;g=sqrt(A*A-1)/ep;N=ceil(log10(g+sqrt(g*g-1))/log10(OmegaR+sqrt(OmegaR*OmegaR-1)));fprintf('\n***切比雪夫I型模拟低通滤波器阶数=%2.0f\n',N);[b,a]=u_chblap(N,Dt,OmegaC);设计非归一化切比雪夫I型模拟低通滤波器原型程序:function [b,a]=u_chblap(N,Dt,OmegaC)[z,p,k]=cheb1ap(N,Dt);a=real(poly(p));aNn=a(N+1);p=p*OmegaC;a=real(poly(p));aNu=a(N+1);k=k*aNu/aNn;b0=k;B=real(poly(z));b=k*B;直接形式转换成级联形式子程序:function [C,B,A]=sdir2cas(b,a)Na=length(a)-1;Nb=length(b)-1;b0=b(1);b=b/b0;a0=a(1);a=a/a0;C=b0/a0;p=cplxpair(roots(a));K=floor(Na/2);if K*2==NaA=zeros(K,3);for n=1:2:NaArow=p(n:1:n+1,:);Arow=poly(Arow);A((fix(n+1)/2),:)=real(Arow);elseif Na==1A=[0 real(poly(p))];elseA=zeros(K+1,3);for n=1:2:2*KArow=p(n:1:n+1,:);Arow=poly(Arow);A((fix(n+1)/2),:)=real(Arow);endA(K+1,:)=[0 real(poly(p(Na)))];endz=cplxpair(roots(b));K=floor(Nb/2);if Nb==0B=[0 0 poly(z)];elseif K*2==NbB=zeros(K,3);for n=1:2:NbBrow=z(n:1:n+1,:);Brow=poly(Brow);B((fix(n+1)/2),:)=real(Brow);endelseif Nb==1B=[0 real(poly(z))];elseB=zeros(K+1,3);for n=1:2:2*KBrow=z(n:1:n+1,:);Brow=poly(Brow);B((fix(n+1)/2),:)=real(Brow);endB(K+1,:)=[0 real(poly(z(Nb)))];End计算系统函数的幅度响应和相位响应子程序:function [db,mag,pha,w]=freqs_m(b,a,wmax)w1=0:500;w=w1*wmax/500;h=freqs(b,a,w);mag=abs(h);db=20*log10((mag+eps)/max(mag));pha=angle(h);脉冲响应不变法程序:function [b,a]=imp_invr(c,d,T)[R,p,k]=residue(c,d);p=exp(p*T);[b,a]=residuez(R,p,k);b=real(b).*T;数字滤波器响应子程序:function [db,mag,pha,grd,w]=freqz_m(b,a);[H,w]=freqz(b,a,1000,'whole');H=(H(1:501))';w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);直接转换成并联型子程序:function [C,B,A]=dir2par(b,a)M=length(b);N=length(a);[r1,p1,C]=residuez(b,a);p=cplxpair(p1,10000000*eps);x=cplxcomp(p1,p);r=r1(x);K=floor(N/2);B=zeros(K,2);A=zeros(K,3);if K*2==Nfor i=1:2:N-2br=r(i:1:i+1,:);ar=p(i:1:i+1,:);[br,ar]=residuez(br,ar,[]);B((fix(i+1)/2),:)real(br');A((fix(i+1)/2),:)real(ar');end[br,ar]=residuez(r(N-1),p(N-1),[]);B(K,:)=[real(br') 0];A(K,:)=[real(ar') 0];elsefor i=1:2:N-1br=r(i:1:i+1,:);ar=p(i:1:i+1,:);[br,ar]=residuez(br,ar,[]);B((fix(i+1)/2),:)real(br);A((fix(i+1)/2),:)real(ar);endEnd比较两个含同样标量元素但(可能)有不同下标的复数对及其相位留数向量子程序:function I=cplxcomp(p1,p2)I=[];for i=1:length(p2)for j=1:length(p1)if(abs(p1(j)-p2(i))<0.0001)I=[I,j];endendendI=I';双线性变换巴特沃斯低通滤波器设计:巴特沃思模拟滤波器的设计子程序:function [b,a]=afd_butt(wp,ws,Rp,rs)if wp<=0error('通带边缘必须大于0');endif ws<=wperror('阻带边缘必须大于通带边缘');endif(Rp<=0)|(Rs<0)error('通带波动或阻带衰减必须大于0');endN=ceil((log10((10^(Rp/10)-1)/(10^(Rs/10)-1)))/(2*log10(wp/ws))); fprintf('\n***Butterworth Filter Order=%2.0f\n',N);OmegaC=wp/((10^(Rp/10)-1)^(1/(2*N)));[b,a]=u_buttap(N,OmegaC)设计非归一化巴特沃思模拟低通滤波器原型子程序:function [b,a]=u_buttap(N,OmegaC)[z,p,k]=buttap(N);p=p*OmegaC;k=k*OmegaC^N;B=real(poly(z));b0=k;b=k*B;a=real(poly(p));直接型到级联型形式的转换:function [b0,B,A]=dir2cas(b,a)b0=b(1);b=b/b0;a0=a(1);a=a/a0;b0=b0/a0;M=length(b);N=length(a);if N>Mb=[b,zeros(1,N-M)];a=[a,zeros(1,M-N)];elseNM=0;endk=floor(N/2);B=zeros(k,3);A=zeros(k,3);if k*2==Nb=[b,0];a=[a,0];endbroots=cplxpair(roots(b));aroots=cplxpair(roots(a));for i=1:2:2*kbr=broots(i:1:i+1,:);br=real(polt(br));B((fix(i+1)/2),:)=br;ar=aroots(i:1:i+1,:);ar=real(polt(ar));A((fix(i+1)/2),:)=ar;Endfunction [db,mag,pha,grd,w]=freqz_m(b,a)[h,w]=freqz(b,a,1000,'whole');h=(h(1:501))';w=(w(1:501))';mag=abs(h);db=20*log10((mag+eps)/max(mag));pha=angle(h);grd=grdelay(b,a,w);设计一个巴特沃思高通滤波器,要求通带截止频率为0.6pi,通带内衰减不大于1dB,阻带·起始频率为0.4pi,阻带内衰减不小于15dB,T=1:>> wp=0.6*pi;ws=0.4*pi;>> Rp=1;Rs=15;T=1;>> [N,wn]=buttord(wp/pi,ws/pi,Rp,Rs) 计算巴特沃思滤波器阶数和截止频率N =4wn =>> [b,a]=butter(N,wn,'high'); 频率变换法计算巴特沃思高通滤波器>> [C,B,A]=dir2cas(b,a)C =0.0751B =1.0000 -2.0000 1.00001.0000 -2.0000 1.0000A =1.0000 0.1562 0.44881.0000 0.1124 0.0425>> [db,mag,pha,grd,w]=freqz_m(b,a);>> subplot(2,1,1);plot(w/pi,mag);>> subplot(2,1,2);plot(w/pi,db);椭圆带通滤波器的设计--ellip函数的应用:>> ws=[0.3*pi 0.75*pi]; 数字阻带边缘频率>> wp=[0.4*pi 0.6*pi]; 数字通带边缘频率>> Rp=1;Rs=40;>> Ripple=10^(-Rp/20); 通带波动>> Attn=10^(-Rs/20); 阻带衰减>> [N,wn]=ellipord(wp/pi,ws/pi,Rp,Rs) 计算椭圆滤波器参数N =4wn =0.4000 0.6000>> [b,a]=ellip(N,Rp,Rs,wn); 数字椭圆滤波器的设计>> [b0,B,A]=dir2cas(b,a) 级联形式实现b0 =0.0197B =1.0000 1.5066 1.00001.0000 0.9268 1.00001.0000 -0.9268 1.00001.0000 -1.5066 1.0000A =1.0000 0.5963 0.93991.0000 0.2774 0.79291.0000 -0.2774 0.79291.0000 -0.5963 0.9399>> figure(1);>> [db,mag,pha,grd,w]=freqz_m(b,a);>> subplot(2,2,1);plot(w/pi,mag);>> grid on;>> subplot(2,2,3);plot(w/pi,db);grid on;>> subplot(2,2,2);plot(w/pi,pha/pi);grid on;>> subplot(2,2,4);plot(w/pi,grd);设计一个巴特沃思带阻滤波器,要求通带上下截止频率为0.8pi、0.2pi,通带内衰减不大于1dB,阻带上起始频率为0.7pi、0.4pi,阻带内衰减不小于30dB:>> wp=[0.2*pi 0.8*pi];>> ws=[0.4*pi 0.7*pi];>> Rp=1;Rs=30;>> [N,wn]=buttord(wp/pi,ws/pi,Rp,Rs);>> [b,a]=butter(N,wn,'stop');>> [C,B,A]=dir2cas(b,a)C =0.0394B =1.0000 0.3559 0.99941.0000 0.3547 1.00401.0000 0.3522 0.99541.0000 0.3499 1.00461.0000 0.3475 0.99601.0000 0.3463 1.0006A =1.0000 1.3568 0.79281.0000 1.0330 0.46331.0000 0.6180 0.17751.0000 -0.2493 0.11131.0000 -0.6617 0.37551.0000 -0.9782 0.7446>> [db,mag,pha,grd,w]=freqz_m(b,a); >> subplot(2,1,1);plot(w/pi,mag);>> subplot(2,1,2);plot(w/pi);数字低通---数字带阻:function [bz,az]=zmapping(bZ,aZ,Nz,Dz) bzord=(length(bZ)-1)*(length(Nz)-1); azord=(length(aZ)-1)*(length(Dz)-1);bz=zeros(1,bzord+1);for k=0:bzordpln=[1];for i=0:k-1pln=conv(pln,Nz);endpld=[1];for i=0:bzord-k-1pld=conv(pld,Dz);endbz=bz+bZ(k+1)*conv(pln,pld); endfor k=0:azordpln=[1];for i=0:k-1pln=conv(pln,Nz);endpld=[1];for i=0:azord-k-1pld=conv(pld,Dz);endaz=az+aZ(k+1)*conv(pln,pld); endall=az(1);az=az/az1;bz=bz/az1;线性相位FIR滤波器的幅度特性:function pzkplot(num,den)hold on;axis('square');x=-1:0.01:1;y=(1-x.^2).^0.5;y1=-(1-x.^2).^0.5;plot(x,y,'b',x,y1,'b');num1=length(num);den1=length(den);if(num1>1)z=roots(num);elsez=0;endif(den1>1)p=roots(den);elsep=0;endif(num>1&den1>1)r_max_z=max(abs(real(z)));i_max_z=max(abs(imag(z)));a_max_z=max(r_max_z,i_max_z);r_max_p=max(abs(real(p)));i_max_p=max(abs(imag(p)));a_max_p=max(r_max_p,i_max_p);a_max=max(a_max_z,a_max_p);elseif (num1>1)r_max_z=max(abs(real(z)));i_max_z=max(abs(imag(z)));a_max=max(r_max_z,i_max_z);elser_max_p=max(abs(real(p)));i_max_p=max(abs(imag(p)));a_max=max(r_max_p,i_max_p);endaxis([-a_max a_max -a_max a_max]);plot([-a_max a_max],[0 0],'b');plot([0 0],[-a_max a_max],'b');plot([-a_max a_max],[a_max a_max],'b');plot([a_max a_max],[-a_max a_max],'b');Lz=length(z);for i=1:Lz;plot(real(z(i)),imag(z(i)),'bo');endLp=length(p);for j=1:Lpplot(real(p(j)),imag(p(j)),'bx');endtitle('The zeros-pole plot');xlabel('虚部');ylabel('实部');function [Hr,w,a,L]=Hr_Type1(h)M=length(h);L=(M-1)/2;a=[h(L+1) 2*h(L:-1:1)];n=[0:1:L];w=[0:1:500]'*pi/500;Hr=cos(w*n)*a';设计I型线性相位FIR滤波器:>> h=[-4 1 -1 -2 5 6 5 -2 -1 1 -4];>> M=length(h);n=0:M-1;>> [Hr,w,a,L]=Hr_Type1(h);>> amax=max(a)+1;>> amin=min(a)-1;>> subplot(2,2,1);stem(n,h);>> axis([-1 2*L+1 amin amax]);text(2*L+1.5,amin,'n'); >> xlabel('n');ylabel('h(n)');title('脉冲响应');>> subplot(2,2,3);stem(0:L,a);>> axis([-1 2*L+1 amin amax]);>> xlabel('n');ylabel('a(n)');title('a(n) 系数');>> subplot(2,2,2);plot(w/pi,Hr);>> grid on;text(1.05,-20,'频率pi');>> xlabel('频率');ylabel('Hr');title('I 型振幅响应');>> subplot(2,2,4);pzkplot(h,1);>> title('零极点分布');function [hr,w,b,L]=Hr_Type2(h)M=length(h);L=M/2;b=2*h(L:-1:1);n=[1:1:L];n=n-0.5;w=[0:1:500]'*pi/500;hr=cos(w*n)*b';II型线性相位FIR滤波器:>> h=[-4 1 -1 -2 5 6 5 -2 -1 1 -4];>> M=length(h);n=0:M-1;>> [Hr,w,b,L]=Hr_Type2(h);Warning: Integer operands are required for colon operator when used as index. > In Hr_Type2 at 2>> bmax=max(b)+1;bmin=min(b)-1;>> subplot(2,2,1);stem(n,h);axis([-1 2*L+1 bmin bmax]);text(2*L+1.5,bmin,'n');xlabel('n');ylabel('h(n)');title('脉冲响应');>> subplot(2,2,3);stem(1:L,b);axis([-1 2*L+1 bmin bmax]);xlabel('n');ylabel('b(n)');title('b(n) 系数');>> subplot(2,2,2);plot(w/pi,Hr);grid on;text(1.05,-20,'频率pi');xlabel('频率');ylabel('Hr');title('II 型振幅响应');>> subplot(2,2,4);pzkplot(h,1);title('零极点分布');function [hr,w,c,L]=Hr_Type3(h)M=length(h);L=(M-1)/2;b=2*h(L+1:-1:1);n=[1:1:L];w=[0:1:500]'*pi/500;hr=cos(w*n)*c';用MA TLAB编程绘制各种窗函数的形状。
课程设计-低通滤波器设计(含matlab程序)
课程设计-低通滤波器设计(含matlab程序)2010/2011学年第2 学期学院:信息与通信⼯程学院专业:电⼦信息科学与技术学⽣姓名:学号:课程设计题⽬:低通滤波器设计起迄⽇期: 6 ⽉13 ⽇~6⽉24⽇课程设计地点:指导教师:系主任:下达任务书⽇期: 2011 年 6 ⽉12 ⽇课程设计任务书课程设计任务书⽬录1 设计⽬的及要 (5) 1.1设计⽬的 (5)1.2设计内容和要求 (5)2 设计原理 (5)2.1 FIR滤波器 (5) 2.2窗函数 (6)2.3矩形窗 (7)3 设计过程 (8)3.1 设计流程图 (8)3.2 产⽣原始信号并分析频谱 (8)3.3 使⽤矩形窗设计不同特性的数字滤波器 (10)3.4 信号滤波处理 (11)4 实验结果及分析 (12)5 课程设计⼼得体会 (12)6 参考⽂献 (13)附录: (14)低通滤波器的设计1 设计⽬的及要求1.1设计⽬的设计⼀种低通滤波器并对信号进⾏滤波。
低通滤波器的作⽤是滤去信号中的中频和⾼频成分,增强低频成分。
要求做到:1.了解MATLAB 的信号处理技术;2.使⽤MATLAB 设计低通滤波器,掌握其滤波处理技术;3.对滤波前和滤波后的波形进⾏时域和频域⽐较。
1.2设计内容和要求1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析;2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进⾏滤波,对⽐分析滤波前后信号的频谱;3.实现信号频谱分析和滤波等有关MATLAB 函数;2 设计原理本次课程设计,我们主要是基于矩形窗的FIR 滤波器来设计⼀个低通滤波器。
2.1 FIR 滤波器FIR 滤波器即有限抽样响应因果系统,其单位抽样响应h(n)是有限长的;极点皆位于z=0处;结构上不存在输出到输⼊的反馈,是⾮递归型的。
其系统函数表⽰为:()()n -1-N 0n z n h z H ∑==普通的FIR 滤波器系统的差分⽅程为:()()()i n x i h n y 1N 0i -=∑-=式中:N 为FIR 滤波器的抽头数;x(n)为第n 时刻的输⼊样本;h(i)为FIR 滤波器第 i 级抽头系数。
基于MATLAB的数字滤波器设计
唐山学院数字信号处理课程设计题目基于MATLAB的数字滤波器设计系 (部) 信息工程系班级 10通信本2姓名学号指导教师2013 年 1 月 7 日至 1 月 11 日共 1 周数字信号处理课程设计任务书课程设计成绩评定表目录1 绪论 (1)2数字滤波器的设计 (2)2.1数字滤波器的基本概念 (2)2.2利用双线性变换法设计IIR数字滤波器 (2)3课程设计的具体实现 (3)3.1对语音信号进行滤波的滤波器设计 (3)3.1.1 IIR数字滤波器的流程图 (3)3.1.2IIR低通滤波器设计 (3)3.1.3 IIR高通滤波器设计 (5)3.1.4IIR带通滤波器设计 (7)3.2对合成信号进行滤波的滤波器设计 (8)3.2.1设计目的和要求 (8)3.2.2合成信号的程序设计 (8)3.2.3合成信号的频谱程序设计 (9)3.2.4低通滤波器设计 (10)3.2.5 IIR带通滤波器设计 (11)3.2.6IIR高通滤波器滤波 (13)4软件简介 (15)4.1系统界面设计工具—GUI概述 (15)4.2界面设计及使用说明 (15)5结论 (17)6 致谢 (18)参考文献 (19)附录 (20)1 绪论与模拟滤波器相对应,在离散系统中广泛应用数字滤波器。
它的作用是利用离散时间系统的特性对输入信号波形或频率进行加工处理。
或者说,把输入信号变成一定的输出信号,从而达到改变信号频谱的目的。
数字滤波器一般可以用两种方法来实现:一种方法是用数字硬件装配成一台专门的设备,这种设备称为数字信号处理机;另一种方法就是直接利用通用计算机,将所需要的运算编成程序让通用计算机来完成,即利用计算机软件来实现。
模拟滤波器在测试系统或专用仪器仪表中是一种常用的变换装置。
例如:带通滤波器用作频谱分析仪中的选频装置;低通滤波器用作数字信号分析系统中的抗频混滤波;高通滤波器被用于声发射检测仪中剔除低频干扰噪声;带阻滤波器用作电涡流测振仪中的陷波器,等等。
数字滤波器的设计(MATLAB仿真)
2012-5-9
13
图形:
0 Magnitude (dB) -20
-40
-60
0
100
200
300
400 500 600 Frequency (Hz)
700
800
900
1000
0 Phase (degrees) -20 -40 -60 -80 -100 0 100 200 300 400 500 600 Frequency (Hz) 700 800 900 1000
2012-5-9
24
得出结果: b= 0.2774 -0.0460 -0.0761 0.1008 -0.0571 0.1488 0.1262 -0.3949 -0.0783 0.0512 0.0270
a= 1.0000 -0.0185 0.2372 -0.0633 0.4144 0.1727 0.0393 0.0629 0.3588 0.0496 0.1016
2012-5-9
8
得出结果: N= 2 wn = 0.6630 b= 0.1578 -0.3155 a= 1.0000 0.6062 0.2373 0.1578
2012-5-9
9
图形:
0 Magnitude (dB) -50
-100
0
50
100
150
200 250 300 Frequency (Hz)
2012-5-9
18
设计一个带通Chebyshev II型数字滤波 器,满足:通带边界频率为100-200赫兹; 过渡带宽为30赫兹,通带波纹小于3dB, 阻带衰减大于30dB;采样频率为1000赫 兹。
2012-5-9
19
