第一篇:数字信号处理知识总结课案(模版)
1.傅里叶变换
x(n)的一个周期; 有限长序列
x(n)
可看成周期序列
~
x(n)看成x把 ~(n)的以N为周期的周期延拓。有限长序列的离散傅里叶变换(DFT):
N1nk X(k)DFT[x(n)]x(n)WNx(n)x((n))N~n0 ~1N1nkx(n)x(n)RN(n)x((n))NRN(n)x(n)IDFT[X(k)]X(k)W NNk0
① 长度为N的有限长序列 x(n),其离散傅里叶变换 X(k)仍是一个长度为N 的有限长序列;
② x(n)与X(k)是一个有限长序列离散傅里叶变换对,已知x(n)就能唯一地确定 X(k);同样已知X(k)也就唯一地确定x(n)。实际上x(n)与 X(k)都是长度为 N 的序列(复序列)都有N个独立值,因而具有等量的信息; ③ 有限长序列隐含着周期性。
2.循环卷积(有可能会让画出卷积过程或结果)
循环卷积过程为:
最后结果为:
3.(见课本)
课本
3、线性卷积(有可能会让画出卷积过程或结果)
以下为PPT上的相关题目:
4.计算分段卷积:重叠相加法和重叠保留法(一定会考一种)
重叠相加法解题基本步骤:
将长序列均匀分段,每段长度为M;
基于DFT快速卷积法,通过循环卷积求每一段的线性卷积;
依次将相邻两段的卷积的N-1个重叠点相加,得到最终的卷积结果。
4.级联、并联、直接形(画图)以下为课后作业相关题目:
1.已知系统用下面差分方程描述: 311y(n)=y(n1)-y(n2)+x(n)x(n1)483
试分别画出系统的直接型、级联型和并联型结构。式中x(n)和y(n)分别表示系统的输入和输出信号。
解: 将原式移项得
311y(n)y(n1)y(n2)x(n)x(n1)483
将上式进行Z变换,得到
311121Y(z)Y(z)zY(z)zX(z)X(z)z483
11z13H(z)311z1z248(1)按照系统函数
H(z),根据Masson公式,画出直接型结构如题1解图
(一)所示。1z11(2)将H(z)的分母进行因式分解:
H(z) 3111z11z1
24111z按照上式可以有两种级联型结构: 13H(z) 111z11z1 241画出级联型结构如题1解图
(二)(a)所示 1z11 H(z) 3111z11z1
24画出级联型结构如题1解图
(二)(b)所示
111z11z133H(z)311211111zz(1z)(1z)4824
(3)
将H(z)进行部分分式展开:
1zH(z)AB3H(z)11111111z(z)(z)zz(1z)(1z)2424 2411z***zzH(z)33333H(z)311111111z(z)z1z1zzz24242410
根据上式画出并联型结构如题1解图
(三)所示。
3.设系统的差分方程为
y(n)=(a+b)y(n-1)-aby(n-2)+x(n-2)+(a+b)x(n-1)+ab 式中, |a|<1,|b|<1,x(n)和y(n)分别表示系统的输入和输出信号, 试画出系统的直接型和级联型结构。
解:
(1)直接型结构。将差分方程进行Z变换,得到
Y(z)=(a+b)Y(z)z-1-abY(z)z-2+X(z)z-2-(a+b)X(z)z-1+ab Y(z)ab(ab)zzH(z)X(z)1(ab)z1abz2按照Masson公式画出直接型结构如题3解图
(一)所示。
12
(2)级联型结构。将H(z)的分子和分母进行因式分解,得到
(az1)(bz1)H(z)H1(z)H2(z)11(1az)(1bz)
按照上式可以有两种级联型结构:①
z1aH1(z)1az1画出级联型结构如题3解图
(二)(a)所示
z1bH2(z)1bz11
zaH1(z)11bz画出级联型结构如题3解图
(二)(b)所示 1zbH2(z)11az
四.设计模拟滤波器(考试时不能编代码)一般步骤:
根据Ap、As、Ωs、Ωp,确定滤波器阶次N和截止频率Ωc。
P161 【例6.2.2】
设计一个模拟低通巴特沃斯滤波器,指标如下:
(1)通带截止频率:Ωp=0.2π;通带最大衰减:Ap=7 dB。
(2)阻带截止频率:Ωs=0.3π;阻带最小衰减:As=16dB。解: lg[(100.71)/(101.61)] N2.7932lg(0.2/0.3)
由Ωp,得:
0.2
Qc0.49850.76 101由Ωs,得:
0.3Q0.5122 c1.66101
在上面两个Ωc之间选Ωc=0.5。
最后可得(级联型):
0.125Ha(s)
(s0.5)(s20.5s0.25)
五、脉冲响应不变法(P177 第6.3节)156-158页
脉冲响应不变法的优点:
时域逼近。使数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,即时域逼近良好。 线性频率关系。
模拟频率Ω和数字频率ω之间呈线性关系ω=ΩT。脉冲响应不变法的缺点: 混叠失真效应
因此,只适用于限带的模拟滤波器(例如衰减特性很好的低通或带通滤波器),而且高频衰减越快,混叠效应越小;而对于高通和带阻滤波器,由于它们在高频部分不衰减,因此会产生混叠现象。
六、双线性变换法
七,与实验相关
本题中老师会给出类似于下列表达式的信号:
S(t)23cos(250t30/180)1.5cos(275t90/180)
要求用脉冲相应不变法或双线性法编写主要的代码(如下面代码)来达到滤除其中的部分信号,并画出你所设计的滤波器的频响曲线,并标明Ωs、Ωp,以及滤波后信号的时域波形(波形中要体现相位特征)。1)脉冲响应不变法滤除第三个信号: Fs=256;
% 采样频率 fp=60;
% 通带截止频率 fs=70;
% 阻带截止频率 Rp=1;
Rs=25;Wp=(fp/Fs)*2*pi;
%临界频率采用角频率表示 Ws=(fs/Fs)*2*pi;
%临界频率采用角频率表示 OmegaP=Wp*Fs;OmegaS=Ws*Fs;[n,Wc]=buttord(OmegaP,OmegaS,Rp,Rs,'s');[b,a]=butter(n,Wc,'s');[Bz,Az]=impinvar(b,a,Fs);
2)双线性法滤除第三个信号: Fs=256;
% 采样频率 fp=60;
% 通带截止频率 fs=70;
% 阻带截止频率 Rp=1;
Rs=25;Wp=(fp/Fs)*2*pi;
% 临界频率采用角频率表示 Ws=(fs/Fs)*2*pi;
% 临界频率采用角频率表示 OmegaP=2*Fs*tan(Wp/2);
% 频率预畸 OmegaS=2*Fs*tan(Ws/2);[n,Wc]=buttord(OmegaP,OmegaS,Rp,Rs,'s');[b,a]=butter(n,Wc,'s');
[Bz,Az]=bilinear(b,a,Fs);注:要好好看实验中关于低通,高通,带通,带阻的设计代码。
带通:
fp1=40;
% 通带截止频率 fs1=30;
% 阻带截止频率 fp2=60;
% 通带截止频率 fs2=70;
% 阻带截止频率 Rp=1;
Rs=25;Wp1=(fp1/Fs)*2*pi;Ws1=(fs1/Fs)*2*pi;Wp2=(fp2/Fs)*2*pi;Ws2=(fs2/Fs)*2*pi;Wp=[Wp1,Wp2];
% 向量 Ws=[Ws1,Ws2];
% 向量
带阻:
fp1=30;
% 通带截止频率 fs1=40;
% 阻带截止频率 fp2=70;
% 通带截止频率 fs2=60;
% 阻带截止频率 Rp=1;
Rs=25;Wp1=(fp1/Fs)*2*pi;Ws1=(fs1/Fs)*2*pi;Wp2=(fp2/Fs)*2*pi;Ws2=(fs2/Fs)*2*pi;Wp=[Wp1,Wp2];Ws=[Ws1,Ws2];若S(5t)信号表达
i(n2
式为
t2703ctosts则相关代码为:
1)低通滤波器代码
fp=110;% 通带截止频率 fs=130;% 阻带截止频率
Rp=1;Rs=25;Wp=(fp/Fs)*2*pi;Ws=(fs/Fs)*2*pi;%临界频率采用角频率表示
(1):脉冲响应不变法
OmegaP=Wp*Fs;OmegaS=Ws*Fs;[n,Wc]=buttord(OmegaP,OmegaS,Rp,Rs,'s');[b,a]=butter(n,Wc,'s');% 指明为高通滤波器 [Bz,Az]=impinvar(b,a,Fs);
(2)双线性变换法
OmegaP=2*Fs*tan(Wp/2);OmegaS=2*Fs*tan(Ws/2);% 频率预畸 [n,Wc]=buttord(OmegaP,OmegaS,Rp,Rs,'s');[b,a]=butter(n,Wc,'s');[Bz,Az]=bilinear(b,a,Fs);
2)高通滤波器
fp=280;% 通带截止频率 fs=260;% 阻带截止频率 Rp=1;Rs=25;Wp=(fp/Fs)*2*pi;%临界频率采用角频率表示 Ws=(fs/Fs)*2*pi;%临界频率采用角频率表示(2):双线性变换法
OmegaP=2*Fs*tan(Wp/2);% 频率预畸 OmegaS=2*Fs*tan(Ws/2);[n,Wc]=buttord(OmegaP,OmegaS,Rp,Rs,'s');[b,a]=butter(2*n,Wc,'high','s');[Bz, Az]=bilinear(b,a,Fs);3)带通滤波器
fp1=130;% 通带截止频率 fs1=110;% 阻带截止频率 fp2=255;% 通带截止频率 fs2=265;% 阻带截止频率 Rp=1;Rs=25;Wp1=(fp1/Fs)*2*pi;Ws1=(fs1/Fs)*2*pi;Wp2=(fp2/Fs)*2*pi;Ws2=(fs2/Fs)*2*pi;Wp=[Wp1,Wp2];Ws=[Ws1,Ws2];(2):双线性变换法
OmegaP=2*Fs*tan(Wp/2);% 频率预畸 OmegaS=2*Fs*tan(Ws/2);[n,Wc]=buttord(OmegaP,OmegaS,Rp,Rs,'s');[b,a]=butter(2*n,Wc,'s');[Bz,Az]=bilinear(b,a,Fs);4)带阻滤波器的代码如下:
fp1=110;% 通带截止频率 fs1=240;% 阻带截止频率 fp2=265;% 通带截止频率 fs2=255;% 阻带截止频率 Rp=1;Rs=25;Wp1=(fp1/Fs)*2*pi;Ws1=(fs1/Fs)*2*pi;Wp2=(fp2/Fs)*2*pi;Ws2=(fs2/Fs)*2*pi;
Wp=[Wp1,Wp2];Ws=[Ws1,Ws2];(2):双线性变换法
OmegaP=2*Fs*tan(Wp/2);% 频率预畸 OmegaS=2*Fs*tan(Ws/2);[n,Wc]=buttord(OmegaP,OmegaS,Rp,Rs,'s');[b,a]=butter(2*n,Wc,'stop','s');[Bz,Az]=bilinear(b,a,Fs);
第二篇:数字信号处理课设
信息科学与工程学院
数字信号处理课程设计实验报告
课题名称: 简单信号滤波演示系统 学生姓名: 学 号: 专业班级: 指导老师: 实验时间: 2014.10.8
目 录
第一章
概述.................................3
第二章
第三章
第四章第五章第六章
1.1 FIR、IIR概述.................................3 1.2题目要求......................................3 设计分析.............................5 2.1算法分析......................................5 2.2 在matlab中实现的分析........................6
程序实现.......................8 3.1 程序主体介绍..................................8 3.2 子程序........................................9 3.3 程序调试及运行结果............................9 3.4 结果分析及问题分析...........................16 心得体会............................17 参考文献............................18 源代码..............................19
MATLAB
第一章 概述
1.1 FIR、IIR概述
数字滤波器是指输入输出均为数字信号,通过一定的运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器与模拟滤波器相比数字滤波器具有精度高、稳定、体积小、重量小、灵活等特点。主要分为两种:有限脉冲响应FIR和无限脉冲响应IIR。设计滤波器的主要要求有两种,一是幅频特性,一是相频特性。一般的滤波器主要是对幅频特性作出要求,如果对输出相频特性也有要求,就需要用到线性相位滤波器。IIR滤波器的设计主要有两类,一是借助于模拟滤波器设计进行,二是直接在频域或时域中进行设计。FIR滤波器的设计不能借助于模拟滤波器,也有两类设计方法,一是窗函数法,二是频率采样法。还有一种比较有效的方法是切比雪夫等波纹逼近法,需通过计算机辅助进行。
1.2题目要求
设计一个工作流程如图所示的信号滤波演示系统:
图2 滤波演示图
⑴ 信号发生器—根据信号选择分为两大类:
① 静态型:直接输入(或从文件读取)测试信号序列;
② 动态型:输入由多个不同频率正弦信号叠加组合而成的模拟信号公式 100sin(2f1t)100sin(2f2t)...100sin(2fnt)采样频率(Hz)以及采样点数,动态生成该信号的采样序列,作为测试信号。
⑵ 频谱分析—使用FFT 对产生的测试信号进行频谱分析并展示其幅频、相频特
性,指定需要滤除或保留的频带,通过选择滤波器类型(IIR/FIR),确定对
应的滤波器(低通、高通、带通、带阻)技术指标。
⑶ 滤波器设计—根据IIR/FIR 数字滤波器技术指标设计滤波器,生成相应的滤
波器系数,并展示对应的滤波器幅频(衰减)、相频特性。
① IIR DF 设计:使用双线性变换法,可选择滤波器基型(巴特沃斯或切比雪夫型);
② FIR DF 设计:使用窗口法,可选择窗口类型。
⑷ 数字滤波—根据设计的滤波器系数,对测试信号进行滤波。
① IIR DF:要求通过差分方程迭代实现滤波,未知初值置零处理; ② FIR DF:要求通过快速卷积实现滤波。可以选择使用重叠相加或重叠保留法进行卷积运算,并动态展示卷积运算的详细过程。
⑸ 输出信号分析—展示滤波后信号的幅频与相频特性,分析是否满足滤波要求。
对同一滤波要求,根据输出信号频谱,对比分析各类滤波器的差异。选做部分
将一段语音作为测试信号,通过频谱展示和语音播放,对比分析滤波前后语音信号的变化,进一步加深对数字信号处理的理解。
第二章 设计分析
2.1算法分析
此题目的实现可分为三个某块的设计实现:输入信号模块,设计滤波器模块,滤波模块。
首先明确各模块间的数据依赖关系:在输入信号模块得到信号后,对信号
进行频域分析,从而确定滤波器的相关技术指标,根据滤波器的技术指标与类型,在滤波器设计模块完成滤波器的设计,然后将滤波器的设计结果传递给滤波模块,滤波模块同时接收输入信号,从而通过运算,实现信号的滤波处理。从数据传递关系上分析,滤波模块的实现依赖于其他模块的数据输出,因此放在最后设计。先设计输入模块。
因为此设计相对复杂,分模块设计,通过参数传递和接口实现分模块设计即检验,提高程序的稳定性与健壮性。
输入的实现可以有两种方式:静态输入和动态输入。静态输入选择从文本输入数据,将信号取样值以矩阵的形式存放在文本中。采用文件的读取就可以实现,比较容易。动态输入,即输入由一系列频率的正弦信号相加的组成的信号,需要经过采样的,注意在设置采样频率时一定要符合奈奎斯特准则,提高采样点数,增加频谱分辨率。最后输出一采样信号向量,传递给其余两模块。
滤波器的设计,通过输入信号的频谱分析,设置滤波器的参数,然后才可以设计滤波器。第一步需要总结设计滤波器需要哪些参数,通过学习可以总结,所有滤波器的参数有四个:通带截止频率、阻带截止频率、通带最大衰减、阻带最小衰减。
对滤波器的设计分两类:FIR和IIR,二则所需的函数及设计方法不同。IIR采用借助于模拟滤波器的方式,包括巴特沃斯滤波器和切比雪夫滤波器两种类型。FIR采用窗函数方式,有矩形窗、三角窗、汉明窗、汉宁窗、布莱克曼和凯塞窗。通过调用不同的函数来实现滤波器的设计。特别在实现窗函数滤波器时,各个函数的主要区别是不同的频率采样,可以通过选择结构实现,简化程序。通过滤波器的设计最后可以得到滤波器的系统函数H(z)的系数。分析滤波器的幅频特性和相频特性,如果不符合要求重新设定滤波器参数或者换成其他滤波器类型。如果性能符合要求,则将系数传递给滤波模块。滤波模块不调用滤波函数,实现滤波功能根据滤波器类型的不同,有两种方式可以选择,一种是通过差分方程运算,一种是通过线性卷积运算。前者适合对IIR滤波器进行滤波,后者适合对FIR滤波器进行滤波。且线性卷积为实现对长序列的卷积运算,采用重叠相加法,采用动态变化展示运算过程。
2.2 在matlab中实现的分析
输入模块通过读取文件和直接输入数据运算可以很容易实现。在输入信号确定后,要对其进行频谱分析,从而确定滤波器的参数和类型(低通、高通、带通、带阻),此模块作用也就完成,将数据分别用全局变量传递给下面的模块。
设置模拟信号:
我采用的测试信号是两个正弦信号叠加而成的信号,信号为
y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts)其中频率f1=30;频率f2=50;频率f3=200;采样频率fs=3000;采样间隔 Ts=1/fs;采样点数
N=1024;n=1:N 采集模拟信号的程序代码: f1=30;% 频率1
f2=50;% 频率2 f3=200;% 频率3
fs=3000;% 采样频率
Ts=1/fs;% 采样间隔
N=1024;% 采样点数
n=1:N;
y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts)+sin(2*pi*f1*n*Ts);% 正弦波混合
频谱分析:
使用FFT对产生的测试信号进行频谱分析并展示其幅频特性与相频特性,指定需要滤除的频带,通过选择滤波器类型IIR,确定对应的滤波器(低通、高通)技术指标Fp、Fc、Rp、Rs。
滤波器的设计:
根据以上技术指标(通带截止频率、通带最大衰减、阻带截止频率、阻带最
小衰减),设计数字滤波器,生成相应的滤波器系数,并画出对应的滤波器
幅频特性与相频特性。分别设计巴特沃斯滤波器、切比雪夫I型滤波器、切
比雪夫II型滤波器、椭圆滤波器、yulewalk滤波器。
巴特沃斯和切比雪夫的滤波函数调用为:
[N,Wc]=buttord(wp,ws,rp,rs);[N,Wc]=cheb1ord(wp,ws,rp,rs);[B,A]=butter(N,Wc,’property’);[B,A]=cheby1(N,rp,Wc,’property’);
property对于低通和高通为’’,带通’high’,带阻’stop’;窗函数滤波器设计的调用函数:
求窗函数的阶数:
N=ceil((h*pi)/wdel);%wdel为窗函数的过渡带宽,h对应不同窗函数的值 wn=boxcar(N+1);wn=triang(N+1);wn=hanning(N+1);wn=hamming(N+1);wn=blackman(N+1);wn=kaiser(N+1,beta);%bata为kaiser的a参数 B=fir1(N,ws,'property',wn);property对于低通和高通为’’,带通’high’,带阻’stop’;
数字滤波:
根据设计的滤波器系数,对测试信号通过差分方程迭代实现滤波数字滤波,展示滤波后信号的幅频特性与相频特性,分析是否满足滤波要求(对同一滤波要求,对比分析各类滤波器的差异)。
需要注意的是,窗函数对滤波参数的使用,需要通过运算得到一窗函数阶数,对通带最大衰减无使用。需要注意FIR和IIR对参数的不同利用。
滤波模块:运用差分方程运算的滤波函数,可以用循环调用简单实现。动态展示线性卷积的重叠相加法可以用流程图来说明: 第三章 MATLAB程序实现
3.1 程序主体介绍
此程序界面也是采用GUI,不过是采用图形用户界面开发环境。和第一个对比,布局更加容易,很容易调整界面。但是在一些函数操作行会受一些限制,比如函数参数的传递,目前来说还是采用全局变量才能完成。
pushbutton1_Callback(hObject, eventdata, handles)%获得输入信号
uipanel11_SelectionChangeFcn(hObject, eventdata, handles)%获取滤波器的设计参数
uipanel15_SelectionChangeFcn(hObject, eventdata, handles)%设计滤波器
pushbutton4_Callback(hObject, eventdata, handles)%进行滤波
以上是一些功能控件,需要注意的是他们的view ballcak属性,对于groupbutton一组按钮,需要选用SelectionChangeFcn,其余选择callback属性即可。另外,handles函数作用为传递的句柄,是一结构体,调用时注意此处。其余和直接用函数创建GUI界面无太大区别。
3.2 子程序
3.2.1
IIR滤波器
FIR滤波器
巴特沃斯滤波器
3.2.2
矩形窗
三角窗
汉宁窗
哈明窗 3.3 程序调试及运行结果
原始信号幅频特性及相频特性
巴特沃斯的幅频特性及相频特性
信号滤波后的幅频特性及相频特性
矩形窗的幅频特性及相频特性
信号滤波后的幅频特性及相频特性
三角窗的幅频特性及相频特性
信号滤波后的幅频特性及相频特性
汉宁窗的幅频特性及相频特性
信号滤波后的幅频特性及相频特性
哈明窗的幅频特性及相频特性
信号滤波后的幅频特性及相频特性
3.4 结果分析及问题分析
用双线性变换法设计无限脉冲响应数字滤波器(IIF DF)时,先把数字滤波器指标转换成模拟滤波器的指标,然后根据模拟滤波器的指标设计模拟滤波器,再经过线性变换把模拟滤波器转换成数字滤波器。该系统要能够设计巴特沃兹型低通、带通、高通滤波器,并能够输入数字滤波器的性能指标,显示出滤波器的阶数和系数。该系统的关键部分是滤波器的设计部分,按照双线性变换法设计滤波器的步骤进行设计即可。
第四章 心得体会
本次课程设计可以称为matlab和数字信号处理的综合设计,因为这次有一半的时间在研究matlab,有一半的时间在思考数字信号问题的解决。几天下来收获是很多的,对数字信号处理有了一次全面的回顾,而且也看到了matlab的神秘面容。只要是自己真正的努力去做了,就绝对不会后悔在课程设计上花费的时间。现在发现自己确实会的太少,而这次又学了太多,对自己以后的学习还是有鞭策意义的。
这次课程设计也使我认识到了matlab的强大,或者进一步说工具软件有着你意想不到的功效,能节省你的时间,同时又能够让你从实践上更深层次的认识到所学知识的奇妙,而且可以同时明白了学习与实践的相辅相成。对课程设计也是一直保持很高兴趣的,虽然有时为它焦头烂额,但是也会因此有柳暗花明的喜悦,任何事情都折射着一个普通的道理——付出才有回报。浅显的道理,却是需要我们用毅力来坚持见证的。
具体来说,通过本次课程设计,我掌握了MATLAB的基本运用,尤其是其中GUI可视化图形用户界面的设计,包括函数调用与在图形用户界面开发环境下的调用。函数的调用与参数的传递是两个简单却很容易出错的地方,自由细心才可以保证程序的健壮性。
对数字信号本身内容的理解来说,全书的内容确实是可以融合在这两个课程设计题目中的,一个是DFT运用,另一个是滤波器的设计和利用。对全书的内容可以做出最好的概括。其中滤波器的设计中,调用了许多滤波函数,这是本次实验有点欠缺的地方,但是仍然从整体上把握了整个滤波器的设计过程。
对于课程设计中出现的问题,解决的方式有两种,一是自己解决。可以上网,查阅图书和matlab的本身的帮助文件,不断尝试,自己修改错误,可以更好的反省。二是与同学相商。一加一不是等于二那么简单的,相互交流才是进步的最好方式。其中解决问题最重要的应该是坚持不懈,在遇到问题时,不放弃才有可能称为最后的胜利者。
每次课程设计都收获颇多,而且每次都对自己的学习态度做一次调整,这个的作用确实是很大的,希望以后更加珍惜的课程设计的时间。
第五章 参考文献
[1] 丁玉美等.数字信号处理 [M].西安:西安电子科技大学出版社,2002
[2] 程佩青.数字信号处理教程,第二版[M].北京:清华大学出版社,2001
[3] 赵树杰等.数字信号处理[M].西安:西安电子科技大学出版社,1997
[4] 陈怀琛等.MATLAB 及在电子信息课程中的应用[M],北京:电子工业出版社出
版,2002
[5] 余成波.数字信号处理及MATLAB实现,第一版[M].北京:清华大学出版社,2008
[6] S.K.Mitra.Digital Signal Processing: A Computer Based Approach, 3rdEdition[M],New York, USA:McGraw-Hill,2000
[7] R.G.Lyons.Understanding Digital Signal Processing,2nd Edition[M].New Jersey, USA:Prentice Hall,2005
第六章 源代码
function varargout = df(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @df_OpeningFcn,...'gui_OutputFcn', @df_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else
gui_mainfcn(gui_State, varargin{:});end
function df_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = df_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit2_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit3_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit4_Callback(hObject, eventdata, handles)
function edit4_CreateFcn(hObject, eventdata, handles)if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit5_Callback(hObject, eventdata, handles)
function edit5_CreateFcn(hObject, eventdata, handles)if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function pushbutton1_Callback(hObject, eventdata, handles)f=zeros(1,4);
f(1)=str2num(get(handles.edit2,'String'));f(2)=str2num(get(handles.edit1,'String'));f(3)=str2num(get(handles.edit3,'String'));f(4)=str2num(get(handles.edit4,'String'));
T=str2num(get(handles.edit12,'String'));%采样周期% fre=str2num(get(handles.edit5,'String'));%采样频率% t=0:1/fre:T;
xn=10*sin(2*pi*t*f(1))+10*sin(2*pi*t*f(2))+10*sin(2*pi*t*f(3))+10*sin(2*pi*t*f(4));
set(handles.axes15,'userdata',xn);%将Xn放在用户数据userdata% yn3=abs(fft(xn));%快速傅立叶变换(符频特性)% n1=[0:length(yn3)-1]/length(yn3)*fre;%横坐标% axes(handles.axes12);%坐标系编号% stem(n1,yn3,'.');
axis([0,fre/2,0,max(yn3)]);%坐标轴单位控制% title('信号的幅频特性');xlabel('频率(Hz)');ylabel('|X(ejw)|');
yn4=angle(fft(xn));%相频特性%
n4=[0:length(yn4)-1]/length(yn4)*fre;axes(handles.axes16);stem(n4,yn4,'.');
axis([0,fre/2,min(yn4),max(yn4)]);title('信号的相频特性');xlabel('频率(Hz)');ylabel('相位');
function edit6_Callback(hObject, eventdata, handles)
function edit6_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit7_Callback(hObject, eventdata, handles)
function edit7_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit8_Callback(hObject, eventdata, handles)
function edit8_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit9_Callback(hObject, eventdata, handles)
function edit9_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function pushbutton2_Callback(hObject, eventdata, handles)xn=get(handles.axes15,'userdata');fre=str2num(get(handles.edit5,'String'));
fp=str2num(get(handles.edit6,'String'));%通带最大频率 % fs=str2num(get(handles.edit7,'String'));%阻带最小频率% rp=str2num(get(handles.edit8,'String'));rs=str2num(get(handles.edit9,'String'));wp=2*fp/fre;ws=2*fs/fre;
[N,wc]=buttord(wp,ws,rp,rs,'s');%求阶数,截止频率%
[B,A]=butter(N,wc,'s');%巴特沃兹模拟低通滤波器系数%
[Bz,Az]=bilinear(B,A,1);
[H,w]=freqz(Bz,Az);%分析数字滤波器% axes(handles.axes14);plot(w/pi,abs(H));
axis([0,1,0,max(abs(H))]);title('巴特沃兹的幅频特性');xlabel('w/π');
ylabel('|X(ejw)|');axes(handles.axes17);plot(w/pi,angle(H));title('巴特沃兹的相频特性');xlabel('频率(Hz)');ylabel('相位');
yn2=filter(Bz,Az,xn);%迭代法求解滤波信号% yn=abs(fft(yn2));
n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes15);stem(n1,yn,'.');
title('信号滤波后的幅频特性');xlabel('频率(Hz)');ylabel('|X(ejw)|');axis([0,fre/2,0,max(yn)]);yn=angle(fft(yn2));
n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes18);stem(n1,yn,'.');
title('信号滤波后的相频特性');xlabel('频率(Hz)');
ylabel('相位');
axis([0,fre/2,min(yn),max(yn)]);
pushbutton1_Callback(hObject, eventdata, handles);
function edit10_Callback(hObject, eventdata, handles)function edit10_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function edit11_Callback(hObject, eventdata, handles)
function edit11_CreateFcn(hObject, eventdata, handles)if ispc
set(hObject,'BackgroundColor','white');else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end
function pushbutton5_Callback(hObject, eventdata, handles)
xn=get(handles.axes15,'userdata');fp=str2num(get(handles.edit10,'String'));fs=str2num(get(handles.edit11,'String'));fre=str2num(get(handles.edit5,'String'));wp=2*fp/fre*pi;ws=2*fs/fre*pi;
Bt=ws-wp;
N0=ceil(1.8*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi;
hn=fir1(N-1,wc,boxcar(N));%单位序列相应%
yn=abs(fft(hn));yn=20*log10(yn);
n1=[0:length(yn)-1]/length(yn)*2;axes(handles.axes14);plot(n1,yn);
title('矩形窗的损耗函数');xlabel('w/π');
ylabel('20log|Hg(w)|');axis([0,1,min(yn),max(yn)]);axes(handles.axes17);yn=angle(hn);
n1=[0:length(yn)-1]/length(yn)*2;plot(n1,yn);
title('矩形窗的相频特性');xlabel('w/π');
ylabel('相位');
axis([0,1,min(yn),max(yn)]);
yn2=fftfilt(hn,xn,512);%重叠相加法求滤波后序列% yn=abs(fft(yn2));n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes15);stem(n1,yn,'.');
title('信号滤波后的幅频特性');xlabel('频率(Hz)');ylabel('|X(ejw)|');axis([0,fre/2,0,max(yn)]);yn=angle(fft(yn2));
n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes18);stem(n1,yn,'.');
title('信号滤波后的相频特性');xlabel('频率(Hz)');
ylabel('相位');
axis([0,fre/2,min(yn),max(yn)]);
pushbutton1_Callback(hObject, eventdata, handles);
function pushbutton6_Callback(hObject, eventdata, handles)
xn=get(handles.axes15,'userdata');fp=str2num(get(handles.edit10,'String'));fs=str2num(get(handles.edit11,'String'));fre=str2num(get(handles.edit5,'String'));wp=2*fp/fre*pi;ws=2*fs/fre*pi;
Bt=ws-wp;
N0=ceil(6.1*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi;
hn=fir1(N-1,wc,bartlett(N));
yn=abs(fft(hn));yn=20*log10(yn);
n1=[0:length(yn)-1]/length(yn)*2;axes(handles.axes14);plot(n1,yn);
title('三角窗的损耗函数');xlabel('w/π');
ylabel('20log|Hg(w)|');axis([0,1,min(yn),max(yn)]);axes(handles.axes17);yn=angle(hn);n1=[0:length(yn)-1]/length(yn)*2;plot(n1,yn);
title('三角窗的相频特性');xlabel('w/π');
ylabel('相位');
axis([0,1,min(yn),max(yn)]);
yn2=fftfilt(hn,xn,512);yn=abs(fft(yn2));
n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes15);stem(n1,yn,'.');
title('信号滤波后的幅频特性');xlabel('频率(Hz)');ylabel('|X(ejw)|');axis([0,fre/2,0,max(yn)]);yn=angle(fft(yn2));
n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes18);stem(n1,yn,'.');
title('信号滤波后的相频特性');xlabel('频率(Hz)');
ylabel('相位');
axis([0,fre/2,min(yn),max(yn)]);
pushbutton1_Callback(hObject, eventdata, handles);
function pushbutton7_Callback(hObject, eventdata, handles)
xn=get(handles.axes15,'userdata');fp=str2num(get(handles.edit10,'String'));fs=str2num(get(handles.edit11,'String'));fre=str2num(get(handles.edit5,'String'));wp=2*fp/fre*pi;ws=2*fs/fre*pi;if(fp N0=ceil(6.2*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi; hn=fir1(N-1,wc,hanning(N));else Bt=wp-ws; N0=ceil(6.2*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi; hn=fir1(N-1,wc,'high',hanning(N));end yn=abs(fft(hn));yn=20*log10(yn); n1=[0:length(yn)-1]/length(yn)*2;axes(handles.axes14);plot(n1,yn); title('汉宁窗的损耗函数');xlabel('w/π'); ylabel('20log|Hg(w)|');axis([0,1,min(yn),max(yn)]);axes(handles.axes17);yn=angle(hn); n1=[0:length(yn)-1]/length(yn)*2;plot(n1,yn); title('汉宁窗的相频特性');xlabel('w/π'); ylabel('相位'); axis([0,1,min(yn),max(yn)]); yn2=fftfilt(hn,xn,512);yn=abs(fft(yn2)); n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes15);stem(n1,yn,'.'); title('信号滤波后的幅频特性');xlabel('频率(Hz)');ylabel('|X(ejw)|');axis([0,fre/2,0,max(yn)]);yn=angle(fft(yn2)); n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes18);stem(n1,yn,'.'); title('信号滤波后的相频特性');xlabel('频率(Hz)'); ylabel('相位'); axis([0,fre/2,min(yn),max(yn)]); pushbutton1_Callback(hObject, eventdata, handles); function pushbutton8_Callback(hObject, eventdata, handles) xn=get(handles.axes15,'userdata');fp=str2num(get(handles.edit10,'String'));fs=str2num(get(handles.edit11,'String'));fre=str2num(get(handles.edit5,'String'));wp=2*fp/fre*pi;ws=2*fs/fre*pi;if(fp N0=ceil(6.2*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi; hn=fir1(N-1,wc,hamming(N));else Bt=wp-ws; N0=ceil(6.2*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi; hn=fir1(N-1,wc,'high',hamming(N));end yn=abs(fft(hn));yn=20*log10(yn); n1=[0:length(yn)-1]/length(yn)*2;axes(handles.axes14);plot(n1,yn); title('哈明窗的损耗函数');xlabel('w/π'); ylabel('20log|Hg(w)|');axis([0,1,min(yn),max(yn)]);axes(handles.axes17);yn=angle(hn); n1=[0:length(yn)-1]/length(yn)*2;plot(n1,yn); title('哈明窗的相频特性');xlabel('w/π'); ylabel('相位'); axis([0,1,min(yn),max(yn)]); yn2=fftfilt(hn,xn,512);yn=abs(fft(yn2)); n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes15);stem(n1,yn,'.'); title('信号滤波后的幅频特性');xlabel('频率(Hz)');ylabel('|X(ejw)|');axis([0,fre/2,0,max(yn)]);yn=angle(fft(yn2)); n1=[0:length(yn)-1]/length(yn)*fre;axes(handles.axes18);stem(n1,yn,'.'); title('信号滤波后的相频特性');xlabel('频率(Hz)'); ylabel('相位'); axis([0,fre/2,min(yn),max(yn)]); pushbutton1_Callback(hObject, eventdata, handles); %---Executes during object creation, after setting all properties.function axes12_CreateFcn(hObject, eventdata, handles)% hObject handle to axes12(see GCBO) % eventdata reservedhandles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate axes12 %---Executes on mouse press over axes background.function axes12_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to axes12(see GCBO) % eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA) % Hints: get(hObject,'String')returns contents of edit12 as text % str2double(get(hObject,'String'))returns contents of edit12 as a double %---Executes during object creation, after setting all properties.function edit12_CreateFcn(hObject, eventdata, handles)% hObject handle to edit12(see GCBO) % eventdata reservedhandles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end %---If Enable == 'on', executes on mouse press in 5 pixel border.%---Otherwise, executes on mouse press in 5 pixel border or over edit5.function edit5_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to edit5(see GCBO) % eventdata reservedto be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA) %---Executes during object deletion, before destroying properties.function edit12_DeleteFcn(hObject, eventdata, handles)% hObject handle to edit12(see GCBO) % eventdata reserved-to be defined in a future version of MATLAB % handles structure with handles and user data(see GUIDATA) 数字信号处理复习要点 数字信号处理主要包括如下几个部分 1、离散时间信号与系统的基本理论、信号的频谱分析 2、离散傅立叶变换、快速傅立叶变换 3、数字滤波器的设计 一、离散时间信号与系统的基本理论、信号的频谱分析 1、离散时间信号: 1)离散时间信号。时间是离散变量的信号,即独立变量时间被量化了。信号的幅值可以是连续数值,也可以是离散数值。2)数字信号。时间和幅值都离散化的信号。 (本课程主要讲解的实际上是离散时间信号的处理)3)离散时间信号可用序列来描述 4)序列的卷积和(线性卷积) y(n)mx(m)h(nm)x(n)*h(n) 5)几种常用序列 1,n0a)单位抽样序列(也称单位冲激序列)(n),(n) 0,n01,n0b)单位阶跃序列u(n),u(n) 0,n01,0nN1c)矩形序列,RN(n) 0,n其它d)实指数序列,x(n)anu(n) 6)序列的周期性 所有n存在一个最小的正整数N,满足:x(n)x(nN),则称序列x(n)是周期序列,周期为N。(注意:按此定义,模拟信号是周期信号,采用后的离散信号未必是周期的) 7)时域抽样定理: 一个限带模拟信号xa(t),若其频谱的最高频率为F0,对它进行等间隔抽样而得x(n),抽样周期为T,或抽样频率为Fs1/T; 只有在抽样频率Fs2F0时,才可由xa(t)准确恢复x(n)。 2、离散时间信号的频域表示(信号的傅立叶变换) X(j)nx(n)ejn,X(j(2))X(j) 1x(n)X(j)ejnd 2 3、序列的Z变换 X(z)Z[x(n)]nx(n)zn 1)Z变换与傅立叶变换的关系,X(j)X(z)zej 2)Z变换的收敛域 收敛区域要依据序列的性质而定。同时,也只有Z变换的收敛区域确定之后,才能由Z变换唯一地确定序列。 一般来来说,序列的Z变换的收敛域在Z平面上的一环状区域:Rx|z|Rx x(n)N1nN23)有限长序列:x(n),0|z| 0其它x(n)N1n右序列:x(n),|Z|>Rx- 其它0x(n)nN2左序列:x(n),0其它(|z| 常用序列的Z变换: Z[(n)]1,|z|01,|z|111z 1Z[anu(n)],|z||a|1az11Z[bnu(n1)],|z||b|1bz1Z[u(n)] 逆变换 x(n)12jn1X(z)zdzx,C:收敛域内绕原点逆时针的一条闭合曲线 c1)留数定理:x(n)[X(z)zn1在C内极点留数之和] 2)留数辅助定理:x(n)[X(z)zn1在C外极点留数之和] 3)利用部分分式展开:X(z)Z变换求解。 4、离散时间系统: T[x(n)]y(n)系统函数:H(j)Y(j)Y(z),H(z) X(j)X(z)Ak,然后利用定义域及常用序列的1akz1冲激响应:h(n)T[(n)] 5、线性系统:满足叠加原理的系统。T[ax(n)by(n)]aT[x(n)]bT[y(n)] 6、移不变系统:若T[x(n)]Y(n),则T[x(nk)]Y(nk) 7、线性移不变系统 可由冲激响应来描述(系统的输出相应是输入与单位冲激响应的线性卷积) y(n)x(n)*h(n),Y(j)X(j)H(j),Y(z)X(z)H(z) 8、系统的频率特性可由其零点及极点确定 X(z)bziMiak0i0NA(1zziM1)Akzk(1zk1i1N(zz)ziMMkz1)(zzk1i1N k)zN(式中,zk是极点,zi是零点;在极点处,序列x(n)的Z变换是不收敛的,因此收敛区域内不应包括极点。) 9、稳定系统:有界的输入产生的输出也有界的系统,即:若|x(n)|,则|y(n)| 线性移不变系统是稳定系统的充要条件: n|h(n)| 或:其系统函数H(z)的收敛域包含单位园 |z|=1 10、因果系统:n0时刻的输出y(n0)只由n0时刻之前的输入x(n),nn0决定 线性移不变系统是因果系统的充要条件:h(n)0,n0 或:其系统函数H(z)的收敛域在某园外部:即:|z|>Rx 11、稳定因果系统:同时满足上述两个条件的系统。 h(n)0,n0 线性移不变系统是因果稳定系统的充要条件:|h(n)|,n或:H(z)的极点在单位园内 H(z)的收敛域满足:|z|Rx,Rx1 12、差分方程 线性移不变系统可用线性常系数差分方程表示(差分方程的初始条件应满足松弛条件) aynkbxni kik0i0NM13、差分方程的解法 1)直接法:递推法 2)经典法 3)由Z变换求解 二、离散傅立叶变换、快速傅立叶变换 1、周期序列的离散傅立叶级数(DFS) Xp(k)DFS[xp(n)]xp(n)en0N1j2knNkn xp(n)WNn0N11xp(n)IDFS[Xp(k)]N其中:WN=ej2/N KON1XPke2jknN1NKON1XPkWNkn 2、有限长序列的离散傅立叶变换(DFT) knX(k)DFT[x(n)]{DFS[x(nN)]}RN(k)x(n)WN,0≤k≤N1 n0N11N1kn x(n)IDFT[X(k)]{IDFS[X(kN)]}RN(n)X(k)WN,0≤n≤N1 Nk0应当注意,虽然x(n)和X(k)都是长度为N得有限长序列,但他们分别是由周期序列xp(n)和Xp(k)截取其主周期得到的,本质上是做DFS或IDFS,所以不能忘记它们的隐含周期性。尤其是涉及其位移特性时更要注意。 3、离散傅立叶变换与Z变换的关系 X(k)X(j)|2X(z)|j2k NkzeN 4、频域抽样定理 对有限长序列x(n)的Z变换X(z)在单位圆上等间隔抽样,抽样点数为N,或抽样间隔为2/N,当N≥M时,才可由X(k)不失真恢复X(j)。 1zN内插公式:X(z)N 5、周期卷积、循环卷积 周期卷积:xp3(n)xp1(m)xp2(nm) m0N1X(k)k1k01WNzN1循环卷积:x3(n)x1(n)N1x2(n)xp3(n)RN(n)xp1(m)xp2(nm)RN(n) m0 6、用周期(周期)卷积计算有限长序列的线性卷积 对周期要求:NN1N21(N1、N2分别为两个序列的长度) 7、基2 FFT算法 1)数据要求:N2M 2)计算效率(乘法运算次数:NM,加法计算次数:NM)(复数运算)(DFT运算:乘法运算次数:N2,加法计算次数:N2)(复数运算) 8、快速卷积(采用FFT计算) 9、分辨率 三、数字滤波器的设计 (一)FIR滤波器的设计 1、特点:可实现严格的线性相位特性、系统是稳定的、因果的、阶数较高 2、实现线性相位的条件(1)h(n)为实数(2)h(n)=h(N-1-n)做一般意义下的FIR滤波器,N是偶数,不适合做高通滤波器 或 h(n)=-h(N-1-n)对称中心:(N-1)/2 适于做希尔伯特变换器,微分器和正交网络。 3、主要设计方法 1)窗函数法 2)频率抽样设计 频率抽样内插公式设计。特点: 频率特性可直接控制。 若滤波器是窄带的,则能够简化系统 若无过渡带样本,则起伏较大。改进办法是增加过渡带样本,采用过渡带的自由变量法,通常使用优化方法求解。可得到较好的起伏特性,但是会导致过渡带宽度加大,改进办法是增加抽样点数。 抽样点的获得采取两种办法:I型抽样及II型抽样。 若要满足线性相位特性,则相位要满足一定要求。 (二)IIR滤波器的设计 1、特点 • 阶数少、运算次数及存储单元都较少 • 适合应用于要求相位特性不严格的场合。 • 有现成的模拟滤波器可以利用,设计方法比较成熟。• 是递归系统,存在稳定性问题。 2、主要设计方法 先设计模拟滤波器,然后转换成数字滤波器。设计过程: 1)先设计模拟低通滤波器Ha(s):butterworth滤波器设计法等,有封闭公式利用 2)将模拟原型滤波器变换成数字滤波器(1)模拟低通原型先转换成数字低通原型,然后再用变量代换变换成所需的数字滤波器; 模拟低通原型先转换成数字低通原型:HaL(s)HL(z),主要有冲激不变法、阶跃不变法、双线性变换法等。 将数字低通原型滤波器通过变量代换变换成所需的数字滤波器。,z1G(Z1)HL(z)HD(Z) (2)由模拟原型变成所需型式的模拟滤波器,然后再把它转换成数字滤波器; 将模拟低通原型滤波器通过变量代换变换成所需的模拟滤波器。HaL(s)HaD(S1),sF(S1) 模拟滤波器转换成数字数字滤波器:HaD(s)HD(z),主要有冲激不变法、阶跃不变法、双线性变换法等 (3)由模拟原型直接转换成所需的数字滤波器 直接建立变换公式:HaL(s)HD(z),sG(z1) 3、模拟数字转换法(1)冲激不变法 H(z)ZL1[Ha(s)]|tnT 单阶极点情况 NAkAk'skT' H(z),Ha(s)AApekkk11pzssk1k1kkN (2)阶跃不变法 H(z)z1ZL1[Ha(s)/s]|tnT z 冲激不变法和阶跃不变法的特点: • 有混叠失真 • 只适于限带滤波器 • 不适合高通或带阻数字滤波器的设计 1z1(3)双线性变换法 sC 11z常数C的计算:1)Cccot(c2)2)C=2/T 特点: (i)稳定性不变(ii)无混叠 (iii)频率非线性变换,会产生畸变,设计时,频率要做预畸变处理 4、直接法设计IIR数字滤波器 • z平面的简单零极点法 (三)滤波器的网络结构 数字信号处理课程总结 信息09-1班 陈启祥 金三山 赵大鹏 刘恒 进入大三,各种专业课程的学习陆续展开,我们也在本学期进行了数字信号处理这门课程的学习。 作为信心工程专业的核心课程之一,数字信号处理的重要性是显而易见的。在近九周的学习过程中,我们学习了离散时间信号与系统的时域及频域分析、离散傅里叶变换、快速傅里叶变换、IIR及FIR数字滤波器的设计及结构等相关知识,并且在实验课上通过MATLAB进行了相关的探究与实践。总体来说,通过这一系列的学习与实践,我们对数字信号处理的有关知识和基础理论已经有了初步的认知与了解,这对于我们今后进一步的学习深造或参加实际工作都是重要的基础。 具体到这门课程的学习,应当说是有一定的难度的。课本所介绍的相关知识理论性很强,并且与差分方程、离散傅里叶级数、傅里叶变换、Z变换等数学工具联系十分紧密,所以要真正理解课本上的相关理论,除了认真聆听老师的讲解,还必须要花费大量时间仔细研读课本,并认真、独立地完成课后习题。总之,理论性强、不好理解是许多同学对数字信号处理这门课程的学习感受。 另外,必须要说MATLAB实验课程的开设是十分必要的。首先,MATLAB直观、简洁的操作界面对于我们真正理解课堂上学来的理论知识帮助很大;其次,运用MATLAB进行实践探究,也使我们真正意识到,在信息化的今天,研究数字信号离不开计算机及相关专业软件的帮助,计算机及软件技术的发展,是今日推动信息技术发展的核心动力;最后,作为信息工程专业的学生,在许多学习与实践领域需要运用MATLAB这样一个强大工具,MATLAB实验课程的开设,锻炼了我们的实践能力,也为我们今后在其他领域运用MATLAB打下了基础。 课程的结束、考试的结束不代表学习的结束,数字信号处理作为我们专业的基础之一,是不应当被我们抛之脑后的。 最后感谢老师这几周来的教诲与指导,谢谢老师! 2012年5月7日 基于微课的数字信号处理教学方法的探讨 【摘 要】基于目前数字信号处理课程在教学方法及教学手段上的不足,本文提出了基于“微课”的教学方法,通过对该课程重点难点内容做成微课视频的形式,供学生课前或课后学习,以提高学生的学习兴趣及自主学习能力,再结合双向互动式研究型教学方法及教学实践力度的加大,从而改善教学效果,使独立院校学生能更好的掌握这门课程。 【关键词】数字信号处理;微课;教学改革;实践教学 0 引言 数字信号处理作为通信、电子信息类专业的一门专业基础课程,要求学生有微积分、信号与系统分析等课程的基础,另外数字信号处理是一门理论性非常强的课程,抽象概念较多,涉及的数学知识也较多,而独立学院学生数学基础、信号与系统分析基础都相对比较薄弱,所以学习本课程有一定的难度,易出现学生学习兴趣低、怕学以及厌学等现象。针对该问题,本文提出了一种基于微课的教学方式,将课程内容制作成微课,分享给学生,以提高学生的学习兴趣。 “微课”采用了精细化管理的教学模式,把“慕课”平台上的“高级软件工程”课程加以优化及改编之后得到“微课”平台,加州大学伯克利分校的 Armando Fox 教授将“微课”平台引入了校园,并取得了意想不到的好效果。2013 年,哈佛大学也开始尝试“微课”平台的教学,效果很好,且学术委员会主席Robert Lue 教授对“微课”给出了极高的评价,认为相对于“慕课”教学方式而言,“微课”体现了“几乎不可避免的进化”。科罗拉多大学全球分校最初采用“慕课”大班教学,经过调研,对学生的需求进行分析,最终也将所有课程都改成采用“微课”的在线授课模式。 从人的认知规律出发,人在学习的时候前十分钟注意力最集中,所以“微课”长度一般设置在5-15分钟的。“微课”在阐述问题的方式上除了教师讲解外,还结合动画、视频等各种信息技术,使得对知识的讲解过程更为直观。且由于一个微课视频时间较短,可以突破传统课堂对时间和地点的限制,学生可以随时随地学习,也可以根据个人学习情况调整学习进度,使得学生真正成为学习的主角。数字信号处理教学中出现的问题 近几年来,数字信号处理课程多媒体与黑板板书相结合的教学方式,再结合Matlab软件实验,教学效果有一定的改善,但仍存在不足之处,主要体现为一下几个方面: 1.1 教学内容方面 公式推导比较多,概念比较抽象,内容枯燥,学生无法将所学的内容与工程实践相结合,再者独立学院学生基础较差,所以易出现“太难,听不懂”等不学、厌学现象。 1.2 教学方法方面 传统教学多采用“灌输式”的方法进行授课,教师作为课堂主体,单向地向学生灌输知识,教学的方式过于单调,不足以吸引学生的注意力,和学习兴趣的提高。 1.3 实践教学方面 实验目前仅局限于理论仿真,而没有硬件的实践操作,学生很难把所学的理论知识和理论仿真同实际应用联系起来,而独立学院学生更应该把学习的重心往实践方向倾斜。数字信号处理教学改革措施 针对数字信号处理教学过程中出现的3个问题,我们可以从以下3个方面进行改进。 2.1 教学内容的改革 数字信号处理课程的知识结构可分为变换域和数字滤波器两部分。对于变换域部分的知识,如离散时间信号的时域频域分析部分与信号与系统分析Z变换部分是重复的,所以在实际教学中,可以对这部分内容进行精简和提炼,并且删除一些复杂的公式推导。关于时域与变换域之间的关系、波形变化以及滤波器的原理等抽象的内容,设计原理的讲解可以精简,而应侧重如何通过Matlab实现具体滤波器的设计,另外,在课堂中增加数字信号应用实例的MALTAB程序讲解,演示仿真波形,通过多波形的分析,使学生理解时域信号好频域信号的特性,从而进一步加深学生对理论知识的理解。 2.2 教学方法和教学手段的改革 2.2.1 引入微课形式的教学方法 在传统“灌输式”、PPT讲解的基础上,借助视频学习、慕课、微课丰富教学手段,将课程重要内容制作成微课,在课堂上播放,吸引学生注意力,提高学生学习兴趣;也可放到网络平台上,供学生学习,充分利用学生的碎片化时间提供在线学习的机会。甚至能够翻转课堂,学生可在课前通过微课自主完成课堂学习,而在课堂上对重点难点进行讨论,使学生在讨论的过程中深化对知识点的理解,同时可以活跃课堂气氛,让学生成为课堂的主体。 2.2.2 双向互动式研究型学习 针对课程部分重点难点教学内容,提取出合适的讨论课题,进行定期或不定期的专题讨论。首先,通过课堂或是其他网络平台向学生发布题目,让学生提前做好讨论或者报告准备,采用多媒体上讲台进行专题讨论或报告。学生通过对课题的准备及讨论过程可对该课程内容有更深入的理解,且能培养学生的辩证思考的能力,另外教师对课题讨论的主要参与人做相应的奖励,比如加平时分,来诱导学生自主学习。 2.3 实践教学的改革 部分独立学院目前已经开展了数字信号处理的软件实验课程,即基于Matlab软件,通过编程实现对信号的仿真,可一定程度上加深学生对信号时域频域的形象理解,可提高学生的编程能力,但毕竟Matlab软件实验只是做信号建模及仿真,所以很多学生仍然存在“学了这门课,却不知道怎么在实际中应用”的疑问,因此,增加DSP硬件实验是必要的。然而增加DSP硬件实验需要校方新建DSP实验室,该问题不是朝夕之间能解决的问题。所以针对此问题,可先进行探索性实验,即通过收集整理其他院校的DSP硬件实现演示视频,使学生对理论的仿真到实际的硬件实现有一个形象全面的了解,比如较抽象的知识点像卷积运算、FIR/IIR数字滤波器以及快速傅里叶变换FFT的DSP实现,通过实验课使学生把抽象的知识与实际应用相结合。总结 实践证明,基于微课及双向互动式的教学方法能充分调动学生的学习积极性,提高学生的自学能力。另外,引入DSP实践教学,使学生更能将理论知识与工程实践相结合。 【参考文献】 [1]曾伟梁,刘颖,鲍曼,徐宏艳,赵沛丰.用 MATLAB 实践数字信号处理课程的辅助教学[J].黑龙江生态工程职业学院学报,2014(1).[2]高静,王凤文,舒冬梅.《数字信号处理》课程教学实践与探索[J].科技创新导报,2011(4):153-154.[3]曾伟梁,刘颖,鲍曼,徐宏艳,赵沛丰.用MATLAB 实践数字信号处理课程的辅助教学[J].黑龙江生态工程职业学院学报,2014(1).[4]刘伯红,阎英,方义秋.高校计算机实践教学质量保障体系改革探索与实践[J].实验室研究与探索,2012,31(12):121-123,150.[责任编辑:杨玉洁]第三篇:数字信号处理复习总结
第四篇:数字信号处理课程总结(推荐)
第五篇:基于微课的数字信号处理教学方法的探讨