dsp实验报告詹姆斯.docx

上传人:b****3 文档编号:26421553 上传时间:2023-06-19 格式:DOCX 页数:37 大小:744.61KB
下载 相关 举报
dsp实验报告詹姆斯.docx_第1页
第1页 / 共37页
dsp实验报告詹姆斯.docx_第2页
第2页 / 共37页
dsp实验报告詹姆斯.docx_第3页
第3页 / 共37页
dsp实验报告詹姆斯.docx_第4页
第4页 / 共37页
dsp实验报告詹姆斯.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

dsp实验报告詹姆斯.docx

《dsp实验报告詹姆斯.docx》由会员分享,可在线阅读,更多相关《dsp实验报告詹姆斯.docx(37页珍藏版)》请在冰豆网上搜索。

dsp实验报告詹姆斯.docx

dsp实验报告詹姆斯

自动化08

(1)詹姆斯

0808020154

实验一、离散信号的产生运算

(一)实验目的和要求:

产生离散信号,进行信号运算

(二)主要仪器设备:

计算机;Matlab软件;word文字处理软件

(三)实验原理与方法

(1)产生实指数序列:

n=[0:

50];x=0.9.^n;stem(x);

(2)正余弦序列:

n=[0:

50];x=sin(0.075*pi*n);stem(x);%x=cos(0.075*pi*n);stem(x);

(3)产生随机序列:

x=10.*rand(1,30);%产生长度为30,大小在(0,10)间的一维随机向量,stem(x);%绘图

(4)序列反褶:

y=fliplr(x);%产生序列x的反折序列

x=[3,11,7,0,-1,4,2];

nx=[-3:

3];subplot(2,2,1),stem(x)

>>subplot(2,2,2),y=fliplr(x)

(5)移位

移位函数文件:

sigshift.m

function[y,ny]=sigshift(x,nx,n0);

ny=nx+n0;%右移n0位;

y=x;

matlab实现调用文件test1.m文件:

x=[3,11,7,0,-1,4,2];

nx=[-3:

3];

[y,ny]=sigshift(x,nx,2);%右移2位

subplot(3,1,1);stem(nx,x);ylabel('x');

subplot(3,1,2);stem(ny,y);ylabel('y(n)');

【x=[3,11,7,0,-1,4,2];

nx=[-3:

3];

>>ny=nx+2;

y=x;

>>subplot(3,1,1);stem(nx,x);ylabel('x');grid;

subplot(3,1,2);stem(ny,y);ylabel('y(n)');grid】

(四)实验步骤与内容

1.编程产生长度为10,大小在(0,5)间的一维随机向量

,在下面表格记录序列值,根据表格值绘出序列的图形。

程序:

n=[1:

10];x(n)=5.*rand(1,10);stem(x);

n

1

2

3

4

5

6

7

8

9

10

x(n)

4.0736

4.5289

0.6349

4.5668

3.1617

0.4877

1.3924

2.7344

4.7875

4.8244

2.编程产生:

在下面表格记录序列值,根据表格值绘出序列的图形。

程序:

n=[1:

10];y(n)=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n)+rand(1,10);stem(y);

n

1

2

3

4

5

6

7

8

9

10

y(n)

3.2794

-0.2778

-2.3710

-1.0733

0.0806

-2.1767

-4.2404

-2.3484

0.4260

-1.3288

3.重新编程绘图实现上两个序列的相加序列A(n)=x(n)+y(n)、相乘运算序列B(n)=x(n).y(n)’,记录在下表格中,根据表格绘出序列A(n),B(n)的图形。

程序:

x(n)=5.*rand(1,10);n=[1:

10];

y(n)=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n)+rand(1,10);stem(y);

A(n)=x(n)+y(n)

B(n)=5.*rand(1,n)*[3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n)+rand(1,10)]

Stem(A(n));

Stem(B(n));

N

1

2

3

4

5

6

7

8

9

10

A(n)

3.5382

3.4400

-0.3135

3.0312

