华南理工大学数字信号处理matlab实验(1)

华南理工大学数字信号处理matlab实验(1)
华南理工大学数字信号处理matlab实验(1)

数字信号处理matlab实验

学院:电子与信息

专业班级: 5

学号:201130302068

姓名:梁敏健

实验名称:离散时间信号与系统分析、滤波器实验日期:2013.10

实验1 离散时间信号与系统分析(2课时)

题目一:

以下程序中分别使用conv和filter函数计算h[n] = [3 2 1 -2 1 0 -4 0 3]和x[n] = [1 -2 3 -4 3 2 1]的卷积y和y1,并分析y和y1是否有差别

代码:

h = [3 2 1 -2 1 0 -4 0 3];

x = [1 -2 3 -4 3 2 1];

y = conv(h,x);

n = 0:14;

subplot(2,1,1);

stem(n,y);

xlabel('Time index n'); ylabel('Amplitude');

title('Output Obtained by Convolution'); grid;

x1 = [x zeros(1,8)];

y1 = filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel('Time index n'); ylabel('Amplitude');

title('Output Generated by Filtering'); grid;

可见,y与y1没有差别。

题目二:

编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。要求分别用filter、conv、impz三种函数完成。

,

源代码:

对,,

单位冲激响应

a1=[1,0.75,0.125];

b1=[1,-1];

n=0:20;

x1=[1 zeros(1,20)];

y1filter=filter(b1,a1,x1);

subplot(2,2,1);

stem(n,y1filter);

title('y1filter');

xlabel('x');

ylabel('y');

title('impulse response generated by filter')

x1_1=[1 zeros(1,10)];

[h]=impz(b1,a1,10);

y1conv=conv(h,x1_1);

n=0:19;

subplot(2,2,2);

stem(y1conv) ;

title('impulse response generated by conv')

h=impz(b1,a1,21);

subplot(2,2,3);

stem([0:20], h);

title('impulse response generated by impz') 结果:

单位阶跃:

a1=[1,0.75,0.125];

b1=[1,-1];

n=0:20;

x2=ones(1,21);

y1filter=filter(b1,a1,x2);

subplot(2,2,3);

stem(n,y1filter);

title('y1filter_step');

xlabel('x');

ylabel('y');

title('impulse response generated by filter')

x2=ones(1,21);

[h]=impz(b1,a1,20);

y1=conv(h,x2);

y1conv=y1(1:21);

n1=0:20;

subplot(2,2,2);

stem(n1,y1conv,'filled');

title('y1conv');

xlabel('n');

ylabel('y1[n]');

title('impulse response generated by conv')

a=[1,0.75,0.125];

b=1;

h=impz(b,a,21);

subplot(2,2,1);

stem([0:20], h);

title('impulse response generated by impz') 结果:

单位冲激响应:

a2=1;

b2=[0 0.25*ones(1,4)];

n=0:9;

x1=[1 zeros(1,9)];

y2filter=filter(b2,a2,x1);

subplot(2,2,1);

stem(n,y2filter);

title('y2filter');

xlabel('x');

ylabel('y')

title('impulse response generated by filter')

x2=[1 zeros(1,5)];

[h]=impz(b2,a2,5);

y2conv=conv(h,x2);

subplot(2,2,2);

stem(n,y2conv,'filled')

title('impulse response generated by conv')

h=impz(b2,a2,10);

subplot(2,2,3);

stem([0:9], h);

title('impulse response generated by impz') 结果:

单位阶跃

a1=1;

b1=[0 0.25*ones(1,4)];

n=0:20;

x1=ones(1,21);

y2filter=filter(b1,a1,x1);

subplot(2,2,1);

stem(n,y2filter);

title('y2filter_step');

xlabel('x');

ylabel('y');

title('impulse response generated by filter')

y2=conv(b1,x1);

y2conv=y2(1:21);

subplot(2,2,2);

stem(n,y2conv,'filled');

title('y2conv');

xlabel('n');

ylabel('y[n]');

title('impulse response generated by conv')

n=0:20;

b=[0,0.25,0.5,0.75,ones(1,17)];

a=1;

h=impz(b,a,21);

subplot(2,2,3);

stem([0:20], h);

title('impulse response generated by impz')

题目三

2N点实数序列

N=64。用一个64点的复数FFT程序,一次算出,并绘出的图形。

代码:

N=64;n=[0:1:N-1];

n1=2*n;n2=2*n+1;k=[0:1:N-1];

xn1=cos(2*pi/N*7*n1)+1/2*cos(2*pi/N*19*n1);

