数字信号处理实验报告 基于MATLAB.docx

上传人:b****8 文档编号:12402673 上传时间:2023-06-05 格式:DOCX 页数:59 大小:485.56KB
下载 相关 举报
数字信号处理实验报告 基于MATLAB.docx_第1页
第1页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第2页
第2页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第3页
第3页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第4页
第4页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第5页
第5页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第6页
第6页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第7页
第7页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第8页
第8页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第9页
第9页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第10页
第10页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第11页
第11页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第12页
第12页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第13页
第13页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第14页
第14页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第15页
第15页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第16页
第16页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第17页
第17页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第18页
第18页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第19页
第19页 / 共59页
数字信号处理实验报告 基于MATLAB.docx_第20页
第20页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字信号处理实验报告 基于MATLAB.docx

《数字信号处理实验报告 基于MATLAB.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告 基于MATLAB.docx(59页珍藏版)》请在冰点文库上搜索。

数字信号处理实验报告 基于MATLAB.docx

数字信号处理实验报告基于MATLAB

课程名称:

数字信号处理实验

实验地点:

综合楼C407

专业班级:

2014级生物医学工程

姓名:

leifeng

学号:

指导老师:

 

第一次实验

第一章离散时间信号的时域分析

 

Q1.1运行程序P1.1,以产生单位样本序列u[n]并显示它

clf;

n=-10:

20;

u=[zeros(1,10)1zeros(1,20)];

stem(n,u);

xlabel('时间序号');ylabel('振幅');

title('单位样本序列');

axis([-102001.2]);

Q1.2命令clf,axis,title,xlabel和ylabel的作用是什么

clf:

清除图形窗口内容;

axis:

规定横纵坐标的范围;

title:

使图像面板上方显示相应的题目名称;

xlable:

定义横坐标的名字;

ylable:

定义纵坐标的名字。

Q1.3修改程序P1.1以产生带有延时11个样本的延迟单位样本序列ud[n],运行修改的程序并且显示产生的序列。

clf;

n=0:

30;

u=[zeros(1,11)1zeros(1,19)];

stem(n,u);

xlabel('时间序号');ylabel('振幅');

title('单位样本序列');

axis([03001.2]);

Q1.5修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。

运行修改后的程序并显示产生的序列。

clf;

n=-10:

20;

sd=[zeros(1,3)1ones(1,27)];

stem(n,sd);

xlabel('时间序号');ylabel('振幅');

title('单位样本序列');

axis([-102001.2]);

 

Q1.6运行程序P1.2,以产生复数值的指数序列。

clf;

c=-(1/12)+(pi/6)*i;

K=2;

n=0:

40;

x=K*exp(c*n);

subplot(2,1,1);

stem(n,real(x));

xlabel('时间序号n');ylabel('振幅');

title('实部');

subplot(2,1,2);

stem(n,imag(x));

xlabel('时间序号n');ylabel('振幅');

title('虚部');

Q1.7哪个参数控制该序列的增长或衰减率?

哪个参数控制该序列的振幅?

参数C控制序列增长或衰减率参数K控制序列的振幅

参数C控制该序列的增长或衰减率;参数K控制该序列的振幅。

Q1.8若参数C更改为(1/12)+(pi/6)*i,将会发生什么情况?

Q1.9运算符real和imag的作用是什么?

运算符real和imag的作用分别是提取运算数值x实部和虚部。

Q1.10命令subplot的作用是什么?

subplot(a,b,c),其中a代表图像分a行显示,b代表图像分b列显示,c代表第a行的第b列图像。

Q1.11运行程序P1.3以产生实数值的指数序列

clf;

n=0:

35;a=1.2;K=0.2;

x=K*a.^n;

stem(n,x);

xlabel('时间序号n');ylabel('振幅');

Q1.12哪个参数控制该序列的增长或衰减率?

哪个参数控制该序列的振幅?

参数a控制该序列的增长或者衰减率,参数k控制该序列的振幅。

Q1.13算术运算符^和.^之间的区别是什么?

运算符“^”表示a的指数是n这个序列;运算符”.^”表示a的指数分别是n这个序列中的每一个数字,即对应的每一个元素。

Q1.14若参数a小于1,会发生什么情况?

将参数a更改为0.9,将参数k更改成20,再次运行程序P1.3。

clf;

n=0:

35;a=0.9;K=20;

x=K*a.^n;

stem(n,x);

xlabel('时间序号n');ylabel('振幅');

