数字信号处理三 抽样 哈工程

数字信号处理三  抽样 哈工程
数字信号处理三  抽样 哈工程

实验三 抽样

一 实验目的

加深理解连续时间信号的离散化过程中的数学概念和物理概念,掌握时域抽样定理的基本内容。掌握由抽样序列重建原连续信号的基本原理与实现方法,理解其工程概念。加深理解频谱离散化过程中的数学概念和物理概念,掌握频域抽样定理的基本内容。

二、 实验原理

时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率f sam 大于等于2倍的信号最高频率f m ,即 f sam ≥ 2f m 。

时域抽样是把连续信号x (t )变成适于数字系统处理的离散信号x [k ] ;信号重建是将离散信号x [k ]转换为连续时间信号x (t )。 1. 信号的时域抽样

若x [k ]=x (kT )|t =kT ,则信号x (t )与x [k ]的频谱之间存在: 其中:x (t )的频谱为X (j w ),x [k ]的频谱为X (e j W )

可见,信号时域抽样导致信号频谱的周期化。 2. 信号的频域抽样

非周期离散序列x [k ]的频谱X (e j W )是以2p 为周期的连续函数。频域抽样是将X (e j W

)离散化以便于数值计算。

频域抽样与时域抽样形成对偶关系。在[0,2p]内对X (e j W

) 进行N 点均匀抽样,引起时域序列x [k ]以N 点为周期进行周期延拓。 频域抽样定理给出了频域抽样过程中时域不发生混叠的约束条件:若序列x [k ]的长度L ,则

应有N ≥L 。

三 实验内容

3.1 抽样引起的混叠

以不同组合的f 0和f s 绘出x[n],可以说明混叠问题。以下,取抽样频率f s =8kHZ 。

A.

首先,绘出一个被抽样的正弦波的单图。令正弦波的频率为300HZ ,然后再10ms 长时间隔上抽样。相位φ可以任意指定。使用stem 绘出产生的离散时间信号。

程序: >> nn=0:79;