xn2=cos(2*pi/N*7*n2)+1/2*cos(2*pi/N*19*n2);

XK1=fft(xn1);XK2=fft(xn2);

X1=XK1+exp(-j*pi*k/N).*XK2;

X2=XK1-exp(-j*pi*k/N).*XK2;

X1=[X1 zeros(1,N)];X2=[zeros(1,N) X2];

XK=X1+X2;

k=[0:1:2*N-1];

XK=abs(XK); stem(k,XK);

xlabel('k');ylabel('|X(k)|');

title('X(k)=DFT[x(n)]2N')

题目四:

已知某序列在单位圆上的N=64等分样点的Z变换为:

。用N点IFFT程序计算出和。

代码:

N=64;

k=[0:1:63];

xk=1./(1-0.8*exp(-j*2*pi*k/N));

xn=ifft(xk,64);

stem(k,xn)

xlabel('k');ylabel('x(n)');

disp('xnDòáD');disp(xn);

xn序列

1.0000 - 0.0000i 0.8000 + 0.0000i 0.6400 + 0.0000i 0.5120 + 0.0000i

0.4096 + 0.0000i 0.3277 + 0.0000i 0.2621 + 0.0000i 0.2097 + 0.0000i

0.1678 + 0.0000i 0.1342 + 0.0000i 0.1074 - 0.0000i 0.0859 + 0.0000i

0.0687 - 0.0000i 0.0550 - 0.0000i 0.0440 - 0.0000i 0.0352 - 0.0000i

0.0281 - 0.0000i 0.0225 - 0.0000i 0.0180 - 0.0000i 0.0144 - 0.0000i

0.0115 - 0.0000i 0.0092 - 0.0000i 0.0074 - 0.0000i 0.0059 - 0.0000i

0.0047 - 0.0000i 0.0038 - 0.0000i 0.0030 - 0.0000i 0.0024 - 0.0000i

0.0019 - 0.0000i 0.0015 - 0.0000i 0.0012 - 0.0000i 0.0010 + 0.0000i

0.0008 + 0.0000i 0.0006 + 0.0000i 0.0005 + 0.0000i 0.0004 + 0.0000i

0.0003 + 0.0000i 0.0003 + 0.0000i 0.0002 + 0.0000i 0.0002 + 0.0000i

0.0001 + 0.0000i 0.0001 + 0.0000i 0.0001 + 0.0000i 0.0001 + 0.0000i

0.0001 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 - 0.0000i

0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 - 0.0000i

0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i

0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i

0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i

实验2 滤波器设计(2课时)

1、求系统

的零、极点和幅度频率响应和相位响应。

代码:

num=[1 -0.1 -0.3 -0.3 -0.2];

den=[1 0.1 0.2 0.2 0.5];

[z,p,k]=tf2zp(num,den);

m=abs(p);

disp('零点');

disp(z);

disp('极点');

disp(p);

disp('增益系数');

disp(k);

sos=zp2sos(z,p,k);

disp('二阶节');

disp(real(sos));

zplane(num,den)

零点

0.9615

-0.5730

-0.1443 + 0.5850i

-0.1443 - 0.5850i

极点

0.5276 + 0.6997i

0.5276 - 0.6997i

-0.5776 + 0.5635i

-0.5776 - 0.5635i

增益系数

1

二阶节

1.0000 -0.3885 -0.5509 1.0000 1.1552 0.6511

1.0000 0.2885 0.3630 1.0000 -1.0552 0.7679

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

数字信号处理实验一

实验一 离散时间信号分析 班级 信息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;

Matlab上机实验

Matlab 上机实验 一、 实验目的 1、 掌握绘制MATLAB 二维、三维和特殊图形的常用函数; 2、 熟悉并掌握图像输入、输出及其常用处理的函数。 二、 实验内容 1 绘制函数的网格图和等高线图。42 2cos cos y x ye x z +-= 其中x 的21个值均匀分布在[-5,5]范围,y 的31个值均匀分布在[0,10],要求将产生的网格图和等高线图画在同一个图形窗口上。 2 绘制三维曲面图,使用纯铜色调色图阵进行着色,并进行插值着色 处理。?????===s z t s y t s x sin sin cos cos cos 230,20ππ≤≤≤≤t s 3 已知 ???????>++≤+=0),1ln(210,22x x x x e x y π 在-5<=x<=5区间绘制函数曲线。 4 已知y1=x2,y2=cos(2x),y3=y1*y2,其中x 为取值-2π~2π的等差数列(每次增加0.02π),完成下列操作: a) 在同一坐标系下用不同的颜色和线型绘制三条曲线,给三条曲线添加图例; b) 以子图形式,分别用条形图、阶梯图、杆图绘制三条曲线,并分别给三个图形添加标题“y1=x^2”,“y2=cos(2x)”和“y3=