2.5637

-0.3384

-0.0430

0.3140

1.0884

2.0503

B(n)

0.2644

-1.0976

-5.6503

-7.5846

0.5446

-5.0900

-18.0842

-6.0701

0.0762

-4.4037

A(n)B(n)

4.实现2中序列的反褶运算序列Z(n),并记录Z(n)在下列表格中,根据表格值绘出序列Z(n)的图形。

程序:

n=[1:

10];

y(n)=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n)+rand(1,10);z=fliplr(y);stem(z);

n

1

2

3

4

5

6

7

8

9

10

Z(n)

-1.3103

0.0752

-2.3117

-4.2741

-2.4316

0.2337

-1.6279

-2.5389

-0.2939

3.4619

实验二、卷积与相关运算

(一)实验目的和要求

用matlab编写DSP程序,观察输入序列的长度与输出序列长度的关系

(二)主要仪器设备

计算机;Matlab软件;word文字处理软件

(三)实验原理与方法

(1)离散序列的卷积:

x=[3,11,7,0,-1,4,2];

nx=[-3:

3];

h=[2,3,0,-5,2,1];

nh=[-1:

4];

nyb=nx

(1)+nh

(1);

nye=nx(length(x))+nh(length(h));

ny=[nyb:

nye]

y=convn(x,h)

subplot(3,1,1);stem(nx,x);ylabel('x');

subplot(3,1,2);stem(nh,h);ylabel('h');

subplot(3,1,3);stem(ny,y);ylabel('y(n)=x(n)*h(n)');

(2)离散序列的相关:

x=[3,11,7,0,-1,4,2];

nx=[-3:

3];

h=[2,3,0,-5,2,1];

nh=[-1:

4];

nyb=nx

(1)+nh

(1);

nye=nx(length(x))+nh(length(h));

ny=[1:

2*max(length(x),length(h))-1];

y=xcorr(x,h);%相关

subplot(3,1,1);stem(nx,x);ylabel('x(nx)');

subplot(3,1,2);stem(nh,h);ylabel('h(nh)');

subplot(3,1,3);stem(ny,y);ylabel('y(ny)');

(四)实验步骤与内容

1.编程实现序列:

的卷积

,记录在下表格:

程序:

nx=[0:

9];x=[0,0.5,1,1.5,2,2.5,3,3.5,4,4.5];nh=[1:

5];h=5.*rand(1,5)

;nyb=nx

(1)+nh

(1);nye=nx(length(x))+nh(length(h));

ny=[nyb:

nye];y=convn(x,h);

subplot(3,1,1);stem(nx,x);ylabel('x');

subplot(3,1,2);stem(nh,h);ylabel('h');

subplot(3,1,3);stem(ny,y);ylabel('y(n)=x(n)*h(n)')

N

0

1

2

3

4

5

6

7

8

9

10

11

12

13

y(n)

0

2.3753

5.3285

9.7988

15.4840

23.3975

31.3110

39.2244

47.1379

55.0514

39.2116

38.9713

28.7606

20.0542

2.编程实现1中两个序列的相关运算序列

,记录在下表格:

;nx=[0:

9];x=[0,0.5,1,1.5,2,2.5,3,3.5,4,4.5];

nh=[1:

5];

h=5.*rand(1,5);nyb=nx

(1)+nh

(1);

nye=nx(length(x))+nh(length(h));

ny=[1:

2*max(length(x),length(h))-1];y=xcorr(x,h)subplot(3,1,1);stem(nx,x);ylabel('x(nx)');

subplot(3,1,2);stem(nh,h);ylabel('h(nh)');

subplot(3,1,3);stem(ny,y);ylabel('y(ny)')

N

1

2

3

4

5

6

7

8

9

10

z(n)

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

1.1118

4.2770

7.4886

11.8413

N

11

12

13

14

15

16

17

18

19

z(n)

18.0992

24.3572

30.6151

36.8731

43.1310

38.2714

22.8824

25.5125

17.1472