>> sinus=sin(2*pi*300/8000*nn); >>stem(nn,sinus)

)e (

j ΩX (

)

∑∞-∞=-=n n X T )(j 1sam ωω∑

∞-∞=+=n nN k x k x ][][

~

B.如果有必要,使用plot绘图。在这种情况下,点用直线段连接起来,这样正弦信号的特点应该是明显的。

程序

>>plot(nn,sinus)

C.把正弦的频率从400Hz变至475Hz,每次增加125HZ,如在(a)部分中的那样,绘出一系列相应的图。

程序

>> nn=0:79;

>>sinus=sin(2*pi*100/8000*nn);

>> x1=sinus;

>> nn=0:79;

>>sinus=sin(2*pi*225/8000*nn);

>> x2=sinus;

>> nn=0:79;

>>sinus=sin(2*pi*350/8000*nn);

>> x3=sinus;

>> nn=0:79;

>>sinus=sin(2*pi*475/8000*nn);

>> x4=sinus;

>> subplot(411),stem(nn,x1);

>> subplot(412),stem(nn,x2);

>> subplot(413),stem(nn,x3);

>> subplot(414),stem(nn,x4);

D.把正弦的频率从7525HZ变至7900HZ,每次增加125HZ,正如(c)中那样,另外绘出一系列相应的图。

程序

>> nn=0:79;

>>sinus=sin(2*pi*7525/8000*nn);

>>x1=sinus;

>> nn=0:79;

>>sinus=sin(2*pi*7650/8000*nn);

>>x2=sinus;

>> nn=0:79;

>>sinus=sin(2*pi*7775/8000*nn);

>>x3=sinus;

>> nn=0:79;

>>sinus=sin(2*pi*7900/8000*nn);

>>x4=sinus;

>> subplot(411),stem(nn,x1);

>>subplot(412),stem(nn,x2);

>>subplot(413),stem(nn,x3);

>>subplot(414),stem(nn,x4);

E 把正弦的频率从32100HZ变至32475HZ,每次增加125HZ,再次绘出一系列类似的图。

程序

>> nn=0:79;

>> sinus=sin(2*pi*32100/8000*nn);

>> x1=sinus;

>> nn=0:79;

>> sinus=sin(2*pi*32225/8000*nn);

>> x2=sinus;

>> nn=0:79;

>> sinus=sin(2*pi*32350/8000*nn);

>> x3=sinus;

>> nn=0:79;

>> sinus=sin(2*pi*32475/8000*nn);

>> x4=sinus;

>> subplot(411),stem(nn,x1);

>> subplot(412),stem(nn,x2);

>> subplot(413),stem(nn,x3);

>> subplot(414),stem(nn,x4);

3.3 产生信号

=80KHZ

选定f

sim

A.产生一个模拟频率为f0的余弦信号做为仿真的模拟信号 x(t)=cos(2*pi*f0*t+Φ), 0=

程序

>>nn=0:999;

>>sinus=cos(2*pi*600/80000*nn+pi/4);

>>stem(nn,sinus)

B.用plot指令绘出时间信号一边将样本连接起来。确定是用实际连续时间标记时间轴。

程序

>>plot(nn/80000,sinus)

C.

M文件:

function fmagplot(xa,dt)

L=length(xa);

Nfft=round(2.^round(log2(5*L)));

Xa=fft(xa,Nfft);

range=0:(Nfft/4);

ff=range/Nfft/dt;

plot(ff/1000,abs(Xa(1+range)))

title('CONT-TIME FOURIER TRANSFORM(MAG)') xlabel('FREQUENCY(kHz)'),grid

pause

程序

>>fmagplot(sinus,0.0000125)

3-4 A/D转换

A.绘出f x=8KHZ时产生的离散信号。程序

>>fsim=80000;

>>fs=8000;

>>k=fsim/fs;

>>n=0:1000;

>>l=length(n);

>>x=cos(2*pi*600*n/fsim);

>>y=x(1:k:l);

>>L=length(y);

>>n1=0:L-1;

>>stem(n1,y)

>>title('AD'),ylabel('x[n]'),xlabel('n')

B

计算离散时间信号的DTFT并解释它如何与模拟信号的傅里叶变换相联系。程序

[HH,WW]=dtft(y,800);

N=800;

subplot(211),plot(WW/2/pi,abs(HH));

grid,title('MAGNITUDE RESPONSE')

xlabel('NORMALIZED FREQUENCY'),ylabel('|H(w)|')

subplot(212),plot(WW/2/pi,180/pi*angle(HH));grid

xlabel('NORMALIZED FREQUENCY'),ylabel('DEGREES')

title('PHASE RESPONSE')

3.5设计一个重建滤波器

A.

程序

>>fs=8000;

>>fsim=80000;

>>fcut=2*(fs/2)/fsim;

>>[b,a]=cheby2(9,60,fcut);

B

程序

>> N=1000;

>>[HH,WW]=freqz(b,a,N,'whole');

>>mid =ceil(N/2)+1;

>>WW(mid:N)=WW(mid:N)-2*pi;

>>WW=fftshift(WW);

>>HH=fftshift(HH);

>>subplot(211),plot(WW/2/pi,abs(HH));

>>grid,title('MAGNITUDE RESPONSE')

>>xlabel('NORMALIZED FREQUENCY'),ylabel('|H(w)|') >>subplot(212),plot(WW/2/pi,180/pi*angle(HH));grid >>xlabel('NORMALIZED FREQUENCY'),ylabel('DEGREES') >>title('PHASE RESPONSE')

3.6 D/A转换

程序

>>y2=zeros(1,L);

>>for i=0:100;

y2(i*10+1)=y(i+1);

end

>>yy=filter(b,a,y2);

>>t=[0:0.001:1];

>>plot(t,yy)

>>ylabel('xr(t)'),xlabel('t')

>> [HH,WW]=freqz(b,a,1000,'whole'); >> plot(WW,HH)

B

程序

>>fmagplot(yy,0.0000125)

数字信号处理实验一

实验一 离散时间信号分析 班级 信息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)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验一

一、实验目的 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;

数字信号处理实验

