实验1数字信号处理

实验1数字信号处理
实验1数字信号处理

实验1 离散时间信号的时域分析

一、实验目的

(1)了解MATLAB语言的主要特点及作用;

(2)熟悉MATLAB主界面,初步掌握MATLAB命令窗和编辑窗的操作方法;

(3)了解常用时域离散信号及其特点;

(4)掌握MATLAB产生常用时域离散信号的方法;

(5)掌握MATLAB中时域离散信号的基本运算方法;

(6)学习简单的数组赋值、数组运算、绘图的程序编写。

二、知识点提示

本章节的主要知识点是利用MATLAB产生数字信号处理的几种常用典型序列及数字序列的基本运算;重点是单位脉冲、单位阶跃、正(余)弦信号的产生;难点是MATLAB关系运算符“==、>=”的使用。

三、实验原理

1.时域离散信号的概念

在MATLAB中,时域的离散信号可以通过编写程序直接生成,也可以通过对连续信号等间隔抽样获得。离散序列的时域运算主要为信号的相加和相乘,信号的时域变换包括移位、反转及尺度变换。

2.用MATLAB生成离散信号需注意的问题

(1)有关数组与下标

MATLAB中处理的数组,其下标默认从1开始递增,例如x=[9 8 7],表示x(1)=9;x(2)=8;x(3)=7。要表示一个下标不从1开始的数组,一般需要采用两个矢量,如:n=[-3:1:2],x=[9 8 7 6 5 4],则有x(-3)=9;x(-2)=8;x(2)=4。

(2)信号的图形绘制

从本质上来讲,MATLAB及其任何计算机语言处理的信号都是离散信号。当我们把信号的样点值取的足够密,作图时采用特殊的命令,就可以把信号近似看成连续信号。

在MATLAB中,离散信号与连续信号有时在程序编写上是一致的,只是在作图时选择不同的绘图函数而已。

连续信号作图用plot函数,绘制线形图;离散信号作图使用stem函数,绘制脉冲图。3.常用时域离散信号

常用时域离散信号有单位脉冲序列、单位阶跃序列、实指数序列、复指数序列、正弦序

列、矩形序列以及随机序列等。

下面以单位脉冲序列的产生为例做详细说明。其他函数类似。 单位脉冲序列

()??

?≠==0001n n n δ ()???≠==-k

n k

n k n 0

1

δ (1)用MATLAB 的关系运算式来产生单位脉冲序列()n δ。

n1=-5; n2=5; n0=0; %显示范围从n1到n2 n=n1:n2; %横坐标

x=[n==0]; %生成离散信号x(n)

stem(n,x,’filled ’); %绘制图形,且圆点处用实心圆表示 (2)用zeros 函数和抽样点直接赋值产生单位脉冲序列()n δ。

n1=-5; n2=5; n0=0; %显示范围从n1到n2 n=n1:n2; %横坐标 nt=length(n); %序列的长度

x=zeros(1,nt); %先产生全零的序列,对应-5到5

x(n0-n1+1)=1; %将n=0处的序列值赋值为1,n=0就是第(n0-n1+1)个值 stem(n,x,'filled'); %绘制图形,且圆点处用实心圆表示

(3)如果用函数来实现,需要在m 文件里面完成,函数名为impseq(n0,n1,n2)

function x=impseq(n0,n1,n2); n=n1:n2; x=[n==n0]; stem(n,x,'filled');

(4)单位阶跃序列可以用关系运算>=或zeros 和ones 产生;正余弦用sin 或cos 产生;随机信号用rand 函数产生。 4.常用时域离散信号的运算

以()()()

10042≤≤-+-=n n n n x δδ为例

n1=0; n2=10; n01=2;n02=4 %显示范围从n1到n2,非零值位于2和4 n=n1:n2; %横坐标,写n=n1:1:n2也是一样的意思 x1=[(n-n01)==0]; %生成离散信号()2-n δ