3.编程实现序列:

的卷积

并绘图

nx=[0:

10];x=[0,1,2,3,4,5,6,7,8,9,10];

nh=[0:

7];

h=[0,5,14,27,44,65,90,119]

nyb=nx

(1)+nh

(1)

;nye=nx(length(x))+nh(length(h));

ny=[nyb:

nye];

y=convn(x,h)

subplot(3,1,1);stem(nx,x);ylabel('x');

subplot(3,1,2);stem(nh,h);ylabel('h');

subplot(3,1,3);stem(ny,y);ylabel('y(n)=x(n)*h(n)')

n

1

2

3

4

5

6

7

8

9

10

11

12

13

14

z(n)

0

0

5

24

70

160

315

560

924

1288

1652

2016

2325

2530

n

15

16

17

18

z(n)

2578

2412

1971

1190

4.编程实现3中两个序列的相关运算序列

并绘图

nx=[0:

10];

x=[0,1,2,3,4,5,6,7,8,9,10];

nh=[0:

7];

h=[0,5,14,27,44,65,90,119]

nzb=nx

(1)+nh

(1);

nze=nx(length(x))+nh(length(h));

nz=[1:

2*max(length(x),length(h))-1]

;z=xcorr(x,h)

subplot(3,1,1);stem(nx,x);zlabel('x(nx)');

subplot(3,1,2);stem(nh,h);zlabel('h(nh)');

subplot(3,1,3);stem(nz,z);zlabel('z(nz)')

N

1

2

3

4

5

6

7

8

9

10

11

12

13

14

z(n)

-0.0000

-0.0000

-0.0000

-0.0000

0.1190

0.3280

0.6020

0.9200

1.2650

1.6240

1.9880

2.3520

2.7160

3.0800

N

15

16

17

18

19

20

21

z(n)

2.1350

1.3900

0.8300

0.4360

0.1850

0.0500

0

实验三、离散系统分析

(一)实验目的和要求

求出离散系统的零极点,分析离散系统的幅频和相频特性

(二)主要仪器设备

计算机;Matlab软件;word文字处理软件

(三)实验原理与方法

1.绘制离散系统的频率响应:

模拟:

按照矢量w指定的频率值沿虚坐标计算模拟滤波器的复频率响应h,当w省略时自动取w=200,

不代变量输出的直接绘出曲线。

数字:

按照n个频率点计算频率响应h,n个频率点均匀分布在上半单位圆(0~π),并记录在w中,相应的频率响应记录在h中。

若不带返回参数,则绘制出幅频特性和相频特性曲线。

2.绘制离散系统零极点图

调用格式:

zplane(z,p)

zplane(b,a)

其中b、a分别为系统函数分子分母的系数向量,z为系统零点向量,p为系统极点向量。

例如:

数字滤波器

的零极点图、幅频特性和相频特性曲线

程序:

a=[10.50.1];

b=[0.20.30];

zplane(b,a);%绘制零极点图

freqz(b,a,128);%绘制频率ω=128的幅频特性和相频特性曲线

3.数字系统的单位脉冲响应

1):

t记录取样点矢量,取样点n由系统自动选取。

2):

用户指定取样点n,当n为标量时,t=[0:

n-1]

不带输出变量的impz将在当前图形窗口利用stem(t,h)绘出脉冲响应。

freqz(b,a,128)

>>a=[10.41];b=[0.20.31];impz(b,a,50)

4.系统函数转换

(1)系统:

函数tf2zp可以将系统函数表示成零极点形式:

调用格式:

[z,p,k]=tf2zp(b,a);%求出系统的零极点

其中b、a分别为系统函数分子分母的系数向量,z为系统零点向量,p为系统极点向量,k为增益系数。

(2)函数zp2tf可以将零极点形式转化为分子分母多项式形式

调用格式:

[b,a]=zp2tf(z,p,k)

(四)实验步骤与内容

1.编程求出系统

的零极点记录在下表,并在Z平面绘制出零极点图

 