Q1.16

Q1.15该序列的长度是多少?

怎样才能改变它?

该序列的长度是35;通过改变“n=0:

35”中的“35”这个数字可以改变序列的长度。

Q1.16使用MATLAB命令sum(s.*s)可计算用向量s表示的实数序列s[n]的能量。

试求在习题Q1.11和习题Q1.14中产生的实数值指数序列x[n]的能量。

clf;

n=0:

35;a=0.9;K=20;

x=K*a.^n;

stem(n,x);

sum(s.*s)

xlabel('时间序号n');ylabel('振幅');

结果:

ans=2.3106e+004

clf;

n=0:

35;a=1.2;K=0.2;

x=K*a.^n;

s=stem(n,x);

sum(s.*s)

xlabel('时间序号n');ylabel('振幅');

结果:

ans=2.3719e+004

Q1.17运行程序P1.4,以产生正弦序列并显示它。

n=0:

40;

f=0.1;

phase=0;

A=1.5;

arg=2*pi*f*n-phase;

x=A*cos(arg);

clf;

stem(n,x);

axis([040-22]);

grid;

title('正弦序列');

xlabel('时间序号n');

ylabel('振幅');

axis;

Q1.18该序列的频率是多少?

怎样可以改变它?

哪个参数控制该序列的相位?

哪个参数控制该序列的振幅?

该序列的周期是多少?

该序列的频率是0.1Hz;通过改变f的值可以此正弦序列的频率;参数phase控制该序列的初相位;参数A控制该序列的振幅;该序列的周期是10s。

Q1.19该序列的长度是多少?

怎样可以改变它?

该序列的长度是41个时间单位,通过改变n的参数可以改变该序列的长度。

Q1.21axis的作用axis和grid命令的作用是什么

是规定像显图示的横纵坐标的范围;grid的作用是显示图像上面的“网格”。

Q1.22修改程序P1.4,以产生一个频率为0.9的正弦序列并显示它。

把此序列和习题Q1.17中产生的序列相比较。

修改程序P1.4,以产生一个频率为1.1的正弦序列并显示它。

把此序列与Q1.17中产生的序列相比较,评价你的结果。

该图像与f=0.1时的图像一样,因为该正弦序列的最小周期是2pi的,而当f=0.9与f=1.1时正好是f=0.1的整数倍。

Q1.23修改上述程序,以产生长度为50,频率为0.08,振幅为2.5,相移为90度的一个正弦序列并显示它。

该序列的周期是多少?

n=0:

50;

f=0.08;

phase=pi/2;

A=2.5;

arg=2*pi*f*n-phase;

x=A*cos(arg);

clf;

stem(n,x);

axis([040-33]);

grid;

title('正弦序列');

xlabel('时间序号n');

ylabel('振幅');

axis;

周期为12.5s

Q1.24在程序P1.4中用plot命令代替stem命令,运行新程序。

新图形与Q1.7中产生的图形有什么区别?

原图像是离散的,新图像是连续的,说明plot命令是用平滑的线将各点连接起来产生连续波,而stem命令则是用各点来产生离散波。

Q1.25在程序P1.4中用stairs命令代替stem命令,运行新程序。

新图形与Q1.17和Q1.24中产生的图形有什么区别?

stairs函数是用直线将相应的点连接起来,类似于阶梯状。

Q1.26编写一个MATLAB程序,以产生并显示一个长度为100的随机信号,该信号在区间[-2,2]中均匀分布。

clf;

x=4*rand(1,100)-2;

stem(x);

Q1.27编写一个MATLAB程序,以产生并显示一个长度为75的高斯随机信号,该信号正太分布且均值为0,方差为3

clf;

x=3*randn(1,75);

stem(x);

Q1.36运行程序P1.7以产生扫频正弦序列x[n]

n=0:

100;

a=pi/2/100;

b=0;

arg=a*n.*n+b*n;

x=cos(arg);

clf;

stem(n,x);

axis([0,100,-1.5,1.5]);

title('扫频正弦信号');

xlabel('时间序号n');

ylabel('振幅');

grid;axis;

第二次实验

第二章离散时间系统的时域分析

Q2.1对M=2,生成输入x[n]=s1[n]+s2[n]的输出信号,输入x[n]的那个分量被改离散时间系统抑制?

答:

x[n]被该离散时间系统抑制的分量为信号#2的高频分量

