数字信号处理实验二FIR数字滤波器设计与软件实现

数字信号处理实验二FIR数字滤波器设计与软件实现
数字信号处理实验二FIR数字滤波器设计与软件实现

实验二 FIR 数字滤波器设计与软件实现

一、实验目的

(1)掌握用窗函数法设计FIR 数字滤波器的原理和方法。

(2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法。

(3)掌握FIR 滤波器的快速卷积实现原理。

(4)学会调用MATLAB 函数设计与实现FIR 滤波器。

二、 对两种设计进行比较

窗函数法

(1) 根据对过渡带及阻带衰减的指标要求,选择窗函数的类型,并估计窗口长度N 。

a. 在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。

b. 根据过渡带宽度估计窗口长度N ,过渡带宽与N 成反比。N ≈A /B t ,A 取决于窗口类型。

例如,矩形窗的A =4π,哈明窗的A =8π等。

(2) 构造希望逼近的频率响应函数H d(ej ω)

a. 选择H d(ej ω)为线性相位理想滤波器。

b. 理想滤波器的截止频率ωc 近似位于幅度函数衰减一半(约-6 dB )的位置。所以如果设计指标给定通带边界频率和阻带边界频率ωp 和ωs , 一般取

(3) 计算h d(n )

如果H d(ej ω)较复杂,不能用公式求解,则可以对H d(ej ω)从ω=0到ω=2π采样M 点,采样值为 , k =0 ,1, 2, …, M -1,进行M 点

IDFT(IFFT),得到:

2s p c ωωω+=?-=ππj j d d d e )e (π

21)(ωωωn H n h 2πj d d ()(e )k M

M H k H =

根据频域采样理论,h d M (n )与h d(n )应满足如下关系:

如果M 选得较大,可以保证在窗口内h d M (n )有效逼近h d(n )。

(4) 加窗得到设计结果:h (n )=h d(n )w (n )。

等波纹最佳逼近法

(1)根据给定的逼近指标估算滤波器阶数N 和误差加权函数W (ω);

(2) 采用remez 算法得到滤波器单位脉冲响应h (n )。

MATLAB 工具箱函数remezord 和remez 就是完成以上2个设计步骤的有效函数。

窗函数设计法优缺点

优点:简单方便,易于实现。

缺点: ① 滤波器边界频率不易精确控制。

② 窗函数设计法总使通带和阻带波纹幅度相等,频率采样法只能依靠优化过渡带采样点的取值控制阻带波纹幅度,所以两种方法都不能分别控制通带和阻带波纹幅度。但是工程上对二者的要求是不同的,希望能分别控制。 ③ 所设计的滤波器在阻带边界频率附近的衰减最小,距阻带边界频率越远,衰减越大。如果在阻带边界频率附近的衰减刚好达到设计指标要求,则阻带中其他频段的衰减就有很大富余量。

等波纹最佳逼近法优缺点

等波纹最佳逼近基于切比雪夫逼近,在通带和阻带以|E (ω)|的最大值最小化为准则,采用Remez (雷米兹)多重交换迭代算法求解滤波器系数h (n )[3]。所以W (ω)取值越大的频段, 逼近精度越高,开始设计时应根据逼近精度要求确定W (ω),在Remez 多重交换迭代过程中W (ω)是确知函数。 等波纹最佳逼近设计中,把数字频段分为“逼近区域”和“无关区域”。逼近区域一般指通带和阻带,而无关区域一般指过渡带。设计过程中只考虑对逼近区域的最佳逼近。应当注意,无关区宽度不能为零,即H d(ω)不能是理

?-=ππ

j j d d d e )e (π21)(ωωωn H n h d d ()IDFT[()]M M M

h n H k =

想滤波特性。

三、画出实验主程序框图

四、程序清单及绘图显示曲线图

clear all;close all;

%==调用xtg产生信号xt, xt长度N=1000,并显示xt及其频谱,

N=1000;xt=xtg(N);

fp=120; fs=150;Rp=0.2;As=60;Fs=1000; % 输入给定指标

% (1) 用窗函数法设计滤波器

wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化)