程序:

a=[10.41];b=[0.20.31];zplane(b,a);freqz(b,a,128)

 

类型

1

2

零点

-0.2000+0.9798i

-0.2000-0.9798i

极点

-0.7500+2.1065i

-0.7500-2.1065i

2.编程绘出上述1中系统的幅频特性和相频特性曲线

 

3.编程绘出系统

的零极点记录在下表,并在Z平面绘制出零极点图

程序:

a=[1000];b=[1321];zplane(b,a);freqz(b,a,128)

 

类型

1

2

3

零点

-2.3247

-0.3376+0.5623i

-0.3376-0.5623i

极点

0

0

0

4.编程绘出上述3中系统的幅频特性和相频特性曲线

5.绘出系统1和系统2的单位脉冲响应

程序:

freqz(b,a,128);a=[10.41];b=[0.20.31];impz(b,a,50)

 

程序:

freqz(b,a,128);a=[1000];b=[1321];impz(b,a,50)

实验四、信号谱分析

(一)实验目的和要求

掌握FFT算法,利用MATLAB语言对信号进行频谱分析

(二)主要仪器设备

计算机;Matlab软件;word文字处理软件

(三)实验原理与方法

一维快速傅立叶变换函数fft,调用格式:

(1)X=fft(x)%返回x的相同长度的fft

(2)X=fft(x,n)%计算n点的fft

调用函数完成:

,其中

则信号的幅度谱为:

相位谱为:

例如:

x=[1,2,4,1,0,3,5]

X=fft(x,128);

p=sqrt(X.*conj(X));%或ph1=abs(X);

ph=angle(X);

subplot(2,1,1);plot(p);

subplot(2,1,2);plot(ph);

(四)实验步骤与内容(都取128点的FFT)

1.编程绘图实现数字信号:

x=[10,20,30,90,10,60,60,20,5]的频谱(幅频和相频)特性

程序:

x=[10,20,30,90,10,60,60,20,5];

X=fft(x,128);

p=sqrt(X.*conj(X));%或ph1=abs(X);

ph=angle(X);

subplot(2,1,1);

plot(p);

subplot(2,1,2);plot(ph);

频谱图:

2.编程绘图实现数字信号:

x=[1,2,3,1,2,1]的频谱(幅频和相频)特性

程序:

x=[1,2,3,1,2,1]

X=fft(x,128);

p=sqrt(X.*conj(X));%或ph1=abs(X);

ph=angle(X);

subplot(2,1,1);plot(p);

subplot(2,1,2);plot(ph);

频谱图:

3.在采样时间点t=0:

0.001:

0.6,对信号

进行离散处理,编程绘图实现离散信号频谱(幅频和相频)特性

频谱图:

 

程序:

t=0:

0.001:

0.6;

x=sin(2*pi*50*t)+sin(2*pi*120*t);

X=fft(x,128);

p=sqrt(X.*conj(X));

ph=angle(X);

subplot(2,1,1);

plot(p);

subplot(2,1,2);

plot(ph)

t=0:

0.001:

0.6;

x=sin(2*pi*50*t)+sin(2*pi*120*t);

y=x+1.5*randn(1,length(t));

Y=fft(y,512);

p=Y.*conj(Y)/512;

plot(p);

实验五、IIR数字滤波器的设计

(一)实验目的和要求

掌握双线性变换法及脉冲相应不变法设计IIR数字滤波器的具体设计方法及其原理。

用双线性变换法及脉冲响应不变法编程设计低通、高通和带通IIR数字滤波器。

(二)主要仪器设备:

计算机;Matlab软件;word文字处理软件

(三)实验原理与方法

1.低通模拟滤波器原型函数

[z,p,k]=besselap(n)%贝塞尔滤波器

[z,p,k]=buttap(n)%Butterworth巴特沃斯滤波器

[z,p,k]=cheb1ap(n,Rp)%雪比契夫1型

[z,p,k]=cheb2ap(n,Rs)%雪比契夫2型

