DSP1.docx

上传人:b****8 文档编号:23790809 上传时间:2023-05-20 格式:DOCX 页数:19 大小:191.37KB
下载 相关 举报
DSP1.docx_第1页
第1页 / 共19页
DSP1.docx_第2页
第2页 / 共19页
DSP1.docx_第3页
第3页 / 共19页
DSP1.docx_第4页
第4页 / 共19页
DSP1.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

DSP1.docx

《DSP1.docx》由会员分享,可在线阅读,更多相关《DSP1.docx(19页珍藏版)》请在冰豆网上搜索。

DSP1.docx

DSP1

实验一熟悉MATLAB环境

一、实验目的

(1)熟悉MATLAB的主要操作命令。

(2)学会简单的矩阵输入和数据读写。

(3)掌握简单的绘图命令。

(4)用MATLAB编程并学会创建函数。

(5)观察离散系统的频率响应。

二、实验内容

认真阅读附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。

在熟悉了MATLAB基本命令的基础上,完成以下实验。

上机实验内容:

数组的加、减、乘、除和乘方运算。

输入A=[1234],B=[3456],求C=A+B;

D=A-B;E=A.*B;F=A./B;G=A.^B;并用Stem语句画出A、B、C、D、E、F、G。

A:

B:

C=A+B

D=A-B

E=A*B

F=A./B

G=A.^B

并用Stem语句画出A、B、C、D、E、F、G。

(2)用MATLAB实现下列序列:

n=[0:

1:

15];

x1=(0.8).^n;

figure;stem(x1);

n=[0:

1:

15];

x2=(0<=n<=15).*exp(0.2*n+j*3*n);

figure;stem(x2);

n=[0:

1:

15];

x3=(0<=n<=15).*(3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi));

figure;stem(x3);

d)将(c)中的x(n)扩展为以16为周期的函数

绘出四个周期。

n=[0:

1:

63];

x4=(0<=n<=63).*(3*cos(0.125*pi*rem(n,16)+0.2*pi)+2*sin(0.25*pi*rem(n,16)+0.1*pi));

figure;stem(x4);

e)将(c)中的x(n)扩展为以10为周期的函数

,绘出四个周期。

n=[0:

1:

39];

x5=(0<=n<=39).*(3*cos(0.125*pi*rem(n,10)+0.2*pi)+2*sin(0.25*pi*rem(n,10)+0.1*pi));

figure;stem(x5);

(3)

产生并绘出下列序列的样本:

n=0:

3;

x=[1-135]

x1=circshift(x,[0,-2]);

x2=circshift(x,[0,1]);

x3=2*x1-x2-2*x;

stem(x3);

x=[1-135];

x1=zeros(1,4);

x2=zeros(1,4);

fork=1:

5

forn=0:

3

x3=circshift(x,[0,-k])

t=n.*x3;

x1=x1+t;

end

x2=x2+x1;

end

stem(x2)

(4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注

t=0:

0.001:

10;

x=sin(2*pi*t);

plot(t,x)

title('x=sin(2*pi*t)');

xlabel('x');

ylabel('t');

t=0:

0.01:

4;

x1=cos(100*pi*t);

x2=sin(pi*t);

x=x1.*x2;

plot(t,x)

title('x=cos(100*pi*t)*sin(pi*t)');

xlabel('x');

ylabel('t');

(5)编写函数

实现

,绘出该函数的图形,起点为n1,终点为n2。

functionstepshift(n0,n1,n2)%单位阶跃序列,n0为时移量

n=n1:

n0-1;%n1、n2为序列的起止序列号

nn=length(n);

x=zeros(1,nn);%n0前信号赋值为0

stem(n,x,'fill')%绘出n1~n0-1的波形(0值)

holdon

k=n0:

n2;

kk=length(k);

x=ones(1,kk);%n0后信号赋值为1

stem(k,x,'fill')%绘出n0~n0的波形(1值)

holdoff

axis([n1,n2,0,1.1])

title('单位阶跃序列')

运行程序后,在CommondWindows中输入stepshift(2,-2,15),

则得到平移后序列图形如下:

 

(6)给定一因果系统

求出并绘制H(z)的幅频响应与相频响应。

clearall;

k=64;

b=[1sqrt

(2)];

a=[1-0.670.9];

w=0:

pi/k:

pi;

h=freqz(b,a,w);

subplot(2,1,1);plot(abs(h))

gridon

subplot(2,1,2);plot(angle(h))

gridon

(7)计算序列

和序列

的离散卷积,并作图表示卷积结果。

A=[8-2-123]

B=[23-1-1];

C=conv(A,B)

plot(C)

(8)求以下差分方程所描述系统的单位脉冲响应

clearall;

N=51;

a=[1-2];

b=[10.1-0.62];

x1=[1zeros(1,N-1)];

n=0:

1:

N-1;

h=filter(a,b,x1);

stem(n,h)

axis([-153-2.51.2])

三、思考题

(1)比较实验内容第

(2)题中d)和e)两小题的结果,试说明对于周期性信号,应当如何采样,d能保证周期扩展后与原信号保持一致?

答:

采样周期要大于等于原信号周期

(2)对于有限长序列,如何用MATLAB计算其DTFT?

fs=1000

t=0:

1/fs:

0.6;

f1=100;

f2=300;

x=sin(2*pi*f1*t)+sin(2*pi*f2*t);

subplot(711)

plot(x);

title('f1(100hz)\f2(300hz)的正弦信号,初相0')

xlabel('序列(n)')

gridon

number=512

y=fft(x,number);

n=0:

length(y)-1;

f=fs*n/length(y);

subplot(713)

plot(f,abs(y));

title('f1\f2的正弦信号的fft(512点)')

xlabel('频率hz')

gridon

x=x+randn(1,length(x));

subplot(715)

plot(x);

title('原f1\f2的正弦信号(含随机噪声)')

xlabel('序列(n)')

gridon

y=fft(x,number);

n=0:

length(y)-1;

f=fs*n/length(y);

subplot(717)

plot(f,abs(y));

title('原f1\f2的正弦信号(含随机噪声)的fft(512点)')

xlabel('频率hz')

gridon

(3)对于由两个子系统级联或并联的系统,如何用MATLAB计算它们的幅频响应与相频响应?

答:

级联转换为直接型:

cas2dir并联转换为直接型:

par2dir然后用freqz()就行了。

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

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1