信息电子学院实验指导书格式数字信号处理.docx
- 文档编号:30228626
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:17
- 大小:296.31KB
信息电子学院实验指导书格式数字信号处理.docx
《信息电子学院实验指导书格式数字信号处理.docx》由会员分享,可在线阅读,更多相关《信息电子学院实验指导书格式数字信号处理.docx(17页珍藏版)》请在冰豆网上搜索。
信息电子学院实验指导书格式数字信号处理
《—数字信号处理—》
实验指导书
蒋明峰编写
适用专业:
电子信息科学与技术
浙江理工大学信息电子学院
二○○八年三月
前言
本课程是电子信息科学与技术,通信工程等本科专业及其他相近专业的一门专业必修课。
通过本课程的学习,使学生掌握离散系统的基本概念和分析方法,数字滤波器的设计和实现,以及如何利用快速傅里叶变换等DSP技术对数字信号进行分析、滤波等处理,为其他课程的学习和今后的科研工作打下良好的基础。
通过本课程的学习,学生应掌握以下基本概念、理论和方法:
1.采样定理、离散序列的变换、离散信号的频谱分析;
2.离散系统的传递函数、频率响应、离散系统的基本分析方法;
3.数字滤波器的设计理论、滤波器的软件实现;
4.离散傅里叶变换理论、快速傅里叶变换方法;
5.有限字长效应。
实验一:
离散时间序列卷积和MATLAB实现
实验学时:
2
实验类型:
(演示、验证、综合、√设计、研究)
实验要求:
(√必修、选修)
一、实验目的
通过本实验学会用MATLAB对信号与系统进行分析,实现离散序列卷积和的计算。
二、实验内容
题一:
已知序列
f1(k)=
f2(k)=
调用conv()函数求上述两序列的卷积和
f1=ones(1,3);
f2=0:
3;
f=conv(f1,f2)
>>t1
f=
013653
题二:
编写计算两离散序列卷积和f(k)=f1(k)*f2(k)的实用函数dconv().要求该程序在计算出卷积和f(k)的同时,还绘出序列f1(k),f2(k)和f(k)的时域波形图。
function[f,k]=dconv(f1,f2,k1,k2)
%f1(k),f2(k)及f(k)的对应序号向量分别为k1,k2和k。
function[f,k]=dconv(f1,f2,k1,k2)
f=conv(f1,f2);
k0=k1
(1)+k2
(1);
k3=length(f1)+length(f2)-2;
k=k0:
k0+k3;
subplot(2,2,1);
stem(k1,f1);
title('f1(k)');
xlabel('k');
ylabel('f1(k)');
subplot(2,2,2);
stem(k2,f2);
title('f2(k)');
xlabel('k');
ylabel('f2(k)');
subplot(2,2,3);
stem(k,f);
title('f1(k)与f2(k)的卷积和f(k)');
xlabel('k');
ylabel('f(k)')
题三:
试用MATLAB计算如下所示序列f1(k)与f2(k)的卷积和f(k),绘出它们的时域波形,并说明序列f1(k)与f2(k)的时域宽度与序列f(k)的时域宽度的关系。
f1(k)=
f2(k)=
提示:
可用上述dconv()的函数来解决。
>>f1=[121];
>>k1=-1:
1;
>>f2=ones(1,5);
>>k2=-2:
2;
>>[f,k]=dconv(f1,f2,k1,k2)
f=
1344431
k=
-3-2-10123
题四:
已知某LTI离散系统,其单位响应h(k)=e(k)-e(k-4),求该系统在激励为f(k)=e(k)-e(k-3)时的零状态响应,并绘出其时域波形图。
>>f1=ones(1,4);
>>f2=ones(1,3);
>>k1=0:
3;
>>k2=0:
2;
>>dconv(f1,f2,k1,k2)
ans=
123321
三、实验原理、方法和手段
1、离散时间序列f1(k)和f2(k)的卷积和定义:
f(k)=f1(k)*f2(k)=
2、在离散信号与系统分析中有两个与卷积和相关的重要结论:
a、f(k)=
=f(k)*δ(k)即离散序列可分解为一系列幅度由f(k)决定的单位序列δ(k)及其平移序列之积。
b、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状态响应为y(k),则有:
y(k)=
四、实验组织运行要求
以学生自主训练为主的开放模式组织教学
五、实验条件
(1)微机
(2)MATLAB编程工具
六、实验步骤
1.熟悉实验内容,以及卷积运算的理论
2.上机编程调试
3.记录实验结果,撰写实验报告
七、实验报告
实验预习、实验记录和实验报告三部分。
实验二:
FFT算法的MATLAB实现
实验学时:
3
实验类型:
(演示、验证、综合、√设计、研究)
实验要求:
(√必修、选修)
一、实验目的
通过本实验的学习,掌握离散傅立叶变换的理论,特别是FFT的基本算法以及其在在数字信号处理中的应用。
二、实验内容
题一:
若x(n)=cos(n*pi/6)是一个N=12的有限序列,利用MATLAB计算它的DFT并画出图形。
N=12;
n=0:
N-1;
xn=cos(n*pi/6);
Xk=fft(xn,N);
stem(n,Xk);
xlabel('k');
ylabel('Xk');
题二:
一被噪声污染的信号,很难看出它所包含的频率分量,如一个由50Hz和120Hz正弦信号构成的信号,受均值随机噪声的干扰,数据采样率为1000Hz,对这污染信号进行傅立叶变换,以检查所包含的频率分量
fs=1000;
N=1024;
n=0:
N-1;
t=n/fs;
x=sin(2*pi*50*t)+sin(2*pi*120*t)+rand(1,N);
y=fft(x,N);
mag=abs(y);
f=n*fs/N;
subplot(1,2,1);
plot(f,mag);
xlabel('频率/Hz');
ylabel('振幅');
title('N=1024');
subplot(1,2,2);
plot(f(1:
N/2),mag(1:
N/2));
xlabel('频率/Hz');
ylabel('振幅');
title('N=1024');
题三:
调用原始语音信号mtlb,对其进行FFT变换后去掉幅值小于1的FFT变换值,最后重构语音信号。
(要求有四幅语音信号的频谱图在同一图形窗口以便比较:
分别是1、原始语音信号;2、FFT变换;3去掉幅值小于1的FFT变换值;4、重构语音信号)
loadmtlb
N=512;
subplot(2,2,1)
plot([1:
N],mtlb(1:
N));
title('原始语音信号');grid;
y=fft(mtlb(1:
N));
subplot(2,2,2);
plot([1:
N],y);
title('原始语音信号FFT变换');grid;
y(y<1)=0;
subplot(2,2,3);
plot([1:
N],y);
title('去掉幅值小于1的FFT变换');grid;
subplot(2,2,4);
plot([1:
N],ifft(y));
title('重构语音信号');grid;
三、实验原理
1、有限长序列x(n)的DFT的概念和公式:
2、基2的FFT算法
四、实验组织运行要求
以学生自主训练为主的开放模式组织教学
五、实验条件
(1)微机
(2)MATLAB编程工具
六、实验步骤
1.熟悉实验内容,FFT算法的思想
2.上机编程调试
3.记录实验结果,撰写实验报告
七、实验报告
实验预习、实验记录和实验报告三部分。
实验三:
IIR滤波器的设计及实现
实验学时:
3
实验类型:
(演示、验证、综合、√设计、研究)
实验要求:
(√必修、选修)
一、实验目的
(1)熟悉用冲击响应不变法或双线性变换法设计IIR数字滤波器的原理与方法。
(2)掌握数字滤波器的计算机仿真方法。
(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
二、实验内容
(1)设计一个巴特沃斯低通IIR数字滤波器。
设计低通数字滤波器,要求在通带内频率低于0.2pirad时,允许幅度误差在1dB以内,在频率0.3pirad到pirad之间的阻带衰减大于15Db,用双线性变换法设计数字滤波器。
模拟滤波器采用巴特沃斯滤波器原型。
(2)用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。
心电图信号采样序列x(n):
人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。
下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。
在实验中,以x(n)作为输入序列,滤除其中的干扰成分。
{x(n)}={-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0}
三、实验步骤
(1)复习有关巴特沃斯模拟滤波器设计和用冲击响应不变法或双线性变换法设计IIR数字滤波器的内容,求出满足本实验要求的数字滤波器系统函数:
A=0.09036
B1=1.2686,C1=-0.7051
B2=1.0106,C2=-0.3583
B3=0.9044,C3=-0.2155
由上式可见,滤波器H(z)由三个二阶滤波器H1(z),H2(z)和H3(z)级联组成,如下图所示。
(2)编写滤波器仿真程序,计算H(z)对心电图信号采样序列x(n)的响应序列y(n)。
设yk(n)为第k级二阶滤波器Hk(z)的输出序列,yk-1(n)为输入序列,如上图所示。
由上式可得到差分方程:
yk(n)=Ayk-1(n)+2Ayk-1(n-1)+Ayk-1(n-2)+Bkyk(n-1)+Ckyk(n-2)
(3)在通用计算机上运行仿真滤波程序,并调用通用绘图子程序,完成实验内容
(2)和(3)。
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
k=1;
n=0:
55;
subplot(2,2,1);
stem(n,x,'.');
axis([055-10050]);
holdon;
n=0:
60;
m=zeros(61);
plot(n,m);
xlabel('n');
ylabel('x(n)');
title('心电图信号采样序列x(n)');
B=[0.090362*0.090360.09036];
A=[1.2686-0.7051];
A1=[1.0106-0.3583];
A2=[0.9044-0.2155];
y1=filter(B,A,x);
y2=filter(B,A1,y1);
y=filter(B,A2,y2);
subplot(2,2,3);
n=0:
55;
stem(n,y,'.');
axis([055-155]);
holdon;
n=0:
60;
m=zeros(61);
plot(n,m);
xlabel('n');
ylabel('x(n)');
title('三级滤波后的心电图信号');
A=[0.090362*0.090360.09036];
B1=[1-1.26860.7051];
B2=[1-1.01060.3583];
B3=[1-0.90440.2155];
[H1,w]=freqz(A,B1,100);
[H2,w]=freqz(A,B2,100);
[H3,w]=freqz(A,B3,100);
H4=H1.*(H2);
H=H4.*(H3);
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
subplot(2,2,2);
plot(w/pi,db);
axis([00.5-5010]);
title('滤波器的幅频响应曲线')
四、实验组织运行要求
以学生自主训练为主的开放模式组织教学
五、实验条件
(1)微机
(2)MATLAB编程工具
六、实验步骤
1.熟悉实验内容,熟悉IIR数字滤波器的原理与方法
2.上机编程调试
3.记录实验结果,撰写实验报告
七、实验报告
实验预习、实验记录和实验报告三部分。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 电子 学院 实验 指导书 格式 数字信号 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)