Q2.2.线性时不变系统变为y[n]=0.5(x[n]–x[n–1])后,对输入x[n]=s1[n]+s2[n]的影响是什么?

答:

对于输入的影响是-该系统现在是一个高通滤波器。

它通过高频率的输入分量信号#2,而不是低频分量信号#1.

Q2.3s1[n]和s2[n]频率取其他值结果。

M=4f1=0.1f2=0.9

M=10f1=0.1f2=0.9

Q2.4修改程序P2.1,用一个长度为101、最低频率为0、最高频率为0.5的扫频正弦信号作为输入信号,计算其输出信号。

你能用该系统对扫频信号的响应来解释Q2.1和Q2.2的结果吗?

Q2.7运行程序P2.3,对由加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?

该系统是线性系统吗?

答:

可以看出这加权输入与输出的图像几乎是相差无几的,观察差信号的图像,纵坐标已达到10^(-15),可以看出是相差无几的,所以该系统是线性系统。

Q2.8用三组不同的权系数a和b的值以及三组不同的输入频率重做Q2.7

答:

改动后a和b值及输入频率和相应的运行结果均在下图:

根据图进行分析,加权输入与输出的图像几乎是相差无几的,观察差信号的图像,纵坐标都达到10^(-15)或10^(-14),可以看出是相差无几的。

所以系统为线性系统。

1.

2.

3.

Q2.9初始条件非零时图像:

答:

观察上图,看差信号,振幅达到3,可见加权输入与输出的图像相差较大,不是线性系统。

Q2.11假另一个系统为y[n]=x[n]x[n-1]修改程序P2.3,计算这个系统的输出序列y1[n],y2[n]和y[n]。

比较y[n]和yt[n]。

这两个序列是否相等?

该系统是线性系统吗?

clf;

n=0:

200;

a=2;b=-3;

s1=cos(2*pi*0.1*n);

s2=cos(2*pi*0.4*n);

x=a*s1+b*s2;

x1=[0s10];

x2=[00s1];

x3=[0s20];

x4=[00s2];

x5=[0x0];

x6=[00x];

y1=x1.*x2;

y1=y1(2:

202);

y2=x3.*x4;

y2=y2(2:

202);

y=x5.*x6;

y=y(2:

202);

yt=a*y1-b*y2;

d=y-yt;

subplot(3,1,1)

stem(n,y);

ylabel('振幅');

title('加权输入:

a\cdotx_{1}[n]+b\cdotx_{2}[n]的输出');

subplot(3,1,2)

plot(n,yt);

ylabel('振幅');

title('加权输入:

a\cdoty_{1}[n]+b\cdoty_{2}[n]');

subplot(3,1,3)

plot(n,d);

xlabel('时间序号n')

ylabel('振幅');

title('差信号');

答:

观察上图,看差信号,可见加权输入与输出的图像相差较大,不是线性系统。

Q2.12运行程序P2.4并比较输出序列y[n]和yd[n-10]。

这两个序列之间有什么关系?

该系统是时不变系统吗?

clf;

n=0:

40;D=10;a=3.0;b=-2;

x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);

xd=[zeros(1,D)x];

num=[2.24032.49082.2403];

den=[1-0.40.75];

ic=[00];

y=filter(num,den,x,ic);

yd=filter(num,den,xd,ic);

d=y-yd(1+D:

41+D);

subplot(3,1,1)

stem(n,y);

ylabel('振幅');

title('输出y[n]');grid;

subplot(3,1,2)

stem(n,yd(1:

41));

ylabel('振幅');

title(['由于延时输入x[n',num2str(D),']的输出']);grid;

subplot(3,1,3)

stem(n,d);

xlabel('时间序号n');ylabel('振幅');

title('差值信号');grid;

答:

系统为线性时不变系统,yd为y时移10后的序列。

Q2.17考虑另一个系统:

y[n]=nx[n]+x[n-1]修改程序P2.4,以仿真上面的系统并确定该系统是否为时不变系统。

clf;

n=0:

40;D=10;a=3.0;b=-2;

x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);

xd=[zeros(1,D)x];

num=[n1];

den=[10];

y=filter(num,den,x);

yd=filter(num,den,xd);

d=y-yd(1+D:

41+D);

subplot(3,1,1)

stem(n,y);

ylabel('振幅');

title('输出y[n]');grid;

subplot(3,1,2)

stem(n,yd(1:

41));

ylabel('振幅');

title(['由于延时输入x[n',num2str(D),']的输出']);grid;

subplot(3,1,3)

