昆工数字信号实验报告.docx
《昆工数字信号实验报告.docx》由会员分享,可在线阅读,更多相关《昆工数字信号实验报告.docx(24页珍藏版)》请在冰点文库上搜索。
![昆工数字信号实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/165e3830-5863-4e9c-a3b5-2d701e9005af/165e3830-5863-4e9c-a3b5-2d701e9005af1.gif)
昆工数字信号实验报告
昆明理工大学信自学院学生上机实验报告
(2014—2015学年第一学期)
课程名称:
数字信号处理及DSP开课实验室:
2342014年12月22日
年级、专业、班
自动化111班
学号
2011104011.。
姓名
。
。
。
成绩
实验项目名称
实验一离散信号分析
指导教师
张果
教师评语
教师签名:
年月日
注:
报告内容按实验报告要求进行。
一、实验目的
1、观察常用离散时间信号的图形,掌握离散时间信号的基本序列运算。
2、理解离散时间系统的时域特性,加深对离散系统的差分方程的理解。
3、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
二、实验内容
1、在给出的区间上产生并画出下面序列:
(1)
(2)
2、设x(n)={1,-2,4,6,-5,8,10},产生并画出下列的样本:
(1)
(2)
3、给出一个简单数字微分器:
,它计算输入序列的后向一阶差分,对下面三角脉冲序列实现上述微分器并求出结果。
三、实验方法、步骤
1.实验内容1的程序及运行结果如下图所示:
%题1.1
n1=[0:
20];x21=n1.*(stepseq(0,0,20)-stepseq(10,0,20));%列出x21序列
x22=10*exp(-0.3*(n1-10)).*(stepseq(10,0,20)-stepseq(20,0,20));%列出x22序列
x2=x21+x22;%x2序列是x21和x22之和
subplot(2,1,1);stem(n1,x2);
title('1.11实验的序列图');
xlabel('n');ylabel('x(n)');
%题1.2
x=[-10:
9];
n2=[5,4,3,2,1];N=length(n2);
y=n2(mod(x,N)+1);%确定位置向量各点对应的x值
subplot(2,1,2),stem(x,y)%得出的图形见图
xlabel('n'),ylabel('xtilde(n)');
set(gcf,'color','w')%置图形背景色为白
title('1.12实验的序列图');
2.实验内容2的程序及运行结果如下图所示:
%题2.1
xn=[1,-2,4,6,-5,8,10];
n1=[-4:
2];
[y1,ny1]=seqshift(xn,n1,-5);
[y2,ny2]=seqshift(xn,n1,-4);
[y3,ny3]=seqadd(5*y1,ny1,4*y2,ny2);
[y4,ny4]=seqadd(y3,ny3,3*xn,n1);
subplot(2,1,1),stem(ny4,y4)
xlabel('n'),ylabel('x1(n)');
set(gcf,'color','w')%置图形背景色为白
title('1.21实验的序列图');
%题2.2
n2=[-10:
10];
x1=[zeros(1,6),xn,zeros(1,8)];
[y5,ny5]=seqshift(xn,n2,-2);
x2=[zeros(1,4),y5,zeros(1,10)];
x3=2*exp(0.5*n2).*(x1)+cos(0.1*pi*n2).*(x2);
subplot(2,1,2),stem(n2,x3)
xlabel('n'),ylabel('x2(n)');
set(gcf,'color','w')%置图形背景色为白
title('1.22实验的序列图');
3.实验内容3的程序及运行结果如下图所示:
clearall;closeall;clc;
n=-5:
30;b=[1,-1];a=[1];
y1=n.*(stepseq(0,-5,30)-stepseq(10,-5,30));%计算y1=n[u(n)-u(n-10)]
y2=(20-n).*[stepseq(10,-5,30)-stepseq(20,-5,30)];%计算y2=(20-n)[u(n-10)-u(n-20)]
[y3,n2]=seqadd(y1,n,y2,n);%序列求和y3=y1+y2
subplot(2,1,1);stem(n2,y3);%画两行一列图,放在第一行一列
xlabel('n');ylabel('x_2(n)');%行列坐标标注
h=filter(b,a,y3);%计算y(n)=x(n)-x(n-1)
subplot(2,1,2);stem(n,h);%画两行一列图,放在第二行一列
xlabel('n');ylabel('h(n)');%行列坐标标注
set(gcf,'color','w');%设置白色背景色
四、实验结果分析及心得
1、序列连续模拟信号与离散序列的关系?
答:
离散序列是对连续模拟信号的采样,当采样频率满足乃奎斯特条件,那么离散信号可以恢复连续信号的所有信息,反之则会有信息泄露。
对模拟信号的离散处理是使得信号可以进入计算机系统处理的前提。
昆明理工大学信自学院学生上机实验报告
(2014—2015学年第一学期)
课程名称:
数字信号处理及DSP开课实验室:
2342014年12月22日
年级、专业、班
自动化111班
学号
2011104011.。
姓名
。
。
。
成绩
实验项目名称
实验二信号采样与卷积运算
指导教师
张果
教师评语
教师签名:
年月日
注:
报告内容按实验报告要求进行。
一、实验目的
1、验证乃奎斯特采样定理,加深对时域取样后信号频谱变化的认识。
2、理解线性卷积,掌握线性卷积的求解方法。
3、理解循环卷积,掌握循环卷积的求解方法并对照线性卷积比较二者异同。
二、实验内容
1、考虑模拟信号
,在
,0.05和0.1s间隔采样得到x(n)。
(1)对每个Ts画出x(n)。
(2)采用sinc内插(用
t=0.001)从样本x(n)重建模拟信号
,并从图中求出在ya(t)中的频率(不管末端效果)。
2、求序列
的线性卷积,并画出结果序列。
3、求序列
(0
n
)和
的线性卷积和6点、10点以及12点循环卷积,画出线图并总结出线性卷积和循环卷积的关系。
三、实验步骤
1、实验内容1
(1)的程序运行结果如下图所示:
clearall;closeall;clc;
t=0:
0.001:
1;xa=cos(20*pi*t);%
Ts=0.01;N1=round(1/Ts);n1=0:
N1;x1=cos(20*pi*n1*Ts);%对xa进行100点采样
subplot(3,1,1);plot(t,xa,n1*Ts,x1,'o');%把采样后的x1和xa画在三行一列的第一行
ylabel('x_1(n)');title('Samplingofx_a(t)usingTs=0.01');%标注坐标及表头
Ts=0.05;N2=round(1/Ts);n2=0:
N2;x2=cos(20*pi*n2*Ts);%对xa进行20点采样
subplot(3,1,2);plot(t,xa,n2*Ts,x2,'o');%把采样后的x1和xa画在三行一列的第二行
ylabel('x_2(n)');title('Samplingofx_a(t)usingTs=0.05');%标注坐标及表头
Ts=0.1;N3=round(1/Ts);n3=0:
N3;x3=cos(20*pi*n3*Ts);%对xa进行10点采样
subplot(3,1,3);plot(t,xa,n3*Ts,x3,'o');%把采样后的x1和xa画在三行一列的第三行
ylabel('x_3(n)');title('Samplingofx_a(t)usingTs=0.1');%标注坐标及表头
set(gcf,'color','w');%设置背景色为白色
2、实验内容1
(2)的程序运行结果如下图所示:
clearall;closeall;clc;
t=0:
0.001:
1;xa=cos(20*pi*t);%计算xa=cos(20*pi*t),t变量取0-1步长为0.001
Ts=0.01;N1=round(1/Ts);n1=0:
N1;x1=cos(20*pi*n1*Ts);%对xa进行间隔为0.01s的采样
Ts=0.01;Fs=1/Ts;%设置采样间隔为0.01s
xa1=x1*sinc(Fs*(ones(length(n1),1)*t-(n1*Ts)'*ones(1,length(t))));%对x1用sinc进行内插
subplot(3,1,1);plot(t,xa1);axis([0,1,-1.1,1.1]);%绘制经内插后恢复的图形
ylabel('x_a(t)');title('Reconstructionofx_a(t)whenTs=0.01');%行列及其表头标注
Ts=0.05;Fs=1/Ts;%设置采样间隔为0.05s
Ts=0.05;N2=round(1/Ts);n2=0:
N2;x2=cos(20*pi*n2*Ts);%对xa进行间隔为0.05s的采样
xa2=x2*sinc(Fs*(ones(length(n2),1)*t-(n2*Ts)'*ones(1,length(t))));%对x2用sinc进行内插
subplot(3,1,2);plot(t,xa2);axis([0,1,-1.1,1.1]);%绘制经内插后恢复的图形
ylabel('x_a(t)');title('Reconstructionofx_a(t)whenTs=0.05');%行列及其表头标注
Ts=0.1;Fs=1/Ts;%设置采样间隔为0.1s
Ts=0.1;N3=round(1/Ts);n3=0:
N3;x3=cos(20*pi*n3*Ts);%对xa进行间隔为0.1s的采样
xa3=x3*sinc(Fs*(ones(length(n3),1)*t-(n3*Ts)'*ones(1,length(t))));%对x3用sinc进行内插
subplot(3,1,3);plot(t,xa3);axis([0,1,-1.1,1.1]);%绘制经内插后恢复的图形
ylabel('x_a(t)');title('Reconstructionofx_a(t)whenTs=0.1');%行列及其表头标注
set(gcf,'color','w');%设置背景色为白色
3、实验内容2的程序运行结果如下图所示:
clearall;closeall;clc;
nx=0:
9;x1=0.8.^nx;%x1=0.8^n
ny=0:
2;x2=[101];%计算x2=δ(n)+δ(n-2)
[g,ng]=convwthn(x1,nx,x2,ny);%x1与x2做线性卷积
subplot(2,2,1);%在第二行第一列绘图
stem(nx,x1,'.');grid;axis([-0.59.5-0.21.2]);%stem-Plotdiscretesequencedata
xlabel('n');ylabel('x1(n)');title('序列x1(n)');%绘制表头
subplot(2,2,2);%在第二行第二列绘图
stem(ny,x2,'.');grid;axis([-0.53.5-0.21.2]);%绘制yn序列
xlabel('n');ylabel('x2(n)');title('序列x2(n)');%绘制表头
subplot(2,1,2);%在第二行第一列绘图
stem(ng,g,'.');%绘制ng序列
grid;axis([-112-0.52]);
xlabel('n');ylabel('g(n)');title('线性卷积序列g(n)');%绘制表头
set(gcf,'color','w');%设置白色背景
4、实验内容3的程序运行结果如下图所示:
clearall;closeall;clc;
nx=0:
4;x=[12345];
ny=0:
5;y=[-130-2-21];
[nt1,t1]=SeqCirConv(nx,x,ny,y,6);%对x和y进行6点的线性卷积
[nt2,t2]=SeqCirConv(nx,x,ny,y,10);%对x和y进行10点的线性卷积
[nt3,t3]=SeqCirConv(nx,x,ny,y,12);%对x和y进行12点的线性卷积
subplot(2,3,1);%第一行第一列绘制x(n)序列图形
stem(nx,x,'.');grid;axis([-15-0.25.2]);%绘制图形
xlabel('n');ylabel('x(n)');title('序列x(n)');%绘制表头和行列注释
subplot(2,3,2);%第一行第二列绘制y(n)序列图形
stem(ny,y,'.');grid;axis([-18-2.23.2]);%绘制图形
xlabel('n');ylabel('y(n)');title('序列y(n)');%绘制表头和行列注释
subplot(2,3,3);%第一行第三列绘制x(n)、y(n)六点循环卷积序列图形
stem(nt1,t1,'.');grid;axis([-18-15.210]);%绘制图形
xlabel('n');ylabel('t5(n)');title('6点循环卷积');%绘制表头和行列注释
subplot(2,3,4);%第二行第一列绘制x(n)、y(n)10点循环卷积序列图形
stem(nt2,t2,'.');grid;axis([-110-15.210]);%绘制图形
xlabel('n');ylabel('t9(n)');title('10点循环卷积');%绘制表头和行列注释
subplot(2,3,5);%第二行第二列绘制x(n)、y(n)12点循环卷积序列图形
stem(nt3,t3,'.');grid;axis([-113-15.210]);%绘制图形
xlabel('n');ylabel('t12(n)');title('12点循环卷积');%绘制表头和行列注释
subplot(2,3,6);%第二行第三列绘制x(n)、y(n)线性卷积序列图形
[g,ng]=convwthn(x,nx,y,ny);%x(n)、y(n)做线性卷积
stem(ng,g,'.');grid;axis([-113-15.210]);
xlabel('n');ylabel('g(n)');title('线性卷积序列g(n)');%绘制表头和行列注释
set(gcf,'color','w');%绘制背景图为白色
四、实验思考
1、在分析理想采样的试验中,当采样频率不同时,得到的采样序列有何差异?
它们在傅里叶变换域中表现出怎样的特点?
答:
当采样频率低于奈奎斯特采样频率,通过内插函数将不能恢复原始信号。
只有大于等于奈奎斯特采样频率信号才可以被恢复出来。
在傅里叶变换频域中将有部分频率会泄露掉,从而不能很好的反应信号的频率特性。
昆明理工大学信自学院学生上机实验报告
(2014—2015学年第一学期)
课程名称:
数字信号处理及DSP开课实验室:
2342014年12月23日
年级、专业、班
自动化11班
学号
2011104011.。
姓名
。
。
。
成绩
实验项目名称
实验三应用DFT实现信号频谱分析
指导教师
张果
教师评语
教师签名:
年月日
一、实验目的
1、进一步加深DFT算法原理和基本性质的理解
2、学习FFT对连续信号和时域离散信号进行频谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用DFT。
二、实验内容
1、考虑长度为5的有限序列,设采样周期为0.5s。
x(0)=1,x
(2)=5,x(3)=1,x(4)=1。
要求用FFT来计算其频谱。
2、用FFT函数对
进行频谱分析,其中f1=20KHz,f2=21KHz.以采样频率Fs=80KHz对其进行采样,要求:
(1)写出x(n)=
的表达式并求其DTFT:
(2)取信号长度为32点,并作出32、2048点DFT,画出幅频曲线:
(3)取信号长度512点,并作出512、2048点DFT,画出幅频特性曲线。
三、实验步骤
1、复习DFT的定义、性质和用DFT做频谱分析的有关内容。
2、复习FFT算法原理与编程思想,并对照DFT-FFT运算流程图和程序框图,读懂FFT程序。
3、实验内容1的程序及运行结果:
clearall;closeall;clc;
x=[1,3,5,3,1];nx=0:
4;T=0.5;%给定原始数据
N=length(x);D=2*pi/(N*T);%求出序列长度及频率分辨率
k=floor((-(N-1)/2):
((N-1)/2));%求对称于零频率的FFT位置向量
X=fftshift(fft(x,N));%求对称于零频率的FFT序列值
subplot(2,1,1),plot(k*D,abs(X),'o:
')%画幅频特性图
title('幅频特性图');
subplot(2,1,2),plot(k*D,angle(X),'o:
')%画相频特性图
title('相频特性图');
set(gcf,'color','w');
4、实验内容2的程序运行结果如下图所示:
clearall;closeall;clc;
Fs=80;%抽样频率KHz
SignalNum=512;%信号点数512点
n=0:
3000;
x=cos(2*20*pi*n/Fs)+2*cos(2*21*pi*n/Fs);%Fs=80KHz,对其采样
x1=x(1:
SignalNum);%采样512点
X1=fft(x1,2048);%对x1进行2048点的DFT变换
subplot(2,1,1),plot(0:
SignalNum-1,x1);%绘制时域波形图
xlabel('n');ylabel('x(n)');title('时域波形');grid;%标注表头,添加网格
subplot(2,1,2),plot(abs(X1));%绘制幅频特性图
xlabel('k');ylabel('|X(k)|');title('幅频特性');grid;%标注表头,添加网格
set(gcf,'color','w');%设置背景色为白色
(取信号长度为32点,2048点的DFT图)
(取信号长度为512点,2048点的DFT图)
四、实验思考
通过此次试验进一步加深了DFT算法原理和基本性质的理解,学会利用FFT对连续信号和时域离散信号进行频谱分析。
1、在做DFT时,补零只能提高图形视在分辨率。
2、做DFT时,信号点数不同对幅频特性影响不大。
昆明理工大学信自学院学生上机实验报告
(2014—2015学年第一学期)
课程名称:
数字信号处理及DSP开课实验室:
2342014年12月23日
年级、专业、班
自动化11班
学号
2011104011.。
姓名
。
。
。
成绩
实验项目名称
实验四IIR数字滤波器设计
指导教师
张果
教师评语
教师签名:
年月日
一、实验目的
1、熟悉用冲激响应不变法和双线性变换法设计IIR数字滤波器的原理和方法。
2、掌握数字Butterworth滤波器的设计和方法。
二、实验内容
用MATLAB设计Butterworth数字低通滤波器,设计指标如下:
通带为0Hz≤f≤400Hz,阻带为f≥600Hz,ap=2dB,as=40dB,采样频率为4000Hz,分别用脉冲响应不变法和双线性变换法完成滤波器设计,并分别画出幅频响应曲线和相频响应曲线。
三、实验步骤
1.复习有关Butterworth模拟滤波器设计,以及用脉冲响应不变法设计IIR数字滤波器的内容,用脉冲响应不变法设计数字滤波器系统函数。
2.复习有关Butterworth模拟滤波器设计,以及用双线性变换法设计IIR数字滤波器的内容,用双线性变换法设计数字滤波器系统函数。
3.实验程序及其运行结果。
%---------Ex4_1--------
%---------脉冲响应不变法--------------
wp=0.2*pi;ws=0.3*pi;
Fs=4000;T=1/Fs
Wp=wp/T;Ws=ws/T;
alpha_p=2;alpha_s=40;
[c,d]=aft_butt(Wp,Ws,alpha_p,alpha_s);
[b,a]=impinvar(c,d,Fs);
[H,W]=freqz(b,a);
%---------画出幅度响应曲线-------------
subplot(2,1,1);plot(W*Fs/2/pi,abs(H));
xlabel('频率/Hz');ylabel('幅值');grid;
%---------画出相位响应曲线-------------
subplot(2,1,2);plot(W*Fs/2/pi,angle(H));
xlabel('频率/Hz');ylabel('相位');grid;
%---------Ex4_2--------
%---------双线性变换法----------------
wp=0.2*pi;ws=0.3*pi;
Fs=4000;T=1/Fs
Wp=(2/T)*tan(wp/2);
Ws=(2/T)*tan(ws/2);
alpha_p=2;alpha_s=40;
[c,d]=aft_butt(Wp,Ws,alpha_p,alpha_s);
[b,a]=bilinear(c,d,Fs);
[H,W]=freqz(b,a);
%---------画出幅度响应曲线-------------
subplot(2,1,1);plot(W*Fs/2/pi,abs(H));
xlabel('频率/Hz');ylabel('幅值');grid;
%---------画出相位响应曲线-------------
subplot(2,1,2);plot(W*Fs/2/pi,angle(H));
xlabel('频率/Hz');ylabel('相位');grid;
四、思考题
1.脉冲响应不变法的特点是什么?
为什么脉冲响应不变法会产生频率混叠的问题?
答:
脉冲响应不变法是将数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位脉冲响应,时域逼近良好,而且模拟频率和数字频率之间呈线性关系。
脉冲响应不变法的最大缺点是具有频率响应的混叠效应。
任何一个实际的模拟器其频率都不可能是真正带限的,因此不可避免地出现频谱混叠。
2.写出高通IIR滤波器的设计思路。
答:
IIR高