x2=[(n-n02)==0]; %生成离散信号()4-n δ x3=x1+x2;

subplot(3,1,1); stem(n,x1,’filled ’); %绘制图形,x1子图,且圆点处用实心圆表示 subplot(3,1,2); stem(n,x2,’filled ’); %绘制图形,x2子图,且圆点处用实心圆表示 subplot(3,1,3); stem(n,x3,’filled ’); %绘制图形,x3子图,且圆点处用实心圆表示 四、实验内容

1. 在MATLAB 中实现()0n n -δ序列,显示范围21n n n ≤≤(函数命名为impseq(n0,n1,n2))。并利用该函数实现序列:()()()632-+-=n n n y δδ;103≤≤-n

函数文件:

function x=impseq(n0,n1,n2); n=n1:n2; x=[n==n0];

stem(n,x,'filled');

脚本文件:

n1=-3; n2=10; n01=3;n02=6 %显示范围从n1到n2,非零值位于2和4

n=n1:n2; %横坐标,写

n=n1:1:n2也是一样的意思

x1=[(n-n01)==0]; %生成离散信号 x2=[(n-n02)==0]; %生成离散信号

x3=2*x1+x2;

subplot(3,1,1); stem(n,x1,'filled'); %绘制图形,x1子图,且圆点处用实心圆表示 subplot(3,1,2); stem(n,x2,'filled'); %绘制图形,x2子图,且圆点处用实心圆表示subplot(3,1,3); stem(n,x3,'filled'); %绘制图形,x3子图,且圆点处用实心圆表示

结果:

2. 在MATLAB 中实现()0n n u -序列,显示范围21n n n ≤≤(函数命名为stepseq(n0,n1,n2))。并利用该函数实现序列:()()()20522≤≤--++=n n u n u n y

函数文件:

function x=stepseq(n0,n1,n2); n=n1:n2; x=[n>=n0];

stem(n,x,'filled');

脚本文件:

n1=-5; n2=20; n01=-2;n02=2 %显示范围从n1到n2

n=n1:n2; %横坐标,写

n=n1:1:n2也是一样的意思

x1=[(n-n01)]>=0]; %生成离散信号 x2=[(n-n02)]>=0]; %生成离散信号

x3=x1+x2;

subplot(3,1,1); stem(n,x1,'filled'); %绘制图形,x1子图,且圆点处用实心圆表示 subplot(3,1,2); stem(n,x2,'filled'); %绘制图形,x2子图,且圆点处用实心圆表示subplot(3,1,3); stem(n,x3,'filled'); %绘制图形,x3子图,且圆点处用实心圆表示

结果:

3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。如:

()()50

n

x n

=n

3.0≤

代码:

n=0:50;

x=0.3.^n;

stem(n,x,'filled')

结果:

4. 在MATLAB中用函数sin或cos产生正余弦序列,如:

()()

200π3.0cos 55ππ3.0sin 11≤≤+??? ?

?

+=n n n n x

代码:

n=0:pi/10:20;

x=11*sin(0.3*pi*n+pi/5)+5*cos(0.3*pi*n); figure(1)

stem(n,x,'filled')

结果:

02468101214161820

5. 已知()n n x 10

π

2cos 3=,试显示()()()3,3,+-n x n x n x 在200≤≤n 区间的波形。 代码:

n=0:20; figure(1)

x=3*cos(n*2*pi/10); x1=3*cos((n-3)*2*pi/10); x2=3*cos((n+3)*2*pi/10);

subplot(3,1,1); stem(n,x,'filled'); subplot(3,1,2); stem(n,x1,'filled'); subplot(3,1,3); stem(n,x2,'filled');

02468101214161820

02468101214161820

02468101214161820

6. 参加运算的两个序列维数不同,已知

()()6421≤≤-+=n n u n x ,()()8542≤≤--=n n u n x ,求()()()n x n x n x 21+=。 函数文件:

function x=stepseq(n0,n1,n2); n=n1:n2; x=[n>=n0];