实验一 离散傅里叶变换(DFT )对确定信号进行谱分析 一.实验目的 1.加深对DFT 算法原理和基本性质的理解。 2.熟悉DFT 算法和原理的编程方法。 3.学习用DFT 对信号进行谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确利用。 二.实验原理 一个连续信号)(t x a 的频谱可以用其傅里叶变换表示,即 dt e t x j X t j a a Ω-∞ ∞ -? = Ω)()( 若对)(t x a 进行理想采样可得采样序列 )(|)()(nT x t x n x a nT t a === 对)(n x 进行DTFT ,可得其频谱为: ∑∞ -∞ =-= n n j j e n x e X ωω )()( 其中数字频率ω与模拟频率Ω的关系为: s f T Ω = Ω=ω )(n x 的DFT 为∑∞ -∞ =-= n nk N j e n x k X π 2)()( 若)(t x a 是限带信号,且在满足采样定理的条件下,)(ω j e X 是)(Ωj X a 的周期延拓, )(k X 是)(ωj e X 在单位圆上的等间隔采样值,即k N j e X k X πωω2| )()(= =。 为在计算机上分析计算方便,常用)(k X 来近似)(ω j e X ,这样对于长度为N 的有限 长序列(无限长序列也可用有限长序列来逼近),便可通过DFT 求其离散频谱。 三.实验内容 1.用DFT 对下列序列进行谱分析。 (1))()04.0sin(3)(100n R n n x π=

1 (2)]0,0,0,0,0,0,0,0,1,1,1,1[)(=n x 2.为了说明高密度频谱和高分辨率频谱之间的区别,考察序列 )52.0cos()48.0cos()(n n n x ππ+= (1)当0≤n ≤10时,确定并画出x(n)的离散傅里叶变换。 (2)当0≤n ≤100时,确定并画出x(n)的离散傅里叶变换。 四.实验结果 1. (1) (2)

数字信号处理实验作业

实验6 数字滤波器的网络结构 一、实验目的: 1、加深对数字滤波器分类与结构的了解。 2、明确数字滤波器的基本结构及其相互间的转换方法。 3、掌握用MA TLAB 语言进行数字滤波器结构间相互转换的子函数及程序编写方法。 二、实验原理: 1、数字滤波器的分类 离散LSI 系统对信号的响应过程实际上就是对信号进行滤波的过程。因此,离散LSI 系统又称为数字滤波器。 数字滤波器从滤波功能上可以分为低通、高通、带通、带阻以及全通滤波器;根据单位脉冲响应的特性,又可以分为有限长单位脉冲响应滤波器(FIR )和无限长单位脉冲响应滤波器(IIR )。 一个离散LSI 系统可以用系统函数来表示: M -m -1-2-m m m=0 012m N -1-2-k -k 12k k k=1 b z b +b z +b z ++b z Y(z)b(z)H(z)=== =X(z)a(z) 1+a z +a z ++a z 1+a z ∑∑ 也可以用差分方程来表示: N M k m k=1 m=0 y(n)+a y(n-k)=b x(n-m)∑∑ 以上两个公式中,当a k 至少有一个不为0时,则在有限Z 平面上存在极点,表达的是以一个IIR 数字滤波器;当a k 全都为0时,系统不存在极点,表达的是一个FIR 数字滤波器。FIR 数字滤波器可以看成是IIR 数字滤波器的a k 全都为0时的一个特例。 IIR 数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、级联型和并联型。 FIR 数字滤波器的基本结构分为横截型(又称直接型或卷积型)、级联型、线性相位型及频率采样型等。本实验对线性相位型及频率采样型不做讨论,见实验10、12。 另外,滤波器的一种新型结构——格型结构也逐步投入应用,有全零点FIR 系统格型结构、全极点IIR 系统格型结构以及全零极点IIR 系统格型结构。 2、IIR 数字滤波器的基本结构与实现 (1)直接型与级联型、并联型的转换 例6-1 已知一个系统的传递函数为 -1-2-3 -1-2-3 8-4z +11z -2z H(z)=1-1.25z +0.75z -0.125z 将其从直接型(其信号流图如图6-1所示)转换为级联型和并联型。

实验设计:多采样率数字信号处理

实验名称:多采样率数字信号处理 一.实验目的:1. 掌握信号抽取和插值的基本原理和实现; 2.掌握信号的有理数倍率转换。 二.实验原理: 多采样率数字信号处理共分为3方面的问题:信号的整数倍抽取、信号的整数倍插值和信号的有理数倍速率转换。 Matlab 信号处理工具箱提供了抽取函数decimate 用于信号整数倍抽取,其调用格式为: y=decimate(x,M) y=decimate(x,M,n) y=decimate(x,M,’fir’) y=decimate(x,M,n,’fir’) 其中y=decimate(x,M)将信号x 的采样率降低为原来的 M 1,抽取前缺省地采用8阶Chebyshev Ⅰ型低通滤波器压缩频带。 y=decimate(x,M,n)指定所采用Chebyshev Ⅰ型低通滤波器的阶数,通常13 n 。 y=decimate(x,M,’fir’)指定用FIR 滤波器来压缩频带。 y=decimate(x,M,n,’fir’) 指定所用FIR 滤波器的阶数。 Matlab 信号处理工具箱提供了插值函数interp 用于信号整数倍插值,其调用格式为: y=interp(x,L) y=interp(x,L,n,alpha) [y,b]=interp(x,L,n,alpha) 其中y=interp(x,L)将信号的采样率提高到原来的L 倍。 y=interp(x,L,n,alpha)指定反混叠滤波器的长度n 和截止频率alpha ,缺省值为4和0.5。 [y,b]=interp(x,L,n,alpha)在插值的同时,返回反混叠滤波器的系数向量。 信号的有理数倍速率转换是使信号的采样率经由一个有理因子M L 来改变,可以通过插值和抽取的级联来实现。Matlab 信号处理工具箱提供了重采样函数resample 用于有理倍数速率转换,其调用格式为: y=resample(x,L,M);

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

数字信号处理实验答案 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),绘出四个周期。

数字信号处理实验4-6

