dsp实验报告詹姆斯.docx
- 文档编号:26421553
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:37
- 大小:744.61KB
dsp实验报告詹姆斯.docx
《dsp实验报告詹姆斯.docx》由会员分享,可在线阅读,更多相关《dsp实验报告詹姆斯.docx(37页珍藏版)》请在冰豆网上搜索。
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文字处理软件
(三)实验原
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- dsp 实验 报告 詹姆斯