stem(n,x,'filled');

脚本文件:

n11=-5; n12=8; n21=-4; n22=6; n01=-2;n02=4: n1=n11:n12;

x1=[(n1-n01)>=0]; n2=n21:n22; x2=[(n2-n02)>=0]; x3=x1+[0 x2 0 0];

subplot(3,1,1); stem(n1,x1,'filled'); subplot(3,1,2); stem(n2,x2,'filled'); subplot(3,1,3); stem(n1,x3,'filled');

结果:

五、思考题

1.1 产生单位脉冲序列和单位阶跃序列各有几种方法?如何使用?

δ有三种方法:

产生单位脉冲序列()n

(1)用MATLAB的关系运算式==

n1=-5; n2=5; n0=0; %显示范围从n1到n2

n=n1:n2; %横坐标

x=[n==0]; %生成离散信号x(n)

stem(n,x,’filled’); %绘制图形,且圆点处用实心圆表示

(2)用zeros函数和抽样点直接赋值

n1=-5; n2=5; n0=0; %显示范围从n1到n2

n=n1:n2; %横坐标

nt=length(n); %序列的长度

x=zeros(1,nt); %先产生全零的序列,对应-5到5

x(n0-n1+1)=1; %将n=0处的序列值赋值为1,n=0就是第(n0-n1+1)个值stem(n,x,'filled'); %绘制图形,且圆点处用实心圆表示

(3)用函数来实现,需要在m文件里面完成,函数名为impseq(n0,n1,n2) function x=impseq(n0,n1,n2);

n=n1:n2;

x=[n==n0];

stem(n,x,'filled');

单位阶跃序列的产生:

(1)可以用关系运算>=

(2)zeros和ones产生;用函数来实现

(3)需要在m文件里面完成,函数名为stepseq(n0,n1,n2))。

1.2 进行序列的相乘运算时应注意什么问题?

进行序列的相乘运算是让同一时刻对应两个数值相乘。进行相乘运算的序列长度应该一致,不一致时对较短序列补零使长度一致后再运算。

数字信号处理基础实验指导书

《数字信号处理》实验指导书 光电工程学院二○○九年十月

实验一离散时间信号分析 一、实验目的 1.掌握各种常用的序列,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。 3.掌握序列的相加、相乘、移位、反转等基本运算及计算机实现与作用。 4.掌握线性卷积软件实现的方法。 5.掌握计算机的使用方法和常用系统软件及应用软件的使用。 6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列来表示,其中代表序列的第n个数字,n代表时间的序列,n的取值范围为的整数,n取其它值没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号进行等间隔采样,采样间隔为T,得到一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反转、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将和的变量换成,变成和,再将以纵轴为对称轴反褶成。 (2)移位:将移位,得。当为正数时,右移位;当为负数时,左

移位。 (3)相乘:将和的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得。 三、主要实验仪器及材料 微型计算机、Matlab软件6.5或更高版本。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生 利用MATLAB或C语言编程产生和绘制下列有限长序列: (1)单位脉冲序列 (2)单位阶跃序列 (3)矩形序列 (4)正弦型序列 (5)任意序列 3.序列的运算 利用MATLAB编程完成上述两序列的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。 4.卷积运算 利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。 5.上机调试并打印或记录实验结果。 6.完成实验报告。 五、实验报告要求 1. 简述实验原理及目的。 2. 给出上述序列的实验结果。 3. 列出计算卷积的公式,画出程序框图,并列出实验程序清单 (可略)(包括必要的程序说明)。 4. 记录调试运行情况及所遇问题的解决方法。 5. 给出实验结果,并对结果做出分析。 6. 简要回答思考题。 1 如何产生方波信号序列和锯齿波信号序列? 2 实验中所产生的正弦序列的频率是多少?是否是周期序列?

数字信号处理实验一

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

《数字信号处理》课程研究性学习报告解读

《数字信号处理》课程研究性学习报告 指导教师薛健 时间2014.6