实验4 离散系统的变换域分析 一、实验目的 1、熟悉对离散系统的频率响应分析方法; 2、加深对零、极点分布的概念理解。 二、实验原理 离散系统的时域方程为 其变换域分析方法如下: 频域: 系统的频率响应为: Z域: 系统的转移函数为:

分解因式: , 其中和称为零、极点。 三、预习要求 1.在MATLAB中,熟悉函数tf2zp、zplane、freqz、residuez、zp2sos的使用,其中:[z, p,K]=tf2zp(num,den)求得有理分式形式的系统转移函数的零、极点;zplane(z,p)绘制零、极点分布图;h=freqz(num,den,w)求系统的单位频率响应;[r,p,k]=residuez (num,den)完成部分分式展开计算;sos=zp2sos(z,p,K)完成将高阶系统分解为2阶系统的串联。 2.阅读扩展练习中的实例,学习频率分析法在MATLAB中的实现; 3.编程实现系统参数输入,绘出幅度频率响应和相位响应曲线和零、极点分布图。 四、实验内容 求系统 的零、极点和幅度频率响应和相位响应。 解析: 【代码】 num=[0.0528 0.0797 0.1295 0.1295 0.797 0.0528]; den=[1 -1.8107 2.4947 -1.8801 0.9537 -0.2336]; [z,p,k]=tf2zp(num,den); disp('零点');disp(z); disp('极点');disp(p); disp('增益系数');disp(k); figure(1) zplane(num,den)

figure(2) freqz(num,den,128) 【图形】 -2 -1.5 -1 -0.500.5 1 1.5 -1.5 -1 -0.5 0.51 1.5 Real Part I m a g i n a r y P a r t 0.1 0.2 0.30.40.50.60.70.80.9 1 -800 -600-400-2000 Normalized Frequency (?π rad/sample) P h a s e (d e g r e e s ) 0.1 0.2 0.30.40.50.60.70.80.9 1 -40-2002040Normalized Frequency (?π rad/sample) M a g n i t u d e (d B ) 【结果】 零点 -1.5870 + 1.4470i

数字信号处理实验三

