数字信号处理专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1需求分析用海明窗函数法设计一个数字FIR 带阻滤波器,要求通带边界频率为350Hz ,550Hz ,阻带边界频率为400Hz ,500Hz ,通带最大衰减1dB ,阻带最小衰减40dB ,抽样频率为2000Hz ,用MA TLAB 画出幅频特性,画出并分析滤波器传输函数的零极点;信号)2sin()2sin()()()(2121t f t f t x t x t x ππ+=+=经过该滤波器,其中=1f 450Hz ,=2f 600Hz ,滤波器的输出)(t y 是什么?用Matlab 验证你的结论并给出)(),(),(),(21t y t x t x t x 的图形。
,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
现如今随着电子设备工作频率范围的不断扩大,电磁干扰也越来也严重,接收机接收到的信号也越来越复杂。
为了得到所需要频率的信号,就需要对接收到的信号进行过滤,从而得到所需频率段的信号,这就是滤波器的工作原理。
对于传统的滤波器而言,如果滤波器的输入,输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,这样的滤波器定义为数字滤波器。
它通过对采样数据信号进行数学运算来达到频域滤波的目的.滤波器在功能上可分为四类,即低通(LP )、高通(HP )、带通(BP )、带阻(BS )滤波器等,每种又有模拟滤波器(AF )和数字滤波器(DF )两种形式。
对数字滤波器,从实现方法上,由有限长冲激响应所表示的数字滤波器被称为FIR 滤波器,具有无限冲激响应的数字滤波器被称为IIR 滤波器。
F IR 数字滤波器的主要优点有:一、可具有严格的线性相位特性;二、不存在稳定性问题;三、可利用DFT 来实现。
这些优点使FIR 数字滤波器得到了广泛应用。
窗函数法是一种设计FIR 数字滤波器的基本方法,但它不是最佳设计方法,在满足同样设计指标的情况下,用这种方法设计出的滤波器的阶数通常偏大。
在窗函数法的基础上,以所定义的逼近误差最小为准则来进行优化设计的算法,由于其中的逼近误差可根据不同的设计要求进行定义,故此算法适应性强,它即可用于设计选频型滤波器,又适用于非选频型滤波器的设计。
常用的窗函数有矩形窗函数、三角窗函数、汉宁(Hann )窗函数、海明(Hamming )窗函数、布莱克曼(Blackman )窗函数、凯塞(Kaiser )窗函数等。
本设计通过MATLAB 软件对FIR 型滤波器进行理论上的实现,利用海明窗函数设计数字FIR 带阻滤波器。
FIR 系统不像IIR 系统那样易取得较好的通带和阻带衰减特性,要取得较好的衰减特性,一般要求H (z )阶次要高,也即M 要大。
FIR 系统有自己突出的优点:系统总是稳定的;易实现线性相位;允许设计多通带(或多阻带)滤波器,后两项都是IIR 系统不易实现的。
FIR 数字滤波器的设计方法有多种,如窗函数设计法、频率采样法和Chebyshev 逼近法等。
随着Matlab 软件尤其是Matlab 的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。
本实验的数字滤波器的MA TLAB 实现是指调用MA TLAB 信号处理工具箱函数filter 对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n )。
2 概要设计设计FIR 数字滤波器的基本方法:FIR 数字滤波器的系统函数无分母,为 11()()N N in i i i H Z b zh n z ----====∑∑,系统频率响应可写成:10()()N jwjwnn H e h n e--==∑,令 ()jw H e =()()j w H w e ϕ,H(w)为幅度函数,()w ϕ称为相位函数。
这与模和辐角的表示方法不同,H(w)为可为正可为负的实数,这是为了表达上的方便。
如某系统频率响应 ()jw H e =sin4w 3j we-,如果采用模和幅角的表示方法,sin4w的变号相当于在相位上加上π(因-1= j e π),从而造成相位曲线的不连贯和表达不方便,用()()j w H w e ϕ则连贯而方便。
窗函数法又称傅里叶级数法,其设计是在时域进行的。
函数一般是无限长且非因果的,设计时需用一个合适的窗函数把截成有限长的因果序列,使对应的频率响应(的傅里叶变换)尽可能好地逼近理想频率响应。
窗函数法的主要缺点是:一、不容易设计预先给定截止频率的滤波器;二、满足同样设计指标的情况下所设计出的滤波器的阶数通常偏大。
一些固定窗函数的特性表FIR 数字滤波器设计的基本步骤如下:(1)确定技术指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。
在很多实际应用中,数字滤波器常被用来实现选频操作。
因此,指标的形式一般在频域中给出幅度和相位响应。
幅度指标主要以2种方式给出。
第一种是绝对指标。
他提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。
第二种指标是相对指标。
他以分贝值的形式给出要求。
本文中滤波器的设计就以线性相位FIR滤波器的设计为例。
(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型(通常采用理想的数字滤波器模型)。
之后,利用数字滤波器的设计方法(窗函数法、频率采样法等),设计出一个实际滤波器模型来逼近给定的目标。
(3)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。
根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
程序流程图↓↓↓↓↓↓↓3 运行环境PC机 MATLAB4 开发工具和编程语言MATLAB语言5 详细设计function FilterSignalDemo% This program demonstrate Bandstop filter' frequency domain response.% Then, a compond signal is produced by adding middle frequency signal and% a Gaussian White noise. The filtering process can be explained by % altering the cofficiency of signals and noise.% College of Information Science & Engineering,% Henan University of Technology% Demo step:% 1. Middle frequency signal 450 Hz pass Bandstop filter% 2. complex signal for Bandstop filter% 3. adding noise effect% 4. enlarge noise's effect, introduce SNR conceptclc;clear all;close all;% Coeff_LF Coeff_MF Coeff_HF% Demo A: Low freq signal: 1 0 0% Demo B: Middlefreq signal: 0 1 0% Demo C: High freq signal: 0 0 1% Demo D: total freq signals: 1 1 1Coeff_MF = 1; % Coefficient of middle frequency signal F1(450 Hz) Coeff_HF = 0; % Coefficient of High frequency signal F2(600 Hz)Coeff_NOISE = 0; % Coefficient of noise, such as 0(without noise), 1, sqrt(2), 3 and so on.F1 = 450; % HzF2 = 600; % HzFS = 2000; % Hz sample frequency% Time definationEndTime = 1/FS * 1023;Time = 0:1/FS:EndTime;N = length(Time);% Generating a sin signalSinSignalSum = Coeff_MF*sin(2*pi*F1*Time)+Coeff_HF*sin(2*pi*F2*Time) + Coeff_NOISE*randn(1, N);SinSignal = SinSignalSum;SinSignal1 = Coeff_MF*sin(2*pi*F1*Time);SinSignal2 = Coeff_HF*sin(2*pi*F2*Time);figuresubplot(2,1,1)plot(Time, SinSignal1)xlabel('x1(t)')xlim([0 0.05])title('Time domain signals')subplot(2,1,2)plot(Time, SinSignal2)xlabel('x2(t)')xlim([0 0.05])figuresubplot(2,1,1)plot(Time, SinSignalSum)xlabel('x(t)')xlim([0 0.05])title('Time domain signals')FFTSinSignalSum = 2 / N * fft(SinSignalSum)subplot(2,1,2)FnSinSum = abs(FFTSinSignalSum);FW = 2*pi*(Time)/EndTime;plot(FW(2:length(FW))*FS/pi/2, FnSinSum(2:length(FW)))hold onplot((FW(2:length(FW))-2*pi)*FS/pi/2, FnSinSum(2:length(FW))) xlim([-FS/2 FS/2])ylim([0 1])xlabel('Frequency')%------------------Bandstop Filter---------------------figureWp = [350 550]/1000;Ws = [400 500]/1000;Rp = 1;Rs = 40;width=0.2*pi;N=ceil(8*pi/width);if(rem(N,2))==0N=N;endn=N+1b=fir1(N,[0.35 0.55],'stop');freqz(b,1,512,2000);title('hamming Bandstop Filter')Hq=dfilt.df2(b, 1);% Hq.arithmetic = 'fixed';zplane(Hq);xlim([-1.2, 1.2])ylim([-1.2, 1.2])YBP = filter(b, 1, SinSignal);figuresubplot(2,1,1)plot(Time, YBP)xlim([0 0.05])xlabel('y(t)')title('Time domain signals after Bandstop filter')FFTSinSignalSum = 2 / N * fft(YBP)subplot(2,1,2)FnSinSum = abs(FFTSinSignalSum);plot(FW(2:length(FW))*FS/pi/2, FnSinSum(2:length(FW)))hold onplot((FW(2:length(FW))-2*pi)*FS/pi/2, FnSinSum(2:length(FW)))xlim([-FS/2 FS/2])ylim([0 1])xlabel('Frequency')6 调试分析运行程序得n=41;开始时写的程序运行后总是出警告Warning: Odd order symmetric FIR filters must have a gain of zeroat the Nyquist frequency. The order is being increased by one. 而且没有n值。