stem(n,d);

xlabel('时间序号n');ylabel('振幅');

title('差值信号');grid;

答:

差值为零系统为线性时不变系统。

 

第三次实验

 

Q2.19运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。

运行程序:

Q2.20修改程序P2.5,产生以下因果线性时不变系统的冲激响应的前45个样本:

y[n]+0.71y[n-1]-0.46y[n-2]-0.62y[n-3]=0.9x[n]-0.45x[n-1]+0.35[n-2]+0.002x[n-3]

修改程序P2.5,产生如下因果线性时不变系统的冲击响应的前45个样本:

Q2.21利用filter命令编写一个MATLAB程序,生成式(2.17)给出的因果线性时不变系统的冲激响应,计算并画出前40个样本。

把你的结果和Q2.20中得到的结果相比较。

冲击响应前40个样本。

Q2.22编写一个MATLAB程序,生成并画出式(2.11)给出的因果线性时不变系统的阶跃响应。

用该程序计算并画出式(2.15)给出的线性时不变系统的阶跃响应的前40个样本。

阶跃响应前40个样本。

Q2.23运行程序P2.6,计算输出序列y[n]和y2[n]以及差值信号d[n],y[n]和y2[n]相等吗?

答:

可以看出这加权输入与输出的图像几乎是相差无几的,观察差信号的图像,纵坐标已达到10^(-14),可以看出是相差无几的,所以两信号相等。

Q2.25用任意的非零初始向量ic,ic1和ic2来重做Q2.23

ic=[11]

y1=filter(num1,den1,x,ic);

y2=filter(num2,den2,y1,ic);

ic1=[26]

ic2=[74]

不相等

Q2.26修改程序P2.6,将两个二阶系统顺序颠倒并在零初始条件下重复此过程。

两个输出之间有差别吗?

Q2.28运行程序P2.7,对序列h[n]和x[n]求卷积,生成y[n],并用FIR滤波器h[n]对输入x[n]滤波,求得y1[n]。

y[n]和y1[n]有差别吗?

为什么要使用对x[n]补零后得到的x1[n]作为输入来产生y1[n]?

答:

y[n]与y1[n]没有差别。

序列h[n]和x[n]卷积得到的y[n]的长度h[n]和x[n]的长度之和再减去1,即9+7-1=15,而用FIR滤波器h[n]对输入信号x[n]滤波得到的y1[n]长度与x[n]相同,故要对x[n]补零后得到的x1[n](长度扩展为15),滤波后所得输出与y1[n]与y2[n]相同。

Q2.30程序中为什么要使用命令for和end?

For后常为循环语句需执行的的循环次数,end表示循环语句执行完毕

在累加的过程中若|h(k)|的值小于10^(-6)S(K)已经收敛,所以不必再检查之后的值,所以用for,end来进行判断

Q2.32程序P2.8确定的冲激响应所对应的离散时间系统是什么?

运行程序P2.8,生成该冲激响应。

该系统稳定吗?

若|h[K]|不小于10^(-6)且图形显示了一个衰减的冲激响应,用一个较大的N值再次运行程序P2.8。

答:

该系统稳定。

Q2.33考虑用差分方程y[n]=x[n]-4x[n-1]+3x[n-2]+1.7y[n-1]-y[n-2]描述的离散时间系统。

修改程序P2.8,计算并画出上述系统的冲激响应。

该系统稳定吗?

答:

该系统不稳定。

 

第四次实验

第三章离散时间信号的频域分析

Q3.1在程序P3.1中,计算离散时间傅里叶变换的原始系列是什么?

MATLAB命令pause的作用是什么?

答;原始序列H(jw)=(2+e^(-jw))/(1-0.6e^(-jw))

pause的作用是暂时停止直到用户按任何键。

Q3.2运行程序P3.1,求离散时间傅里叶变换的实部,虚部以及幅度和相位谱。

离散时间福利叶变换是w的周期函数吗?

若是,周期是多少?

描述这四个图形表示的对称性。

答;离散时间傅里叶变换是ω的周期函数,周期为2π。

Q3.3修改程序p3.1,在范围0≤w≤∏内计算如下序列的离散时间傅里叶变换;

并重做习题Q3.2。

讨论你的结果。

你能解释相位谱中的跳变吗?

MATLAB命令unwrap可以移除跳变。

试求移除后的相位谱。