【目的】 (1) 掌握IIR 和FIR 数字滤波器的设计和应用; (2) 掌握多速率信号处理中的基本概念和方法 ; (3) 学会用Matlab 计算小波分解和重建。 (4)了解小波压缩和去噪的基本原理和方法。 【研讨题目】 一、 (1)播放音频信号 yourn.wav ,确定信号的抽样频率,计算信号的频谱,确定噪声信号的频率范围; (2)设计IIR 数字滤波器,滤除音频信号中的噪声。通过实验研究s P ,ΩΩ,s P ,A A 的选择对滤波效果及滤波器阶数的影响,给出滤波器指标选择的基本原则,确定你认为最合适的滤波器指标。 (3)设计FIR 数字滤波器,滤除音频信号中的噪声。与(2)中的IIR 数字滤波器,从滤波效果、幅度响应、相位响应、滤波器阶数等方面进行比较。 【设计步骤】 【仿真结果】

【结果分析】 由频谱知噪声频率大于3800Hz。FIR和IIR都可以实现滤波,但从听觉上讲,人对于听觉不如对图像(视觉)明感,没必要要求线性相位,因此,综合来看选IIR滤波器好一点,因为在同等要求下,IIR滤波器阶数可以做的很低而FIR滤波器阶数太高,自身线性相位的良好特性在此处用处不大。【自主学习内容】 MATLAB滤波器设计 【阅读文献】 老师课件,教材 【发现问题】(专题研讨或相关知识点学习中发现的问题): 过渡带的宽度会影响滤波器阶数N 【问题探究】 通过实验,但过渡带越宽时,N越小,滤波器阶数越低,过渡带越窄反之。这与理论相符合。 【仿真程序】 信号初步处理部分: [x1,Fs,bits] = wavread('yourn.wav'); sound(x1,Fs); y1=fft(x1,1024); f=Fs*(0:511)/1024; figure(1) plot(x1) title('原始语音信号时域图谱'); xlabel('time n'); ylabel('magnitude n'); figure(2) freqz(x1) title('频率响应图') figure(3) subplot(2,1,1); plot(abs(y1(1:512))) title('原始语音信号FFT频谱') subplot(2,1,2); plot(f,abs(y1(1:512))); title(‘原始语音信号频谱') xlabel('Hz'); ylabel('magnitude'); IIR: fp=2500;fs=3500; wp = 2*pi*fp/FS; ws = 2*pi*fs/FS; Rp=1; Rs=15;

数字信号处理实验一

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

数字信号处理课程实验报告4

数字信号处理课程实验报告 实验名称FIR数字滤 班级姓名 波器设计 教师姓名实验地点实验日期 一、实验内容 1、设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0Hz~1500Hz,阻带截 止频率2000Hz,通带波动不大于1%,阻带波动不大于1%,采样频率为8000Hz; 2、用一个仿真信号来验证滤波器的正确性(注意:要满足幅度要求和线性相位特性)。 二、实验目的 1、利用学习到的数字信号处理知识解决实际问题; 2、了解线性相位滤波器的特殊结构; 3、熟悉FIR数字滤波器的设计方法。 三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况) 计算机一台(安装MATLAB6.5版本或以上版本) 四、实验记录(以下1~5项必须完成,第6项为选择性试做) 1.原理基础 令希望设计的滤波器的传输函数是H(ejw,hd(n)是与其对应的单位脉冲响应。一般情况下,由Hd(ejw)求出hd(n),然后由Z变换求出滤波器的系统函数。但是通常Hd(ejw)在边界频率处有不连续点,这使得hd(n)是无限长的非因果序列,所以实际是不能实现的。为了构造一个长度为N的线性相位滤波器,可以将hd(n)截取一段来近似,并且根据线性相位的特点,需要保证截取后的序列关于(N-1)/2对称。设截取的一段为h(n),则 Wr(n)称为矩形窗函数。 当hd(n的对称中心点取值为(N-1)/2时,就可以保证所设计的滤波器具有线性相位。 2 实验流程

1.信号的谱分析 2.信号的采样 3.信号的恢复 3源程序代码 clc; clear all; close all; fs=700;%采样频率 f=[30 40];%截止频率 a=[1 0]; dev=[0.01 0.1]; % dev纹波 [n,fo,ao,w]=remezord(f,a,dev,fs);%n滤波器阶数fo过渡带起止频率ao频带内幅度————firpmord b=remez(n,fo,ao,w);%firpm b=b.*blackman(length(b))'; b=b; a=1; figure(1) % [H,W]=freqz(b,1,1024,Fs); % plot(W,20*log10(abs(H))); freqz(b,1,1024,fs);grid title('滤波器') grid %%%%%%%%%%%%%%%% fc=28; fcl1=50; fcl2=100; fcl3=150; N=1024; n=1:N; % x=2*cos(2*pi*fc/fs*n)+j*2*sin(2*pi*fc/fs*n)+cos(2*pi*fcl/fs*n)+j*sin(2*pi*fcl/fs*n)+1*r and(1,N); xc=2*cos(2*pi*fc/fs*n); x=2*cos(2*pi*fc/fs*n)+2*cos(2*pi*fcl1/fs*n)+2*cos(2*pi*fcl2/fs*n)+0.1*rand(1,N); % x=2*cos(2*pi*fc/fs*n); xfft=abs(fft(x,N));

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

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

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

数字信号处理实验三

实验三:离散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

实验一 基于Matlab的数字信号处理基本

实验一 基于Matlab 的数字信号处理基本操作 一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离 散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容: (一) 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0() 0(0 1)(≠=?? ?=n n n δ 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n); >>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1]) 程序运行结果如图1-1所示。 图1-1 单位冲激序列

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

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);