B=2*pi*(fs-fp)/Fs; %过渡带宽度指标

Nb=ceil(11*pi/B); %blackman窗的长度N

hn=fir1(Nb-1,wc,blackman(Nb));

Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性

ywt=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波

%以下为用窗函数法设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)

%省略

% (2) 用等波纹最佳逼近法设计滤波器

fb=[fp,fs];m=[1,0]; % 确定remezord函数所需参数f,m,dev

dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];

[Ne,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数

hn=remez(Ne,fo,mo,W); % 调用remez函数进行设计

Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性

yet=fftfilt(hn,xt,N); % 调用函数fftfilt对xt滤波

五、 分析总结实验结果

用窗函数法设计滤波器,滤波器长度 Nb=184。滤波器损耗函数和滤波器输出yw(nT)分别如图2-3(a)和(b )所示。

用等波纹最佳逼近法设计滤波器,滤波器长度 Ne=83。滤波器损耗函数和滤波器输出ye(nT)分别如图2-3(c)和(d )所示。

两种方法设计的滤波器都能有效地从噪声中提取信号,但等波纹最佳逼近法设计的滤波器阶数低得多,当然滤波实现的运算量以及时延也小得多,从图10.5.3(b)和(d )可以直观地看出时延差别。

六、思考题

(1) 用窗函数法设计线性相位低通滤波器的设计步骤教材

(1)根据对过渡带及阻带衰减的指标要求,选择窗函数的类型,并估计窗口长度N 。

a. 在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。

b. 根据过渡带宽度估计窗口长度N ,过渡带宽与N 成反比。N ≈A /B t ,A 取决于窗口类型。

例如,矩形窗的A =4π,哈明窗的A =8π等。

(2)构造希望逼近的频率响应函数H d(ej ω)

a.选择H d(ej ω)为线性相位理想滤波器。

b.理想滤波器的截止频率ωc 近似位于幅度函数衰减一半(约-6 dB )的位置。所以如果设计指标给定通带边界频率和阻带边界频率ωp 和ωs , 一般取

(3)计算h d(n )

如果H d(ej ω)较复杂,不能用公式求解,则可以对H d(ej ω)从ω=0到ω=2π采

样M 点,采样值为 ,k =0 ,1, 2, …, M -1,进行2

s p c ωωω+=?-=ππj j d d d e )e (π21)(ωωωn H n h ?-=ππj j d d d e )e (π21)(ωωωn H n h

M 点IDFT(IFFT),得到:

根据频域采样理论,h d M (n )与h d(n )应满足如下关系:

如果M 选得较大,可以保证在窗口内h d M (n )有效逼近h d(n )。

(4)加窗得到设计结果:h (n )=h d(n )w (n )。

(2) 希望逼近的理想带通滤波器的截止频率cl cu ωω和分别为:

cl sl pl cu su pu ()/2, ()/2ωωωωωω=+=+

(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低?

① 用窗函数法设计的滤波器,如果在阻带截止频率附近刚好满足,则离开阻带截止频率越远,阻带衰减富裕量越大,即存在资源浪费;

② 几种常用的典型窗函数的通带最大衰减和阻带最小衰减固定,且差别较大,又不能分别控制。所以设计的滤波器的通带最大衰减和阻带最小衰减通常都存在较大富裕。如本实验所选的blackman 窗函数,其阻带最小衰减为74dB,而指标仅为60dB 。

③ 用等波纹最佳逼近法设计的滤波器,其通带和阻带均为等波纹特性,且通带最大衰减和阻带最小衰减可以分别控制,所以其指标均匀分布,没有资源浪费,所以期阶数低得多。

d d ()IDFT[()]M M M

h n H k =?-=ππ

j j d d d e )e (π21)(ωωωn H n h

数字信号处理实验五

实验五:FIR数字滤波器设计与软件实现 信息学院 10电本2班王楚炘 2010304224 10.5.1 实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图10.5.1所示; 图10.5.1 具有加性噪声的信号x(t)及其频谱如图(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。 (4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,

调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本书 第7章和第?章; 采样频率Fs=1000Hz,采样周期T=1/Fs; 根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止频率,通带最大衰为0.1dB,阻带截至频率,阻带最小衰为60dB。]实验程序框图如图10.5.2所示,供读者参考。 Fs=1000,T=1/Fs xt=xtg 产生信号xt, 并显示xt及其频谱 用窗函数法或等波纹最佳逼近法 设计FIR滤波器hn 对信号xt滤波:yt=fftfilt(hn,xt) 1、计算并绘图显示滤波器损耗函数 2、绘图显示滤波器输出信号yt End 图10.5.2 实验程序框图 4.思考题 (1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?请写出设计步骤. 答:用窗函数法设计线性相位低通滤波器的设计步骤: a.根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口的长度N; b.构造希望逼近的频率响应函数; c.计算h d(n); d.加窗得到设计结果h(n)=h d(n)w(n)。 (2)如果要求用窗函数法设计带通滤波器,且给定通带上、下截止频率为和,阻带上、下截止频率为和,试求理想带通滤波器的截止频率。 答:希望逼近的理想带通滤波器的截止频率分别为:

实验五:FIR数字滤波器设计与软件实现

实验五:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。 (4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord 和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○1MATLAB函数fir1的功能及其调用格式请查阅教材; ○2采样频率Fs=1000Hz,采样周期T=1/Fs; ○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截

至频率fs=150Hz ,换算成数字频率,通带截止频率p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率s 20.3s f ωπ=T =π,阻带最小衰为60dB 。 ○ 4实验程序框图如图2所示,供读者参考。 图2 实验程序框图 4.思考题 (1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?请写出设计步骤. (2)如果要求用窗函数法设计带通滤波器,且给定通带上、下截止频率为pl ω和pu ω,阻带上、下截止频率为sl ω和su ω,试求理想带通滤波器的截止频率cl cu ωω和。 (3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低? 5.信号产生函数xtg 程序清单(见教材) 二、 滤波器参数及实验程序清单 1、滤波器参数选取 根据实验指导的提示③选择滤波器指标参数: 通带截止频率fp=120Hz ,阻带截至频率fs=150Hz 。代入采样频率Fs=1000Hz ,换算成数字频率,通带截止频率p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率

数字信号处理实验(吴镇扬)答案-2

(1) 观察高斯序列的时域和幅频特性,固定信号)(n x a 中参数p=8,改变q 的 值,使q 分别等于2、4、8,观察他们的时域和幅频特性,了解当q 取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p 分别等于8、13、14,观察参数p 变化对信号序列的时域和幅频特性的影响,注意p 等于多少时会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 ()() ?????≤≤=-其他0150,2n e n x q p n a 解:程序见附录程序一: P=8,q 变化时: t/T x a (n ) k X a (k ) t/T x a (n ) p=8 q=4 k X a (k ) p=8 q=4 t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 幅频特性 时域特性

t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 t/T x a (n ) 5 10 15 k X a (k ) p=13 q=8 t/T x a (n ) p=14 q=8 5 10 15 k X a (k ) p=14 q=8 时域特性幅频特性 分析: 由高斯序列表达式知n=p 为期对称轴; 当p 取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q 由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱; 当q 值固定不变,p 变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值, p=14时的泄漏现象最为明显,混叠可能也随之出现;

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验及参考程序

数字信号处理实验实验一离散时间信号与系统及MA TLAB实现 1.单位冲激信号: n = -5:5; x = (n==0); subplot(122); stem(n, x); 2.单位阶跃信号: x=zeros(1,11); n0=0; n1=-5; n2=5; n = n1:n2; x(:,n+6) = ((n-n0)>=0); stem(n,x); 3.正弦序列: n = 0:1/3200:1/100; x=3*sin(200*pi*n+1.2); stem(n,x); 4.指数序列 n = 0:1/2:10; x1= 3*(0.7.^n); x2=3*exp((0.7+j*314)*n); subplot(221); stem(n,x1); subplot(222); stem(n,x2); 5.信号延迟 n=0:20; Y1=sin(100*n); Y2=sin(100*(n-3)); subplot(221); stem(n,Y1); subplot(222); stem(n,Y2);

6.信号相加 X1=[2 0.5 0.9 1 0 0 0 0]; X2=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; X=X1+X2; stem(X); 7.信号翻转 X1=[2 0.5 0.9 1]; n=1:4; X2=X1(5-n); subplot(221); stem(n,X1); subplot(222); stem(n,X2); 8.用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。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('幅度'); 9.用MA TLAB计算差分方程 当输入序列为时的输出结果。 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('幅度') 10.冲激响应impz N=64; a=[0.8 -0.44 0.36 0.22];

IIR数字滤波器的设计实验报告

IIR数字滤波器的设计 一、实验目的: 掌握冲激相应不变法和双线性变换法设计IIR数字滤波器的原理和方法; 观察冲激相应不变法和双线性变换法设计IIR数字滤波器的频率特性; 了解冲激相应不变法和双线性变换法的特点和区别。 二、实验原理: 无限长单位冲激响应(IIR)数字滤波器的设计思想: a)设计一个合适的模拟滤波器 b)利用一定的变换方法将模拟滤波器转换成满足预定指 标的数字滤波器 切贝雪夫I型:通带中是等波纹的,阻带是单调的

切贝雪夫II型:通带中是单调的,阻带是等波纹的 1.用冲击响应不变法设计一个低通切贝雪夫I型数字滤波器通带上限截止频率为400Hz 阻带截止频率为600Hz 通带最大衰减为0.3分贝 阻带最小衰减为60分贝 抽样频率1000Hz 2.用双线性变换法设计切贝雪夫II型高通滤波器 通带截止频率2000Hz 阻带截止频率1500Hz 通带最大衰减0.3分贝 阻带最小衰减50分贝 抽样频率20000Hz 四、实验程序:

1) Wp=2*pi*400; Ws=2*pi*600; Rp=0.3; Rs=60; Fs=1000; [N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s'); [Z,P,K]=cheb1ap(N,Rp); [A,B,C,D]=zp2ss(Z,P,K); [At,Bt,Ct,Dt]=lp2lp(A,B,C,D,Wn); [num1,den1]=ss2tf(At,Bt,Ct,Dt); [num2,den2]=impinvar(num1,den1,Fs); [H,W1]=freqs(num1,den1); figure(1) subplot(2,1,1); semilogx(W1/pi/2,20*log10(abs(H)));grid; xlabel(' 频率/ Hz'); ylabel(' 模拟滤波器幅值(db)'); [H,W2]=freqz(num2,den2,512,'whole',Fs); subplot(2,1,2); plot(W2,20*log10(abs(H)));grid; xlabel(' 频率/ Hz');

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验一 IIR数字滤波器设计及软件实现

实验一 IIR数字滤波器设计及软件实现 一、实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 二、实验原理 设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求同学调用如上函数直接设计IIR数字滤波器。 本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 三、实验内容及步骤 (1)调用信号产生函数mstg,产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1-1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。

图1-1 三路调幅信号st 的时域波形和幅频特性曲线 (2)要求将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB 。 提示:抑制载波单频调幅信号的数学表示式为 0001()cos(2)cos(2)[cos(2())cos(2())]2 c c c s t f t f t f f t f f t ππππ==-++ 其中,cos(2)c f t π称为载波,f c 为载波频率,0cos(2)f t π称为单频调制信号,f 0为调制正弦波信号频率,且满足0c f f >。由上式可见,所谓抑制载波单频调幅信号,就是2个正弦信号相乘,它有2个频率成分:和频0c f f +和差频0c f f -,这2个频率成分关于载波频率f c 对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率f c 对称的2根谱线,其中没有载频成分,故取名为抑制载波单频调幅信号。容易看出,图1-1中三路调幅信号的载波频率分别为250Hz 、500Hz 、1000Hz 。如果调制信号m(t)具有带限连续频谱,无直流成分,则()()cos(2)c s t m t f t π=就是一般的抑制载波调幅信号。其频谱图是关于载波频率f c 对称的2个边带(上下边带),在专业课通信原理中称为双边带抑制载波 (DSB-SC) 调幅信号,简称双边带 (DSB) 信号。如果调制信号m(t)有直流成分,则()()cos(2)c s t m t f t π=就是一般的双边带调幅信号。其频谱图是关于载波频率f c 对称的2个边带(上下边带),并包含载频成分。

实验四数字滤波器的设计实验报告

数字信号处理 实验报告 实验四 IIR数字滤波器的设计学生姓名张志翔 班级电子信息工程1203班 学号 指导教师 实验四 IIR数字滤波器的设计 一、实验目的: 1. 掌握双线性变换法及脉冲响应不变法设计IIR数字滤波器的具体设 计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通IIR数字滤波器的MATLAB编程。 2. 观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点。 3.熟悉Butterworth滤波器、切比雪夫滤波器和椭圆滤波器的频率特性。 二、实验原理: 1.脉冲响应不变法 用数字滤波器的单位脉冲响应序列模仿模拟滤波器的冲激响应 ,让正好等于的采样值,即,其中为采样间隔,如果以及分别表示的拉式变换及的Z变换,则 2.双线性变换法 S平面与z平面之间满足以下映射关系:

s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。 双线性变换不存在混叠问题。 双线性变换是一种非线性变换,这种非线性引起的幅频特性畸变可通过预畸而得到校正。 三、实验内容及步骤: 实验中有关变量的定义: fc 通带边界频率; fr阻带边界频率;δ通带波动;At 最小阻带衰减; fs采样频率; T采样周期 (1) =0.3KHz, δ=0.8Db, =0.2KHz, At =20Db,T=1ms; 设计一个切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求。 MATLAB源程序: wp=2*1000*tan(2*pi*300/(2*1000)); ws=2*1000*tan(2*pi*200/(2*1000)); [N,wn]=cheb1ord(wp,ws,0.8,20,'s'); %给定通带(wp)和阻带(ws)边界角频率,通带波动波动0.8,阻带最小衰减20dB,求出最低阶数和通带滤波器的通带边界频率Wn [B,A]=cheby1(N,0.5,wn,'high','s');%给定通带(wp)和阻带(ws)边界角频率,通带波动 [num,den]=bilinear(B,A,1000); [h,w]=freqz(num,den); f=w/(2*pi)*1000; plot(f,20*log10(abs(h)));

2015年北邮数字信号处理软件实验报告

数字信号处理软件实验 MATLAB 仿真 2015年12月16日

实验一:数字信号的 FFT 分析 ● 实验目的 通过本次实验,应该掌握: (a) 用傅立叶变换进行信号分析时基本参数的选择。 (b) 经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。 (c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。 (e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。 ● 实验内容及要求 ? 离散信号的频谱分析 设信号 此信号的0.3pi 和 0.302pi 两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。 ? DTMF 信号频谱分析 用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字 0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。 00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--

●MATLAB代码及结果 ?离散信号的频谱分析 clf; close all; N=1000; n=1:1:N; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); y=fft(x,N); mag=abs(y); w=2*pi/N*[0:1:N-1]; stem(w/pi,mag); axis([0.25 0.5 0 2]); xlabel('频率'); ylabel('X(k)'); grid on;

实验五FIR数字滤波器的设计

实验六 FIR 数字滤波器的设计 一、实验目的 1.熟悉FIR 滤波器的设计基本方法 2.掌握用窗函数设计FIR 数字滤波器的原理与方法。 二、实验内容 1.FIR 数字滤波器的设计方法 FIR 滤波器的设计问题在于寻求一系统函数)(z H ,使其频率响应)(ωj e H 逼近滤波器要求的理想频率响应)(ωj d e H ,其对应的单位脉冲响应为)(n h d 。 (1)用窗函数设计FIR 滤波器的基本原理 设计思想:从时域从发,设计)(n h 逼近理想)(n h d 。设理想滤波器)(ωj d e H 的单位脉 冲响应为)(n h d 。以低通线性相位FIR 数字滤波器为例。 ?∑--∞-∞=== ππωωωωω πd e e H n h e n h e H jn j d d jn n d j d )(21)()()( (6-1) )(n h d 一般是无限长的,且是非因果的,不能直接作为FIR 滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断)()()(n w n h n h d =,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR 滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即 ???-==2 /)1()()()(N a n w n h n h d (6-2) 用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs )效应。为了消除吉布斯效应,一般采用其他类型的窗函数。 (2) 典型的窗函数 ① 矩形窗(Rectangle Window) )()(n R n w N = (6-3)

数字信号处理实验(吴镇扬)答案-4

实验四 有限长单位脉冲响应滤波器设计 朱方方 0806020433 通信四班 (1) 设计一个线性相位FIR 高通滤波器,通带边界频率为0.6π,阻带边界频率为0.4π,阻 带衰减不小于40dB 。要求给出h(n)的解析式,并用MATLAB 绘出时域波形和幅频特性。 解: (1) 求数字边界频率: 0.6 , .c r ωπωπ== (2) 求理想滤波器的边界频率: 0.5n ωπ= (3) 求理想单位脉冲响应: []d s i n ()s i n [()] () ()1n n n n n n h n n παωαα παωα π?-- -≠??-=? ? -=?? (4) 选择窗函数。阻带最小衰减为-40dB ,因此选择海明窗(其阻带最小衰减为-44dB);滤 波器的过渡带宽为0.6π-0.4π=0.2π,因此 6.21 0.231 , 152 N N N ππα-=?=== (5) 求FIR 滤波器的单位脉冲响应h(n): []31d sin (15)sin[0.5(15)] 1cos ()15()()()15(15)1 15 n n n R n n h n w n h n n n ππππ?---????-? ?≠? ???==-???? ? ?=? 程序: clear; N=31; n=0:N-1; hd=(sin(pi*(n-15))-sin(0.5*pi*(n-15)))./(pi *(n-15)); hd(16)=0.5; win=hanning(N); h=win'.*hd; figure; stem(n,h); xlabel('n'); ylabel('h(n)'); grid; title('FIR 高通滤波单位脉冲响应h(n)'); [H,w]=freqz(h,1); H=20*log10(abs(H)); figure;3 plot(w/pi,H); axis([0 1 -100 10]); xlabel('\omega/\pi'); ylabel('幅度/dB'); grid; title('FIR 高通滤波器,hanning 窗,N=31');

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

DSP运行实验报告

DSP运行实验报告 一、实验目的 熟悉CCS软件仿真下,DSP程序的下载和运行;熟悉借助单片机的DSP程序下载和运行; 熟悉借助仿真器的DSP程序下载和运行;熟悉与DSP程序下载运行相关的CCS编程环境。 二、实验原理 CCS软件仿真下,借用计算机的资源仿真DSP的内部结构,可以模拟DSP程序的下载和运行。 如果要让程序在实验板的DSP中运行、调试和仿真,可以用仿真器进行DSP程序下载和运行。初学者也可以不用仿真器来使用这款实验板,只是不能进行程序调试和仿真。 在本实验板的作用中,单片机既是串口下载程序的载体,又是充当DSP 的片外存储器(相对于FLASH),用于固化程序。 三、实验设备、仪器及材料 安装有WINDOWS XP操作系统和CCS3.3的计算机。 四、实验步骤(按照实际操作过程) 1、CCS软件仿真下,DSP程序的下载和运行。 第一步:安装CCS,如果不使用仿真器,CCS 的运行环境要设置成一个模拟仿真器(软仿真)。

第二步:运行CCS,进入CCS 开发环境。 第三步:打开一个工程。 将实验目录下的EXP01目录拷到D:\shiyan下(目录路径不能有中文),用[Project]\[Open]菜单打开工程,在“Project Open”对话框中选 EXP01\CPUtimer\CpuTimer.pjt,选“打开”, 第四步:编译工程。 在[Project]菜单中选“Rebuild All”,生成CpuTimer.out文件。 第五步:装载程序。 用[File]\[Load Program]菜单装载第四步生成CpuTimer.out文件,在当前工程目录中的Debug 文件夹中找到CpuTimer.out文件,选中,鼠标左键单击“打开”。

数字信处理上机实验答案全

数字信处理上机实验答 案全 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞ n时,系统的输出。如果系统稳定,信号加入 → 系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

数字信号处理实验1

clc; clear; M=26;N=32;n=0:M; xa=0:M/2; xb=ceil(M/2)-1:-1:0; xn=[xa,xb]; Xk=fft(xn,512); Xk1=abs(Xk); X32k=fft(xn,32); X32k1=abs(X32k); x32n=ifft(X32k); X16k=X32k(1:2:N); X16k1=abs(X16k); x16n=ifft(X16k,N/2); figure(1); subplot(3,2,1); stem(Xk1); subplot(3,2,2); stem(X32k1); subplot(3,2,3); stem(x32n); subplot(3,2,4); stem(X16k1); subplot(3,2,5); stem(x16n); Lx=41;N=5;M=10; hn=ones(1,N);hn1=[hn zeros(1,Lx-N)]; n=0:Lx-1; xn=cos(pi*n/10)+cos(2*pi*n/5); yn=fftfilt(hn,xn,M); figure(1); subplot(3,1,1); stem(hn1); subplot(3,1,2); stem(xn); subplot(3,1,3); stem(yn);

clc; clear; n=0:31; A=3; y=A*exp((0.8+j*314)*n); subplot(2,1,1); stem(y); Az=[0.7 0.3]; Bz=[1 -0.8 -0.5]; subplot(2,1,2); zplane(Bz,Az);

数字信号处理实验

子程序: function myplot(B,A) %myplot(B,A) %时域离散系统损耗函数绘图 %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000); m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('损耗函数曲线'); function tplot(xn,T,yn) %时域序列连续曲线绘图函数 % xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) % T为采样间隔 n=0:length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]) 程序: %实验4程序exp4.m % IIR数字滤波器设计及软件实现 clear all;close all Fs=10000;T=1/Fs; %采样频率 %调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st st=mstg; %低通滤波器设计与实现========================================= fp=280;fs=450; wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF指标(低通滤波器的通、阻带边界频)[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp [B,A]=ellip(N,rp,rs,wp); %调用ellip计算椭圆带通DF系统函数系数向量B和A y1t=filter(B,A,st); %滤波器软件实现 % 低通滤波器设计与实现绘图部分 figure(2);subplot(3,1,1); myplot(B,A); %调用绘图函数myplot绘制损耗函数曲线 yt='y_1(t)'; subplot(3,1,2);tplot(y1t,T,yt); %调用绘图函数tplot绘制滤波器输出波形 %带通滤波器设计与实现==================================================== fpl=440;fpu=560;fsl=275;fsu=900; wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;

相关文档
最新文档