y1*y2”。 5 在xy 平面内选择区域[][],,-?-8888 ,绘制函数 z =的三 种三维曲面图。 6 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x 轴,y 轴,标题为“正弦余弦函数图象”. 7 分别用线框图和曲面图表现函数z=cos(x)sin(y)/y ,其中x 的取值为 [-1.5pi,1.5pi],y=x ,要求:要有标题、坐标轴标签 8 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成) 9 2 2y x xe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口 的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图 10 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。 11 用sphere 函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。 12 以自己的个人画像或照片(JPG)为对象,读入该图像并了解图像的信息,同时利用所学函数对其进行灰度、二值、旋转及缩放等处理,并以PNG 形式输出。

数字信号处理实验

实验一 离散傅里叶变换(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)

dsp数字信号处理实验报告华工

实验1 常见离散信号产生与实现 一、实验目得 1、加深对常用离散信号得理解; 2、熟悉使用MATLAB在时域中产生一些基本得离散时间信号。 二、实验原理 1、单位抽样序列 在MATLAB中可以利用函数实现。 2、单位阶越序列 在MATLAB中可以利用函数实现: 3、正弦序列 在MATLAB中实现过程如下:

4、复指数序列 在MATLAB中实现过程如下: 5、指数序列 在MATLAB中实现过程如下: 三、预习要求 1、预先阅读实验讲义(MATLAB基础介绍); 2、讨论正弦序列、复指数序列得性质。 A.绘出信号,当、时、、 时得信号实部与虚部图;当时呢?此时信号周期为多少?程序如下: titlez1=-1/12+j*pi/6; titlez2=1/12+j*pi/6; z3=1/12; z4=2+j*pi/6; z5=j*pi/6;