数字信号处理基础实验报告_

本科生实验报告 实验课程数字信号处理基础 学院名称地球物理学院 专业名称地球物理学 学生姓名 学生学号 指导教师王山山 实验地点5417 实验成绩 二〇一四年十一月二〇一四年十二月

填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求: ①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm, 左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体); 关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体); 正文部分采用三级标题; 第1章××(小二号黑体居中,段前0.5行) 1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行) 参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一生成离散信号并计算其振幅谱 并将信号进行奇偶分解 一、实验原理 单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。用Excel软件绘图显示计算结果。并将信号进行奇偶分解,分别得到奇对称信号h(n)-h(-n)与偶对称信号h(n)+h(-n)。用Excel 软件绘图显示计算结果。 二、实验程序代码 (1)离散抽样 double a,t; a=2*f*f*log(m); int i; for(i=0;i

郑州大学数字信号处理课程设计报告

实验一:基于DFT的数字谱分析以及可能出现的问题 一、实验目的: 1.进一步加深对DFT的基本性质的理解。 2.掌握在MATLAB环境下采用FFT函数编程实现DFT的语句用法。 3.学习用DFT进行谱分析的方法,了解DFT谱分析中出现的频谱泄露和栅栏效应现 象,以便在实际中正确应用DFT。 二、实验步骤: 1.复习DFT的定义、物理含义以及主要性质。 2.复习采用DFT进行谱分析可能出现的三个主要问题以及改善方案。 3.按实验内容要求,上机实验,编写程序。 4.通过观察分析实验结果,回答思考题,加深对DFT相关知识的理解。 三、上机实验内容: 1.编写程序产生下列信号供谱分析用: 离散信号: x1=R10(n) x2={1,2,3,4,4,3,2,1},n=0,1,2,3,4,5,6,7 x3={4,3,2,1, 1,2,3,4},n=0,1,2,3,4,5,6,7 连续信号: x4=sin(2πf1t)+sin(2πf2t) f1=100Hz, f2=120Hz,采样率fs=800Hz 2.对10点矩形信号x1分别进行10点、16点、64点和256点谱分析,要求256点 频谱画出连续幅度谱,10点、16点和64点频谱画出离散幅度谱,观察栅栏效应。 3.产生信号x2和x3分别进行8点、16点谱分析,画出离散幅度谱,观察两个信 号的时域关系和幅度谱的关系。 4.对双正弦信号x4以采样率fs=800Hz抽样,生成离散双正弦信号并画出连续波形; 对离散双正弦信号进行时域截断,截取样本数分别为1000、250、50。对不同样本的双正弦信号分别进行1024点谱分析,画出连续幅度谱,观察频谱泄露现象。

数字信号处理实验二

实验二: 用FFT 作谱分析 实验目的 (1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。 (2) 熟悉FFT 算法原理和FFT 子程序的应用。 (3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法, 了解可能出现的分析误差及其原因, 以便在实际中正确应用FFT 。 ● 实验步骤 (1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。 (2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。 (3) 编制信号产生子程序, 产生以下典型信号供谱分析用: (4) 编写主程序。 下图给出了主程序框图, 供参考。 本实验提供FFT 子程序和通用绘图子程序。 (5) 按实验内容要求, 上机实验, 并写出实验报告。 1423()()1,03()8470403()3470 x n R n n n x n n n n n x n n n =?+≤≤? =-≤≤?? ?-≤≤?? =-≤≤???456()cos 4 ()sin 8 ()cos8cos16cos20x n n x n n x n t t t π π πππ===++

●实验内容 (1) 对2 中所给出的信号逐个进行谱分析。 (2) 令x(n)=x4(n)+x5(n),用FFT计算8 点和16 点离散傅里叶变换, X(k)=DFT[x(n)] (3) 令x(n)=x4(n)+jx5(n),重复(2)。 ●实验报告要求 (1) 简述实验原理及目的。 (2) 结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。 (3) 总结实验所得主要结论。 (4) 简要回答思考题。 Matlab代码: 对六个所给信号进行谱分析的主程序(对信号进行64点的FFT变换): clc;clear all; N=64; x1=Signal_x1(N);

数字信号处理基础实验报告 (2)

成都理工大学 《信号处理基础》实验 开设时间:2013—2014学年第2学期

题目1:信号的产生和显示 一、实验目的: 认识基本信号 通过使用MATLAB 设计简单程序, 掌握对MATLAB 的基本使用方法 二、实验原理: 找出下列表达式的信号与:正弦信号、最小相位信号、最大相位信号、零相位信号的对应关系。 1、sin60t 2、e-60t sin60t 3、(1- e-60t)sin60t 4、e60t sin60t 三、实验内容: 产生上述信号的信号并显示 (1)t=[-pi/30:0.001:pi/30]; f=sin(60*t); plot(t,f) 产生图形如下:

(2)t=[0:0.001:pi/30]; f=exp(-60*t).*sin(60*t); plot(t,f) 产生图形如下:

(3)t=[-5*pi/30:0.001:5*pi/30]; f=(1-exp(-60*t)).*sin(60*t); plot(t,f) 产生图形如下: (4) t=[-pi/30:0.001:pi/30]; f=exp(6*t).*sin(60*t); plot(t,f) 产生如下波形:

四、实验结果与讨论: 讨论上述信号的特点 从第一个波形图可以看出,它的波形与正弦函数sin(t)的相像,只是相位上有改变,是一个正弦信号。最大相位信号的能量集中在后面,最小相位能量集中在前面,所以第二个是一个最小相位,第四个是一个最大相位信号。第三个由于波形在t>0时没有,所以是一个零相位信号。 题目2:频谱分析与显示 一、实验目的 初步认识频谱分析

《数字信号处理》课程实验题目

计电学院《数字信号处理》课程实验 适用专业:电子通信工程专业;实验学时:9 学时 一、实验的性质、任务和基本要求 (一)本实验课的性质、任务 数字信号处理课程实验是数字信号处理课程的有效的补充部分,通过实验,使学生巩固和加深数字信号处理的理论知识的理解和掌握,在实验过程中了解简单但是完整的数字信号处理的工程实现方法和流程。通过实践进一步加强学生独立分析问题和解决问题的能力、实际动手能力、综合设计及创新能力的培养。 (二)基本要求 掌握数字信号处理基本理论知识和滤波器设计及应用。 (三)实验选项

二、实验教学内容 实验一 1、实验目的和要求 1)加深理解时域采样定理、体会使用MATLAB的离散FT函数fft( )来解决涉及模拟信号的问题; 2)加深理解对带通信号的采样特性,学会采用MATLAB解决该问题; 3)加深理解在频率采样法中,过渡点对所设计滤波器特性的影响。 2、实验要求 1)提供MATLAB程序,画出每个步骤的曲线图; 2)写实验报告,包含有对所得结果进行分析和说明。 第一组:张毅雷凌峰白法聪覃昱滔刘强何新文 第二组:邓志强林盛勇李日胜黎少锋梁聪杨晨 实验二 1、实验目的和要求 (1)加深理解采用数字信号处理方法对模拟信号处理的过程、掌握使用MATLAB处理的方法;对一段音乐信号进行处理和输出;要求画出滤波前后语音信号时域波形、信号和滤波器的幅度频率特性曲线、相位频率特性曲线; (2)加深对截断效应的理解; (3)掌握使用MATLAB设计滤波器,并对语音信号处理的方法。对一段音乐信号进行处理和输出;要求画出滤波前后语音信号时域波形、信号和滤波器的幅度频率特性曲线、相位频率特性曲线。 2、实验要求 1)提供MATLAB程序,画出每个步骤的曲线图; 2)写实验报告,包含有对所得结果进行分析和说明。 第九组:汪涛张汉毅巫金敏张经中柳泽举 第六组:罗涛梁乐杰黄乃生 实验三 1、实验目的和要求 掌握采用MATLAB数字滤波器设计软件编制方法。软件要求在界面内有不同类型(高通低通带通带阻)滤波器的选择、或者只对低通滤波器采用不同方法设