答;因为离散时间傅里叶变换是ω的周期函数,周期为2π,当计算的相位在频率范围[-π,π]之外时,,就会自动加2π发生相位谱跳变。

Q3.6通过加入合适的注释语句和程序语句,修改程序P3.2,对程序生成的图形中的两个轴加标记。

哪个参数控制时移量?

答:

D控制时移量

Q3.7运行修改后的程序并讨论你的结果。

答:

通过观察知道当D增大时,序列的幅度谱不变;相位谱变密,周期缩短。

Q3.8选取不同的时移值重做Q3.7

D=5

D=50

Q3.10通过加入合适的注释语句和程序语句,修改程序P3.2,对程序生成的图形中的两个轴加标记。

哪个参数控制频移量?

答:

w0控制频移量

Q3.11运行修改后的程序并讨论你的结果

答:

在参数w0的控制下,离散时间傅里叶变换的幅度谱和相位谱都随着控制参数左移。

Q3.12选取不同的频移值,重做Q3.11

W0=0.2pi

W0=pi

Q3.14通过加入合适的注释语句和程序语句,修改程序P3.4,对程序生成的图形中的两个轴加标记。

Q3.15运行修改后的程序并讨论你的结果。

答:

时域信号的卷积等于时域信号在频域上的乘积,时域信号的乘积等于时域信号在频域上的卷积。

 

第五次实验

Q3.23编写一个MATLAB程序,计算并画出长度为N的L点离散傅里叶变换X[k]的值,其中

,然后计算并画出L点离散傅里叶逆变换X[k]。

对不同长度N和不同的离散傅里叶变换长度L,运行程序。

讨论你的结果。

序列;x[n]=[0123456789000000];

序列:

x[n]=[1/31/31/3]

Q3.26在函数circshift中,命令rem的作用是什么?

答:

rem(x,y)是用y对x求余数函数。

Q3.27解释函数circshift怎样实现圆周移位运算。

答:

在输入序列x由M的位置开始被循环移位。

如果M>0,则circshift删除从矢量x最左边开始的M个元素和它们附加在右侧的剩余元素,以获得循环移位序列。

如果如果M<0,则circshift首先通过x的长度来弥补M,即序列x最右边的长度的M样品从x中删除和所附在其余的M个样本的右侧,以获得循环移位序列。

Q3.28在函数circshift中,运算符~=的作用是什么?

答:

~=是不等于的意思。

Q3.29解释函数circonv怎样实现圆周卷积运算。

答:

输入是两个长度都为L的向量x1和x2,它是非常有用的定期延长X2的函数。

让x2p成为x2延长无限长的周期的序列。

从概念上讲,在定点时间上通过时序交换后的x2p的长度L交换x2p序列和x2tr等于1的元素。

然后元素1至L的输出向量y是通过取x1和获得的长度为L的sh矢量之间的内积得到通过循环右移的时间反转向量x2tr。

对于输出样本Y[n]的1≤N≤L时,右循环移位的量为n-1个位置上。

Q3.31运行修改后的程序并验证圆周时移运算

Q3.32通过加入合适的注释语句和程序语句,修改程序P3.8,对程序生成的图形中的两个轴加标记。

时移量是多少?

答:

时移量为5

Q3.33运行修改后的程序并验证离散傅里叶变换的圆周时移性质。

Q3.36运行程序P3.9并验证离散傅里叶变换的圆周卷积性质。

圆周卷积的结果=

12281401614

离散傅立叶变换乘积的傅立叶逆变换的结果=

12281401614

Q3.38运行程序P3.10并验证线性卷积可通过圆周卷积得到。

圆周卷积的结果=

2610152115795

直接线性卷积=

2610152115795

第六次实验

Q3.47编写一个MATLAB程序,计算并显示零点和极点,计算并显示其因式形式,并产生以

的两个多项式之比的形式表示的z变换的极零点图。

使用该程序,分析式(3.32)的z变换G(z)。

z=

-1.0000+1.4142i

-1.0000-1.4142i

-0.2500+0.6614i

-0.2500-0.6614i

 

p=

-8.9576

-0.2718

0.1147+0.2627i

0.1147-0.2627i

 

k=

0.4000

 

sos=

0.40000.80001.20001.00009.22932.4344

1.00000.50000.50001.0000-0.22930.0822

Q3.49

num=

3.9000-9.3600-0.6630-1.01400.5850

 

den=

1.0000-0.95000.17500.6625-0.3187

有理Z变换为;

H(Z)=(3.9-9.36Z-1-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2