n=0:20; x1=exp(titlez1*n); x2=exp(titlez2*n); x3=exp(z3*n); x4=exp(z4*n); x5=exp(z5*n); subplot(5,2,1); stem(n,real(x1)); xlabel('n');ylabel('real(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,2); stem(n,imag(x1)); xlabel('n');ylabel('imag(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,3); stem(n,real(x2)); xlabel('n');ylabel('real(x2)'); title('z2=1/12+j*pi/6时') subplot(5,2,4); stem(n,imag(x2)); xlabel('n');ylabel('image(x2)'); title('z2=1/12+j*pi/6时') subplot(5,2,5); stem(n,real(x3)); xlabel('n');ylabel('real(x3)'); title('z3=1/12时') subplot(5,2,6); stem(n,imag(x3)); xlabel('n');ylabel('image(x3)'); title('z3=1/12时')

matlab上机实验指导书

MATLAB应用基础实验指导书

第一章 MATLAB及其工作环境介绍 (1) 1.1 MATLAB简介 (1) 1.2 MATLAB的工作环境介绍 (1) 1.3 MATLAB的基本管理命令 (4) 第二章 MATLAB的数值计算功能 (5) 2.1 变量与赋值语句 (5) 2.2 MATLAB矩阵 (5) 2.3 MATLAB表达式 (10) 2.4 MATLAB常用数学函数 (11) 2.5 矩阵的基本运算 (12) 2.6 数组运算 (16) 2.7 多项式及其运算 (17) 第三章 MATLAB程序设计入门 (19) 3.1 M文件 (19) 3.2 数据的输入输出 (21) 3.3 全局变量和局部变量 (23) 3.4 程序流程控制 (23) 第四章 MATLAB的符号运算功能 (28) 4.1 建立符号对象 (28) 4.2 符号算术运算 (29) 4.3 符号微积分运算 (32) 4.4 符号函数的可视化 (34) 第五章 MATLAB的可视化功能 (37) 5.1 二维图形 (37) 5.2绘制三维图形 (42) 5.3 特殊坐标图形 (44) 5.4 图形句柄 (45)

第一章 MATLAB及其工作环境介绍 1.1 MATLAB简介 MATLAB是matrix和laboratory前三个字母的缩写,意思是实验室矩阵。MATLAB 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,经过十多年的发展与完善,MATLAB已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图象处理系统、MATLAB数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的体系。MATLAB由“主包”和三十多个扩展功能和应用学科性的工具箱组成。 MATLAB具有以下基本功能: ●数值计算功能 ●符号计算功能 ●图形处理及可视化功能 ●可视化建模及动态仿真功能 MATLAB语言是以矩阵计算为基础的程序设计语言,语法规则简单易学。其指令格式与数学表达式非常相近,用MATLAB编写程序犹如在便笺上列写公式和求解,因而被称为“便笺式”的编程语言。另外,MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高效率,其程序编译和执行速度远远超过了传统的C和FORTRAN语言,因而用MATLAB 编写程序,往往可以达到事半功倍的效果。在图形处理方面,MATLAB可以给数据以二维、三维乃至四维的直观表现,并在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使技术人员对大量原始数据的分析变得轻松和得心应手。 MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎,并成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前MATLAB已成为国际上公认的最优秀的科技应用软件。 1.2 MATLAB的工作环境介绍 一、MATLAB的工作环境

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

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

华南理工大学数字信号处理第三四次试验答案

实验3 FFT算法的应用 一、实验目的 1、加深对离散信号的DFT的理解; 2、在MATLAB中实现FFT算法。 二、实验内容 1、2N点实数序列 N=64。用一个64点的复数FFT程序,一次算出,并绘出的图形。

程序代码如下: N=64; n1=0:2:(2*N-1);n2=1:2:(2*N-1); x1=cos(2*pi*7*n1/N)+1/2*cos(2*pi*9*n1/N); x2=cos(2*pi*7*n2/N)+1/2*cos(2*pi*9*n2/N); X1=fft(x1,N);X2=fft(x2,N); X=X1+X2; Y=abs(X); stem(Y); 10203040506070

2、已知某序列在单位圆上的N=64等分样点的Z 变换为: 。 用N 点IFFT 程序计算出和。 程序代码如下: N=64; k=0:1:N-1; X=1./(1-0.8*exp(-j*2*pi*k/N)); x=ifft(X,N); stem(abs(x)); 0.20.40.60.811.21.4

三、利用至少两种频率估计方法编程求给定信号的频率(要求运算 过程中使用小于等于128点的FFT) 无噪声、20dB、15dB、10dB、5dB、0dB、-5dB 已知信号的采样率Fs= 4000 Hz 方法一:谱峰检测法 程序代码如下: function f=wxk3 load signal; N=128; Fs=4000; f=zeros(1,7); y=abs(fft(x,N)); [m,n]=max(y); f(1)=(n-1)*Fs/N; SNR=[20 15 10 5 0 -5]; for i=1:6 x=awgn(x,SNR(i)); y=abs(fft(x,N)); [m,n]=max(y); f(i+1)=(n-1)*Fs/N; end plot(f);hold;

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

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

数字信号处理实验三

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

2018华工嵌入式控制系统随堂作业

随堂练习 随堂练习提交截止时间:2017-06-25 00:00:00 当前页有10题,你已做10题,已提交10题,其中答对10题。 1.最早的单片机是Intel公司的(),它出现在1976年。 A.8088 B.8048 C.8058 D.8068 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 2.下面哪种操作系统不属于商用操作系统。() A. Windows 7 B. Linux C. VxWorks D. WinCE 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 3.下面哪点不是嵌入式操作系统的特点。() A. 内核精简 B. 专用性强 C. 功能强大 D. 高实时性 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 4.迄今为止,()系列的单片机仍然是最为成功的单片机芯片之一,在各种产品中有着非常广泛的应用。 A.8088 B.8048 C.8058 D.8051 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 5.嵌入式系统的核心是()和嵌入式操作系统。 A.嵌入式微处理器 B.存储器 C.单片机 D.内部总线 答题: A. B. C. D. (已提交)

参考答案:A 问题解析: 6.下面哪种嵌入式系统是属于软实时系统。() A.WinCE B.VxWorks C.Nucleus D.eCOS 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 7.下面哪种嵌入式系统是属于硬实时系统。() A.WinCE B.RTLinux C.Windows XP D.eCOS 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 8. Embedded Visual Studio是() A.嵌入式硬件开发工具 B.嵌入式软件开发工具 C.嵌入式调试工具 D.嵌入式编译工具 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 9.下面哪些不属于嵌入式控制系统的典型应用。() A.智能家居 B. 智能手机 C. 智能控制 D. 智能数据挖掘 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 10.下面哪个系统属于嵌入式系统()。 A.“天河一号”计算机系统 B.IBMX200笔记本电脑 C.联想S10上网本 D.Iphone手机 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 随堂练习提交截止时间:2017-06-25 00:00:00

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

数字信号处理实验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))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

2012数字信号处理实验

实验1 常见离散信号产生和实现 一、实验目的 1、加深对常用离散信号的理解; 2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。 二、实验原理 1、单位抽样序列 在MATLAB中可以利用函数实现。 2、单位阶越序列 在MATLAB中可以利用函数实现: 3、正弦序列 在MATLAB中实现过程如下: 4、复指数序列