[z,p,k]=ellipap(n,Rp,Rs)%椭圆滤波器

2.模拟频率变换函数

(1)原型低通到低通模拟滤波器变换函数lp2lp:

[bt,at]=lp2lp(b,a,Wo);其中W0为截止频率

(2)原型低通到带通模拟滤波器变换函数lp2bp:

[bt,at]=lp2bp(b,a,Wo,Bw);其中W0为中心频率,Bw为带宽

(3)原型低通到高通模拟滤波器变换函数lp2hp:

[bt,at]=lp2hp(b,a,Wo);其中W0为截止频率

(4)原型低通到带阻模拟滤波器变换函数lp2bs

[bt,at]=lp2bs(b,a,Wo,Bw);其中W0为中心频率,Bw为带宽

3.双线性变换法函数

[zd,pd,kd]=bilinear(z,p,k,Fs)%Fs为取样频率

[zd,pd,kd]=bilinear(z,p,k,Fs,Fp)

[numd,dend]=bilinear(num,den,Fs)%num,den为分子分母多项式系数向量

[numd,dend]=bilinear(num,den,Fs,Fp)

4.冲击响应不变法函数

[bz,az]=impinvar(b,a,Fs)

[bz,az]=impinvar(b,a)

例如:

取采样频率f=1KHz,用双线性变换法设计五阶Butterworth低通数字滤波器,绘出模拟滤波器与数字滤波器的幅频与相频特性,MATLAB程序如下:

[z,p,k]=buttap(5);%设计五阶Butterworth低通模拟滤波器原型

[zd,pd,kd]=bilinear(z,p,k,1000);%双线性变换得到低通数字滤波器

[b,a]=zp2tf(zd,pd,kd);%滤波器类型转换

w=128;

freqs(b,a,w)

figure;

freqz(b,a,w)

(四)实验步骤与内容

1.取采样频率f=100Hz,用双线性变换法设计五阶Butterworth低通数字滤波器,绘出模拟滤波器与数字滤波器的幅频与相频特性

程序:

[z,p,k]=besselap(5);

[zd,pd,kd]=bilinear(z,p,k,100);

[b,a]=zp2tf(zd,pd,kd);

w=128;

freqs(b,a,w)

figure;

freqz(b,a,w)

2.设高通截止频率为w0=10000Hz,取采样频率f=20000,用双线性变换法设计六阶高通Butterworth数字滤波器,绘出数字滤波器的频谱特性

程序:

[z,p,k]=besselap(6);%原型低通

[b,a]=zp2tf(z,p,k);%零极点型转化为分式型

w=128;

w0=10000;

[bt,at]=lp2hp(b,a,w0)%低通转化为高通

[bz,az]=bilinear(bt,at,1000);%双线性法

freqs(bt,at,w);%模拟频谱

figure;

freqz(bz,az,w);%数字频

3.设带通滤波器的滤波器中心频率为W0=2KHz,带宽为BW=100Hz,取采样频率f=10kHZ,用脉冲相应不变法设计,设计五阶带通Butterworth数字滤波器,绘出数字滤波器的频谱特性

程序:

[z,p,k]=buttap(5)[b,a]=zp2tf(z,p,k);w=128;

w0=2000;

[bt,at]=lp2bp(b,a,w0,100);

[bz,az]=impinvar(b,a,10000);

freqs(bt,at,w);

figure;

freqz(bz,az,w)

4.直接设计五阶butterworth带通滤波器,绘出频谱图。

(高端与低端截止频率分别为0.2和0.9)

w=[0.2,0.9];

[b,a]=buttap(5,w);

freqz(b,a);

 

实验六、FIR数字滤波器的设计

(一)实验目的和要求

掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的原理及方法,熟悉响应的计算机编程,熟悉线性相位FIR滤波器的幅频特性和相频特性

(二)主要仪器设备

计算机;Matlab软件;word文字处理软件

(三)实验原

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

当前位置:首页 > 总结汇报 > 学习总结

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

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