数字信号处理实验
实验三 IIR数字滤波器的设计
一、实验目的
1.掌握双线性变换法及脉冲相应不变法设计IIR数 字滤波器的具体设计方法及其原理,熟悉用双线性变 换法及脉冲响应不变法设计低通、高通和带通IIR数字 滤波器的计算机编程。 2.观察双线性变换及脉冲响应不变法设计的滤波器 的频域特性,了解双线性变换法及脉冲响应不变法的 特点。 3.熟悉Butterworth滤波器、Chebyshev滤波器和
1
2
3
其DTFT为
0.8 0.44e j 0.36e j 2 0.02e j 3 H (e j ) 1 0.7e j 0.45e j 2 0.6e j 3
用MATLAB计算的程序如下: k=256; num=[0.8 -0.44 0.36 0.02]; den=[1 0.7 -0.45 -0.6]; w=0:pi/k:pi; h=freqz(num,den,w); subplot(2,2,1); plot(w/pi,real(h));grid title('实部')
DFT是对单位圆上Z变换的均匀采样,所以 它不可能将频谱视为一个连续函数,就一定意 义上看,用DFT来观察频谱就好像通过一个栅 栏来观看一个图景一样,只能在离散点上看到 真实的频谱,这样就有可能发生一些频谱的峰 点或谷点被“尖桩的栅栏”所拦住,不能别我 们观察到。 减小栅栏效应的一个方法就是借助于在原 序列的末端填补一些零值,从而变动DFT的点 数,这一方法实际上是人为地改变了对真实频 谱采样的点数和位置,相当于搬动了每一根 “尖桩栅栏”的位置,从而使得频谱的峰点或 谷点暴露出来。
其中U表示窗口序列的能量,它等于:
在此情况下,功率谱估计量可表示为:
三、实验内容及步骤 实验中用到的信号序列: a) Gaussian序列
b) 衰减正弦序列
c) 三角波序列
反三角波序列
上机实验内容
• (1)观察高斯序列的时域和幅频特性 ,固定信号
•
xa(n)中参数p=8,改变q的值,使q分别等于2,4, 8,观察它们的时域和幅频特性,了解当q取不同值 时,对信号序列的时域幅频特性的影响;固定q=8, 改变p,使p分别等于8,13,14,观察参数p变化对 信号序列的时域及幅频特性的影响,观察p等于多 少时,会发生明显的泄漏现象,混叠是否也随之出 现?记录实验中观察到的现象,绘出相应的时域序 列和幅频特性曲线。 (2)观察衰减正弦序列xb(n)的时域和幅频特性, a=0.1,f=0.0625,检查谱峰出现位置是否正确, 注意频谱的形状,绘出幅频特性曲线,改变f,使f 分别等于0.4375和0.5625,观察这两种情况下,频 谱的形状和谱峰出现位置,有无混叠和泄漏现象? 说明产生现象的原因。
(一)、在运用DFT进行频谱分析的过程中可能产生 三 种误差: (1) 混叠 序列的频谱时被采样信号的周期延拓,当采 样速率不满足Nyquist定理时,就会发生频谱混叠, 使得采样后的信号序列频谱不能真实的反映原信 号的频谱。 避免混叠现象的唯一方法是保证采样速率足 够高,使频谱混叠现象不致出现,即在确定采样 频率之前,必须对频谱的性质有所了解,在一般 情况下,为了保证高于折叠频率的分量不会出现, 在采样前,先用低通模拟滤波器对信号进行滤波。
• •
图1.1给出了卷积结果的图形,求得的结果存放 在数组c中为:{-2 -4 1 3 1 5 1 -3}。
例2用MATLAB计算差分方程,
当输入序列为
时的输出结果
。
解 MATLAB程序如下: N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)]; k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n');ylabel('幅度')
xlabel('\omega/\pi');ylabel('幅度') subplot(2,2,2); plot(w/pi,imag(h));grid title('虚部') xlabel('\omega/\pi');ylabel('Amplitude') subplot(2,2,3); plot(w/pi,abs(h));grid title('幅度谱') xlabel('\omega/\pi');ylabel('幅值') subplot(2,2,4); plot(w/pi,angle(h));grid title('相位谱') xlabel('\omega/\pi');ylabel('弧度')
•
• (5)、用FFT分别实现xa(n)(p=8,q=2)和 xb(n)
•
(a=0.1,f=0.0625)的16点圆周卷积和线性卷积。 (6)、产生一512点的随机序列xe(n),并用xc(n)和 xe(n)作线性卷积,观察卷积前后xe(n)频谱的变化。 要求将xe(n)分成8段,分别采用重叠相加法和重叠 保留法。
设定坐标向量n和信号向量x;x和n为长度相同的向 量,向量的编号从1开始; 坐标向量可以直接逐点写出:n=[2 3 4 5 6 7]; 也可以采用起点,终点和步长的形式写出:n=[2 :0.1:2] ; 信号向量可以直接逐点写出:x=[1 2 3 4 3 2]; 也可以采用与n有关的函数运算形式写出: 例如: x=3*n x=exp(j*(pi/8)*n)
实验二快速傅立叶变换(FFT)及其 应用
一、实验目的 1.在理论学习的基础上,通过本实验,加深 对FFT的理解,熟悉FFT子程序。 2.熟悉应用FFT对典型信号进行频谱分析的方 法 3.了解应用FFT进行信号频谱分析过程中可能 出现的问题以便在实际中正确应用FFT。 4.熟悉应用FFT实现两个序列的线性卷积的方 法。 5.初步了解用周期图法作随机信号谱分析的 方法。
(三)、用周期图法(平滑周期图的平均法)对随机信号作谱分 析 实际中许多信号往往既不具有有限能量,由非周期性的。 无限能量信号的基本概念是随机过程,也就是说无限能量信 号是一随机信号。周期图法是随机信号作谱分析的一种方法, 它特别适用于用FFT直接计算功率谱的估值。 将长度为N的实平稳随机序列的样本x(n)再次分割成K段,每 段长度为L,即L=N/K。每段序列仍可表示为: xi(n)=x(n+(i-1)L),0≤n≤L-1,1≤i≤K 但是这里在计算周期图之前,先用窗函数w(n)给每段序列 xi(n)加权,K个修正的周期图定义为
数字信号处理实验
MATLAB的基本应用方法
命令窗口(Command window)的使用:
输入各类变量或函数名称,按回车即得到当前变量或函数值; 输入各类命令,按回车即得到该命令执行结果; 若需要输入多行命令或程序,各行间用“;”间隔;
M文件的编制与调试执行
打开空白文件或已经有的文件,进行程序文件的输入编辑; 各行间用“;”间隔;
(2) 双线性变换法 S平面与z平面之间满足以下映射关系:
s平面的虚轴单值地映射于z平面的单位圆上,s平面的左 半平面完全映射到z平面的单位圆内。双线性变换不存在混叠 问题。 双线性变换时一种非线性变换 ,这种非线性引起的幅频 特 性畸变可通过预畸而得到校正。
根据以以低通数字滤波器为例,将设计步骤归纳如
用FFT可以实现两个序列的圆周卷积。在一定的条件下, 可以使圆周卷积等于线性卷积。一般情况,设两个序列的长 度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是 FFT的长度 N≥N1+N2 对于长度不足N的两个序列,分别将他们补零延长到N。 当两个序列中有一个序列比较长的时候,我们可以采用 分段卷积的方法。有两种方法: 重叠相加法。将长序列分成与短序列相仿的片段,分别 用FFT对它们作线性卷积,再将分段卷积各段重叠的部分相 加构成总的卷积输出。 重叠保留法。这种方法在长序列分段时,段与段之间保 留有互相重叠的部分,在构成总的卷积输出时只需将各段线 性卷积部分直接连接起来,省掉了输出段的直接相加。
(2) 泄漏 实际中我们往往用截短的序列来近似很长 的甚至是无限长的序列,这样可以使用较短的 DFT来对信号进行频谱分析,这种截短等价于 给原信号序列乘以一个矩形窗函数,也相当于 在频域将信号的频谱和矩形窗函数的频谱卷积, 所得的频谱是原序列频谱的扩展。 泄漏不能与混叠完全分开,因为泄漏导致 频谱的扩展,从而造成混叠。为了减少泄漏的 影响,可以选择适当的窗函数使频谱的扩散减 至最小。
实验一系统响应及系统稳定
一、实验目的 1.在理论学习的基础上,通过本实验, 加深求系统响应的方法,及分析、观察及 检验系统的稳定性; 2.熟悉利用matlab软件做简单的仿真 实验;
二、实验原理及内容
例1 用MATLAB计算序列{-2 0 1 –1 列{1 2 0 -1}的离散卷积。 解 MATLAB程序如下: a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 3}和序
• (3)观察三角波和反三角波序列的时域和幅频特
性,用N=8点FFT分析信号序列xc(n)和xd(n)的幅 频特性,观察两者的序列形状和频谱曲线有什么 异同?绘出两序列及其幅频特性曲线。在xc(n) 和xd(n)末尾补零,用N=16点FFT分析这两个信号 的幅频特性,观察幅频特性发生了什么变化?两 情况的FFT频谱还有相同之处吗?这些变化说明 了什么? (4)一个连续信号含两个频率分量,经采样得 x(n)=sin2π *0.125n+cos2π *(0.125+Δ f)n n=0,1……,N-1 已 知 N=16,Δ f 分 别 为 1 / 1 6 和 1/64,观察其频谱;当N=128时,Δ f不变,其结 果有何不同,为什么?