数字信号处理实验一.

实验一离散傅里叶变换的性质 一、实验目的 1、掌握离散傅里叶变换的性质,包括线性特性、时移特性、频移特性、对称性和循环卷积等性质; 2、通过编程验证傅里叶变换的性质,加强对傅里叶变换性质的认识。二、实验原理和方法 1. 线性特性 1212DFT[((]((ax n bx n aX k bX k +=+ 2. 时移特性 DFT[(](DFT[(]( km km x n m W X k x n m W X k ?+=?= 3. 频移特性 ((nl N IDFT X k l IDFT X k W +=???????? 4. 对称性 设由x(n开拓成的周期序列为 (p x n 则(((p pe po x n x n x n =+ 偶序列(((*1 2 pe p p x n x n x N n ??= +???奇序列(((*12 po p p x n x n x N n ??=

????将(pe x n 和(po x n 截取主周期,分别得 (((pet pe N x n x n R n = (((pot po N x n x n R n = 则(((((p N pet pot x n x n R n x n x n ==+ x(n序列的实部和虚部的离散立叶变换 ({} (Re pet DFT x n X k =???? ({} (Im pot DFT j x n X k =???? [][] (((((((((((arg (arg (R R R I I I X k X k X N k X k X k X N k X k X k X N k X k X N k X k X k ?=?=?=?=?=??=??=?=?? 5. 循环卷积 (3123121 (((((x n x n x n X k X k X k N =?= ?有限长序列线性卷积与循环卷积的关系 X1(n和x2(n的线性卷积: 11 31 2 1 2 0(((((N m m x n x m x n m x m x n ?∞=?∞

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

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

第十章上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 functiontstem(xn,yn) %时域序列绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) n=0:length(xn)-1; stem(n,xn,'.');boxon xlabel('n');ylabel(yn); axis([0,n(end),min(xn),*max(xn)]) 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可

相关文档
最新文档