实验三 离散付里叶变换(DFT ) 一、实验目的: 1. 掌握离散付里叶级数 2. 掌握DFT 变换。 3. 掌握DFT 特性。 4. 掌握利用DFT 计算线性卷积。 5. 掌握快速付里叶变换(FFT)。 二、实验原理: 1.离散付里叶级数(DFS ) )(~n x 为周期序列,其频率为基本频率(N /2π )的倍数(或谐波)。其离散付叶级 数(DFS )为:;∑ -=-±== 1 2,,1,0,)(~)(~N n kn N j k e n x k X π IDFS 为:∑ -== 1 2)(~ 1)(~N k kn N j e k X N n x π 2.离散付里叶变换(DFT ) )(n x 为长度N 的有限长序列,其DFT 为:21 1()()N j kn N k x n X k e N π--== ∑ IDFT 为:21 ()(),0,1,N j kn N n X k x n e k π-== =±∑ 3.DFT 的特性: (1) 线性性:)]([)]([)]()([2121n x bDFT n x aDFT n bx n ax DFT +=+ (2) 循环折叠(圆周对称)性:?? ? -≤≤-==-1 1) (0) 0())((N n n N x n x n x N (3) 共轭性: N k X n x DFT ))(()]([* *-= (4) 实序列的对称性(圆周共轭对称性):N k X k X ))(()(* -= (5) 序列的圆周移位:N m n x m n x ))(()(~ -=-

(6) 频域中的圆周移位:)())(()]([|ln k R l k X n x W DFT N N N -=- (7) 时域循环卷积:)()()]()([2121k X k X n x n x DFT =? (8) 频域循环卷积(乘法性):)()(1)]()([2121k X k X N n x n x DFT ?= (9) 帕塞瓦尔(Parseval )定理:∑ ∑ -=-== = 1 2 1 2 ) (1)(N k N n x k X N n x E 4.用DFT 计算线性卷积: 设)(1n x 为1N 点序列,)(2n x 为2N 点序列,)(3n x 为)(1n x 和)(2n x 的线性卷积,其为121-+N N 点序列,)(4n x 为)(1n x 和)(2n x 的圆卷积,其长度为 N ,当121-+=N N N 时,)()(43n x n x =。实际中,采用分段卷积法,即重 叠保留法和重叠相加法。需要对数据流进行分块处理,这时直接采用DFT 计算线性卷积会产生一些问题,而应该将)(n x 通过重复前M-1个取样进行分块,这样可得到正确结果。 5.快速付里叶变换(FFT ): 掌握基2-时域抽取FFT(DIT-FFT)和基2-频域抽取FFT(DIF-FFT)。MATLAB 提供fft 函数来计算x 的DFT 。fft 函数是用机器语言写的,采用混合基法,其调用形式为:),(N x fft X =。如N 为2的幂,则得到高速的基2-FFT 算法;若N 不是2的乘方,则将N 分解成质数,得到较慢的混合基FFT 算法;最后,若N 为质数,则fft 函数采用的是原始的DFT 算法。 三、实验步骤: 1.离散付里叶级数(DFS ) (1)自已动手:编写实现离散付里叶级数和逆离散付里叶级数的函数。 (2)已知周期性序列如下所示:}3,2,1,0,3,2,1,0,3,2,1,0{)(~ ↑ =n x 求其离散付里叶级数。 2.离散付里叶变换(DFT ) (1) 编写实现DFT 和IDFT 的函数。 (2) 已知)(n x 是一个六点序列,如下所示: ?? ?≤≤=e ls e n n x 0 501 )( 要求计算该序列的离散时间的付里叶变换和离散付里叶变换,并绘出它们的幅度和相

数字信号处理基础书后题答案中文版

Chapter 2 Solutions 2.1 最小采样频率为两倍的信号最大频率,即44.1kHz 。 2.2 (a)、由ω = 2πf = 20 rad/sec ,信号的频率为f = 3.18 Hz 。信号的奈奎斯特采样频率为6.37 Hz 。 (b)、3 5000π=ω,所以f = 833.3 Hz ,奈奎斯特采样频率为1666.7 Hz 。 (c)、7 3000π=ω,所以f = 214.3 Hz ,奈奎斯特采样频率为428.6 Hz 。 2.3 (a) 1258000 1f 1T S S ===μs (b)、最大还原频率为采样频率的一半,即4000kHz 。 2.4 ω = 4000 rad/sec ,所以f = 4000/(2π) = 2000/π Hz ,周期T = π/2000 sec 。因此,5个周期为5π/2000 = π/400 sec 。对于这个信号,奈奎斯特采样频率为2(2000/π) = 4000/π Hz 。所以采样频率为f S = 4(4000/π) = 16000/π Hz 。因此5个周期收集的采样点为(16000/π samples/sec )(π/400 sec) = 40。 2.5 ω = 2500π rad/sec ,所以f = 2500π/(2π) = 1250 Hz ,T = 1/1250 sec 。因此,5个周期为5/1250 sec 。对于这个信号,奈奎斯特采样频率为2(1250) = 2500 Hz ,所以采样频率为f S = 7/8(2500) = 2187.5 Hz 。采样点数为(2187.5 点/sec)(5/1250 sec) = 8.75。这意味着在模拟信号的五个周期内只有8个点被采样。事实上,对于这个信号来说,在整数的模拟周期中,是不可能采到整数个点的。 2.6 2.7 信号搬移发生在kf S ± f 处,换句话说,频谱搬移发生在每个采样频率的整数倍 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 频率/kHz

数字信号处理实验三

实验三:离散LSI 系统的频域分析 一、实验内容 2、求以下各序列的z 变换: 12030() ()sin() ()sin()n an x n na x n n x n e n ωω-=== 程序清单如下: syms w0 n z a; x1=n*a^n;X1=ztrans(x1) x2=sin(w0*n);X2=ztrans(x2) x3= exp(-a*n)*sin(w0*n);X3=ztrans(x3) 程序运行结果如下: X1 =z/(a*(z/a - 1)^2) X2 =(z*sin(w0))/(z^2 - 2*cos(w0)*z + 1) X3 =(z*exp(a)*sin(w0))/(exp(2*a)*z^2 - 2*exp(a)*cos(w0)*z + 1) 3、求下列函数的逆z 变换 0 312342 1 1() () () ()() 1j z z z z X z X z X z X z z a z a z e z ω---= = = = ---- 程序清单如下: syms w0 n z a; X1=z/(z-a);x1=iztrans(X1) X2= z/(a-z)^2;x2=iztrans(X2) X3=z/ z-exp(j*w0);x3=iztrans(X3) X4=(1-z^-3)/(1-z^-1);x4=iztrans(X4) 程序运行结果如下: x1 =a^n x2 =n*a^n/a 课程名称 数字信号 实验成绩 指导教师 实 验 报 告 院系 信息工程学院 班级 学号 姓名 日期

x3 =charfcn[0](n)-iztrans(exp(i*w0),w0,n) x4 =charfcn[2](n)+charfcn[1](n)+charfcn[0](n) 4、求一下系统函数所描述的离散系统的零极点分布图,并判断系统的稳定性 (1) (0.3)()(1)(1) z z H z z j z j -= +-++ z1=[0,0.3]';p1=[-1+j,-1-j]';k=1; [b1,a1]=zp2tf(z1,p1,k); subplot(1,2,1);zplane(z1,p1); title('极点在单位圆外); subplot(1,2,2);impz(b1,a1,20); 由图可见:当极点位于单位圆内,系统的单位序列响应随着频率的增大而收敛;当极点位于单位圆上,系统的单位序列响应为等幅振荡;当极点位于单位圆外,系统的单位序列响应随着频率的增大而发散。由此可知系统为不稳定系统。 -1 -0.5 00.51 -2 -1.5-1-0.500.511.5 2Real Part I m a g i n a r y P a r t 极点在单位圆外 n (samples) A m p l i t u d e Impulse Response

数字信号处理实验4

数字信号处理实验四 第一题结果: (1)没有增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 %H(3,13) = 0.75;H(5,11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线

(2)增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 H(3) = 0.75;H(13) = 0.75;H(5) = 0.25;H(11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

数字信号处理实验六-时域采样与信号的重建

实验目的: 1.了解用MATLAB语言进行时域抽样与信号重建的方法 2.进一步加深对时域信号抽样与恢复的基本原理的理解 3.掌握采样频率的确定方法和内插公式的编程方法。 二.实验内容 1认真阅读并输入实验原理与方法中介绍的例子,观察输出波形曲线,理解每一条语句的含义。. 2.已知一个连续时间信号f(t)=sinc(t)。取最高有限带宽频率fm=1Hz。(1)分别显示原连续时间信号波形和Fm=fm、Fm=2fm、Fm=3fm三种情况下抽样信号的波形。 实验程序: dt=0.1; f0=1; T0=1/f0; fm=f0; Tm=1/fm; t=-2:dt:2; f=sinc(t); subplot(4,1,1),plot(t,f,'k'); axis([min(t) max(t) 1.1*min(f) 1.1*max(f)]); title('原连续信号和抽样信号'); for i=1:3; fs=i*fm; Ts=1/fs;

n=-2:Ts:2; f=sinc(n); subplot(4,1,i+1),stem(n,f,'filled','k'); axis([min(n) max(n) 1.1*min(f) 1.1*max(f)]); end 实验截图: (2)求解原连续信号波形和抽样信号所对应的幅度谱。实验程序: dt=0.1;t=-4:dt:4;

N=length(t);f=sinc(t);Tm=1;fm=1/Tm; wm=2*pi*fm;k=1:N; w1=k*wm/N; F1=f*exp(-j*t'*w1)*dt; subplot(4,1,1),plot(w1/(2*pi),abs(F1));grid axis([0 max(4*fm) 1.1*min(F1) 1.1*max(F1)]); for i=1:3; if i<= 2 c=0 ,else c=0.2,end fs=(4-i+c)*fm; Ts=1/fs; n=-4:Ts:4; f=sinc(n); N=length(n); wm=2*pi*fs; k=1:N; w=k*wm/N; F=f*exp(-j*n'*w)*Ts; subplot(4,1,5-i),plot(w/(2*pi),abs(F),'k');grid axis([0 max(4*fm) 1.1*min(F) 1.1*max(F)]); end 实验截图:

数字信号处理实验报告 六

程序P6.1 % 程序 P6_1 % 将一个有理数传输函数 % 转换为因式形式 num = input('分子系数向量 = '); den = input('分母系数向量 = '); [z,p,k] = tf2zp(num,den); sos = zp2sos(z,p,k) Q6.1 使用程序p6.1,生成如下有限冲激响应传输函数的一个级联实现:H1(Z)=2+10Z^-1+23Z^-2+34Z^-3+31Z^-4+16Z^-5+4Z^-6 画出级联实现的框图。H1(Z)是一个线性相位传输函数吗? 分子系数向量 = [2,10,23,34,31,16,4] 分母系数向量 = [1,0,0,0,0,0,0] sos = 2.0000 6.0000 4.0000 1.0000 0 0 1.0000 1.0000 2.0000 1.0000 0 0 1.0000 1.0000 0.5000 1.0000 0 0 Y[k] 2 11 X[k] Q6.2 使用程序p6.1,生成如下有限冲激响应传输函数的一个级联实现:H2(Z)=6+31Z^-1+74Z^-2+102Z^-3+74Z^-4+31Z^-5+6Z^-6 画出级联实现的框图。H2(Z )是一个线性相位传输函数吗?只用4个乘法器生成H2(Z)的一个级联实现。显示新的级联结构的框图。 分子系数向量 = [6,31,74,102,74,31,6] 分母系数向量 = [1,0,0,0,0,0,0] sos =

6.0000 15.0000 6.0000 1.0000 0 0 1.0000 2.0000 3.0000 1.0000 0 0 1.0000 0.6667 0.3333 1.0000 0 0 Y[k] 6 11 X[k] Q6.3 使用程序 6.1生成如下因果无限冲激响应传输函数的级联实现: H1(Z)=(3+8Z^-1+12Z^-2+7Z^-3+2Z^-4-2Z^-5)/(16+24Z^-1+24Z^-2+14Z^-3+5Z^-4+Z^-5),画出级联实现的框图。 分子系数向量 = [3,8,12,7,2,-2] 分母系数向量 = [16,24,24,14,5,1] sos = 0.1875 -0.0625 0 1.0000 0.5000 0 1.0000 2.0000 2.0000 1.0000 0.5000 0.2500 1.0000 1.0000 1.0000 1.0000 0.5000 0.5000 Y [k ] 0.1875 11 11X [k ] Q6.4使用程序6.1生成如下因果无限冲激响应传输函数的级联实现:

数字信号处理实验

数字信号处理实验

实验一 自适应滤波器 一、实验目的 1、掌握功率谱估计方法 2、会用matlab 对功率谱进行仿真 二、实验原理 功率谱估计方法有很多种,一般分成两大类,一类是经典谱估计;另一类是现代谱估计。经典谱估计可以分成两种,一种是BT 法,另一种是周期法;BT 法是先估计自相关函数,然后将相关函数进行傅里叶变换得到功率谱函数。相应公式如下所示: ||1 *0 1 ?()()()(11) ??()(12) N m xx n jwn BT xx m r m x n x n m N P r m e --=∞ -=-∞ =+-=-∑ ∑ 周期图法是采用功率谱的另一种定义,但与BT 法是等价的,相应的功率谱估计如下所示: 21 1? ()()01 (13)N jw jwn xx n P e x n e n N N --== ≤≤--∑ 其计算框图如下所示: 观测数据x(n) FFT 取模的平方 1/N ) (jw xx e ∧ 图1.1周期图法计算用功率谱框图

由于观测数据有限,所以周期图法估计分辨率低,估计误差大。针对经典谱估计的缺点,一般有三种改进方法:平均周期图法、窗函数法和修正的周期图平均法。 三、实验要求 信号是正弦波加正态零均值白噪声,信噪比为10dB,信号频率为2kHZ,取样频率为100kHZ。 四、实验程序与实验结果 (1)用周期图法进行谱估计 A、实验程序: %用周期法进行谱估计 clear all; N1=128;%数据长度 N2=256; N3=512; N4=1024; f=2;%正弦波频率,单位为kHZ fs=100;%抽样频率,单位为kHZ n1=0:N1-1; n2=0:N2-1; n3=0:N3-1; n4=0:N4-1; a=sqrt(20);%由信噪比为10dB计算正弦信号的幅度

数字信号处理实验报告实验三(DOC)

物理与电子信息工程学院 实验报告 实验课程名称:数字信号处理 实验名称:用FFT对信号作频谱分析班级:1012341 姓名:严娅 学号:101234153 成绩:_______ 实验时间:2012年12月6日

一、实验目的 学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。 二、实验原理 用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是N/ 2π,因此要求D 2π。可以根据此式选择FFT的变换区间N。误差主要来自于/ N≤ 用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 三、实验步骤及内容 (1)对以下序列进行谱分析。

?????≤≤-≤≤-=?? ???≤≤-≤≤+==其它n n n n n n x 其它n n n n n n x n R n x ,074, 330,4)(,074, 830, 1)() ()(3241 这些都是时域离散非周期信号,选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。 (2)对以下周期序列进行谱分析。 4()cos 4x n n π= 5()cos(/4)cos(/8)x n n n ππ=+ 这些是时域离散周期信号,选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。 (3)对模拟周期信号进行谱分析 6()cos8cos16cos20x t t t t πππ=++ 这是时域连续周期信号,选择采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。 四、实验程序清单 %第10章实验3程序exp3.m % 用FFT 对信号作频谱分析

数字信号处理实验报告

前言 《数字信号处理》是信息电子,通信工程等本科专业及其他相近专业的一门专业必修课。通过本课程的学习,学生应掌握以下基本概念、理论和方法:采样定理、离散序列的变换、离散信号的频谱分析;离散系统的传递函数、频率响应、离散系统的基本分析方法;数字滤波器的设计理论、滤波器的软件实现;离散傅立叶变换理论、快速傅立叶变换方法;有限字长效应。 为了使学生更好地理解和深刻地把握这些知识,并在此基础上,训练和培养学生掌握离散系统的基本概念和分析方法,数字滤波器的设计和实现,以及如何利用快速傅立叶变换等DSP技术对数字信号进行分析、滤波等处理,设置了以下三个实验: (1)离散时间序列卷积和MATLAB实现; 内容:使用任意的编程语言编制一个程序,实现两个任意有限序列的卷积和。 目的:理解线性非移变系统I/O关系和实现 要求:掌握使用计算机实现数字系统的方法 (2)FFT算法的MATLAB实现; 内容:使用MATLAB编程语言编制一个程序,实现任意有限序列的FFT。 目的:理解FFT算法的意义和实现 要求:掌握使用计算机实现FFT算法的方法 (3)数字滤波器的设计; 内容:使用MATLAB编程语言编制一个程序,实现FIR或IIR滤波器的设计目的:理解数字滤波器的设计技术 要求:掌握使用计算机进行数字滤波器设计的方法 (4)窗函数设计FIR滤波器; 内容:使用MATLAB编程语言编制一个程序,实现FIR或IIR滤波器的设计目的:理解数字滤波器的设计技术 要求:掌握使用计算机进行数字滤波器设计的方法 该实验指导书是参照该课程的教学大纲而编制的,适合于信息电子工程、通信工程等本科专业及其他相近专业。

数字信号处理实验八

实验报告 实验名称:FIR数字滤波器设计及应用 课程名称____数字信号处理________ 院系部:电气与电子工程专业班级:信息1002 学生姓名:王萌学号: 11012000219同组人:实验台号: 指导教师:范杰清成绩: 实验日期: 华北电力大学

一、实验目的 加深理解 FIR 数字滤波器的时域特性和频域特性,掌握FIR 数字 滤波器的设计原理与设计方法,以及FIR 数字滤波器的应用。 二、 实验原理 FIR 数字滤波器可以设计成具有线性相位,在数据通信、图像处理、 语音信号处理等实际应用领域得到广泛应用。 M 阶FIR 数字滤波器的系统函数为: FIR 数字滤波器的单位脉冲响应h [k ]是长度为M +1的有限长因果序列。当满足对称条件时,该FIR 数字滤波器具有线性相位。FIR 数字滤波器设计方法主要有窗口法、频率取样法及优化设计法。 MATLAB 中提供的常用FIR 数字滤波器设计函数有: fir1 窗函数法设计FIR 数字滤波器(低通、高通、带通、 带阻、多频带滤波器) fir2 频率取样法设计FIR 数字滤波器:任意频率响应 firls FIR 数字滤波器设计:指定频率响应 firrcos 升余弦型 FIR 数字滤波器设计 intfilt 内插FIR 数字滤波器设计 kaiserord 凯塞(Kaiser)窗函数设计法的阶数估计 firpm Parks-McClellan 算法实现FIR 数字滤波器优化设计 firpmord Parks-McClellan 数字滤波器的阶数选择 cremez 复系数非线性相位FIR 等波纹滤波器设计 1、 窗口法设计FIR 数字滤波器 fir1函数可以很容易地实现FIR 数字滤波器窗口法设计。 可设计低通、高通、带通、带阻滤波器、多频带滤波器。 k M k z k h z H -=∑=][)(0

数字信号处理实验六

实验六 一、实验名称 离散时间滤波器设计 二、实验目的: 1、掌握利用脉冲响应不变法设计IIR 数字滤波器的原理及具体方法。 2、加深理解数字滤波器与连续时间滤波器之间的技术转化。 3、掌握脉冲响应不变法设计IIR 数字滤波器的优缺点及使用范围。 4、掌握利用双线性变换法设计IIR 数字滤波器的原理及具体方法。 5、深入理解利用双线性变换法设计IIR 数字滤波器的优缺点及使用范围。 三、实验原理: 1、脉冲响应不变法变换原理 脉冲响应不变法将模拟滤波器的s 平面变换成数字滤波器的z 平面,从而将模拟滤波器映射成数字滤波器。 IIR 滤波器的系数函数为1 -z (或z )的有理分式,即 ∑∑=-=--= N k k k M k k k z a z b z H 1 01)( 一般满足N M ≤。 ⑴转换思路: )(H )()(h )(h )(z n h nT t s H z a a ??→?=???→?????→?变换 时域采样拉普拉斯逆变换 若模拟滤波器的系统函数H (s )只有单阶极点,且假定分母的阶次大于分子的阶次,表达式: ∑ =--=N k T s k z e TA z H k 111)( ⑵s 平面与z 平面之间的映射关系。 Ω +==j s re z j σω→ =→=→ΩT j T jw sT e e re e z σT e r T Ω==ωσ IIR 数字滤波器设计的重要环节式模拟低通滤波器的设计,典型的模拟低通滤波器有巴 特沃兹和切比雪夫等滤波器。由模拟低通滤波器经过相应的复频率转换为H (s ),由H (s )经过脉冲响应不变法就得到所需要的IIR 数字滤波器H (z )。 Matlab 信号处理工具箱中提供了IIR 滤波器设计的函数,常用的函数: IIR 滤波器阶数选择 Buttord--巴特沃兹滤波器阶数选择。 Cheb1ord--切比雪夫I 型滤波器阶数选择。 Cheb2ord--切比雪夫II 型滤波器阶数选择。 IIR 滤波器设计 Butter--巴特沃兹滤波器设计。

数字信号处理实验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);

相关文档
最新文档