在MATLAB中实现过程如下: 5、指数序列 在MATLAB中实现过程如下: 三、预习要求 1、预先阅读实验讲义(MATLAB基础介绍); 2、讨论正弦序列、复指数序列的性质。 A.绘出信号,当、时、、 时的信号实部和虚部图;当时呢?此时信号周期为多少? B.绘出信号的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。 3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。 四、实验内容 编制程序产生上述5种信号,长度可输入确定,函数需要的参数可输入确定,并绘出其图形。

实验2 离散系统的时域分析 一、实验目的 1、熟悉并掌握离散系统的差分方程表示法; 2、加深对冲激响应和卷积分析方法的理解。 二、实验原理 在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下: 其输入、输出关系可用以下差分方程描述: 输入信号分解为冲激信号, 记系统单位冲激响应,则系统响应为如下的卷积计算式: 当时,h[n]是有限长度的(),称系统为FIR系统;反之,称系统为IIR系统。 三、预习要求

1、在MATLAB中,熟悉利用函数实现差分方程的仿真; 2、在MATLAB中,熟悉用函数计算卷积,用求系统冲激响应的过程。 四、实验内容 1、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零? % Program P2_7 clf; h = [3 2 1 -2 1 0 -4 0 3]; %impulse response x = [1 -2 3 -4 3 2 1]; %input sequence y = conv(h,x); n = 0:14; subplot(2,1,1); stem(n,y); xlabel('Time index n'); ylabel('Amplitude'); title('Output Obtained by Convolution'); grid; x1 = [x zeros(1,8)]; y1 = filter(h,1,x1); subplot(2,1,2); stem(n,y1); xlabel('Time index n'); ylabel('Amplitude'); title('Output Generated by Filtering'); grid; 2、编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。要求分别用 filter、conv、impz三种函数完成。 , ,

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

MATLAB上机实验练习题答案

数学建模 MATLAB上机实验练习题 1、给出一个系数矩阵A[234;541;132],U=[123],求出线性方程组的一个精确解。 2、给出两组数据x=[00.30.81.11.62.3]’y=[0.820.720.630.600.550.50]’,我们可以简单的 认为这组数据在一条衰减的指数函数曲线上,y=C1+C2e-t通过曲线拟合求出这条衰减曲线的表达式,并且在图形窗口画出这条曲线,已知的点用*表示。 3、解线性方程 4、通过测量得到一组数据: 5、已知一组测量值 6、从某一个过程中通过测量得到: 分别采用多项式和指数函数进行曲线拟合。 7、将一个窗口分成四个子窗口,分别用四种方法做出多峰函数的表面图(原始数据法,临近 插值法,双线性插值法,二重三次方插值法) 8、在同一窗口使用函数作图的方法绘出正弦、余弦、双曲正弦、双曲余弦。分别使用不同的 颜色,线形和标识符。 9、下面的矩阵X表示三种产品五年内的销售额,用函数pie显示每种产品在五年内的销售额

占总销售额的比例,并分离第三种产品的切片。 X=19.322.151.6 34.270.382.4 61.482.990.8 50.554.959.1 29.436.347.0 10、对应时间矢量t,测得一组矢量y t00.30.8 1.1 1.6 2.3 y0.50.82 1.14 1.25 1.35 1.40 采用一个带有线性参数的指数函数进行拟合,y=a0+a1e-t+a2te-t,利用回归方法求出拟合函数,并画出拟合曲线,已知点用圆点表示。 11、请创建如图所示的结构数组(9分) 姓名编号指标 江明顺071023身高:176,体重:82 于越忠060134身高:168,体重:74 邓拓050839身高:182,体重:77 12、创建如图所示的元胞数组。(9分) 13、某钢材厂从1990年到2010年的产量如下表所示,请利用三次样条插值的方法计算1999年该钢材厂的产量,并画出曲线,已知数据用‘*’表示。要求写出达到题目要求的MATLAB 操作过程,不要求计算结果。 年份19901992199419961998200020022004200620082010 产量(万吨)75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.344 14、在一次化学动力学实验中,在某温度下乙醇溶液中,两种化合物反应的产物浓度与反应时间关系的原始数据如下,请对这组数据进行三次多项式拟合,并画出拟合曲线,已知数据如下。 time=[2.55.07.510.013.017.020.030.040.050.060.070.0] res=[0.290.560.771.051.361.522.002.272.813.053.253.56]

相关文档
最新文档