现代数字信号处理报告

时间:2024.3.31

深圳大学考试答题纸

(以论文、报告等形式考核专用)
二○ 14   ~二○  15     学年度第   学期

摘要:

   本文主要分为两个部分:前一部分讲述了学习现代数字信号处理课程的主要收获,和在期末的心得体会。后一部分介绍了一款用MATLAB编写的读取和处理膜片钳电压信号的GUI模块。其中膜片钳电压信号由clampfit软件截取成高时间密度的离散时间文本,被GUI模块读取后拟合成连续信号,而后进行后续处理和特征输出。

 关键字:现代数字信号处理    心得体会     MATLAB     膜片钳电压信号

一.课程心得

  自20世纪60年代以来,随着计算机和信息学科的飞速发展,数字信号处理(DSP)技术应运而生并迅速发展,现已形成一门独立的学科体系1。数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号采集、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。其系统具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等诸多突出优点,远远优于模拟信号处理系统1

数字信号处理在工程技术领域使用极其广泛,如何在较强的背景噪声下提取出真正的信号或信号特征并将它们应用于工程实际是信号处理的关键任务1

  数字信号处理学在理论上涉及的范围非常广,包括数学领域、网络通信领域、人工智能、模式识别、神经网络等等1。在学科上,数字信号处理作为一套较完整的理论体系,包括信号采集A/D技术、抽样定理、量化噪声、离散信号分析、离散系统分析、信号处理的快速算法、信号估值、建模等方面。信号处理的理论和算法是密不可分的1

  数字信号处理中所涉及的信号包括确定性信号、平稳随机信号、时变信号、一维及多维信号、单通道及多通道信号。所涉及的系统也包括单通道系统和多通道系统,对每一类特定的信号与系统,理论上的各个方面都有不同的内容1

  数字信号处理的实现分为软实现和硬件实现两大类。软件实现最强大的工具是MATLAB,其具有形形色色的信号处理软件包,使用起来十分方便。硬件实现指各种DSP芯片和其他的数字信号处理系统,其中DSP芯片处理能力十分突出1

  现代数字信号处理课程,我们主要学习了离散时间信号的Z变换、傅里叶变换和快速傅里叶变换;数字滤波器的设计;信号处理的正交变换;信号的插值和抽取;平稳随机信号的定义和特征;经典功率谱估计及数字信号建模的知识。对数字信号处理有了较本科学习更深入的了解。

二.膜片钳电压信号处理的MATLAB实现

  膜片钳放大器是专门针对1pA—nA级别的微电流放大器,其输入是极微小的电流信号,通过I/V放大系统,输出放大后的电压信号2

本文所使用的信号是,使用膜片钳放大器检测的纳米孔过孔信号,该信号产生原理是:在中央被纳米孔薄膜分开的样品池两侧,外加一个稳定的电压激励,由于纳米孔十分微小,使样品池中的待检测物在电压的作用下,逐个通过纳米孔,通过检测纳米孔过孔电流的变化,来测定待检测物的种类和浓度3

鉴于纳米孔信号的特点,本文使用的信号有一个人为的基准电压,即纳米孔空载时的电压值;目标特征值为电压降大小和电压降时间。

  Step1,信号预处理

使用clampfit软件,通过记录横、纵坐标值,从采集到的长信号中截取10-50秒长度,保存在txt文本中,方便MATLAB软件读取(图1)。

本文使用的待处理信号是已被膜片钳放大的信号。根据其放大倍数换算成电流,单位用pA表示(图1 a)。

本文使用的膜片钳放大器带宽很高,达到100MHz,因此截取信号时,使用的时间采样间隔为0.01ms(图1 b),以保证预处理阶段信号不失真。

(a)

(b)

图1: (a)所取信号在clampfit软件中的部分显示。x轴:时间,单位(s);y轴:电流值,单位(pA)。

(b)从clampfit中截取的从169s开始的离散信号部分显示。左侧为横坐标时间,单位(ms),采样间隔0.01ms;右侧为纵坐标电流值,单位pA。

  Step2,信号读入和特征检测

  本文使用MATLAB编写gui模块实现信号读取和特征值检测。

软件设计的大致思路为:

①读入截取的txt文档中的离散信息,使用MATLAB绘图软件将其显示出来。

②手动设定基线电流和检测宽度。比较每100个点间的y轴值(电压变化),当其最高值和最低值差大于设定的检测宽度值时,分辩出y轴电压下降起始点和y轴电压上升结束点,用红线标出;将红线内信号其记录为一个特征信号。

③计算记录到的特征信号平均值,用红线标出。

④计算特征信号的时间宽度和压降幅度,记录并保存为exl表格。

  软件界面和其使用步骤见图2。

图2.MATLAB gui界面和使用步骤。

 

输出的exl表格如图3。

图3.通过软件生成的exl表格。每一行是一个特征信号,信号“描述”列前部分记录了信号的总阻断时间和最大阻断电流,后部分记录了台阶信号两部分的阻断时间和阻断电流。

该模块尚有一些不足,比如:在信号跳变比较剧烈时容易出现漏检,起始基线很难校准,上下台阶信号特征无自动标出等等,有待进一步改进。

三. 总结

  膜片钳电压信号在采集时是一个连续的交流模拟信号,不能直接被计算机处理,因此先将其分割为高密度的离散时间信号,在保证不失真的情况下,使用特定的软件进行快速处理,体现了数字信号处理灵活、准确、速度快等特点。虽然该信号的处理过程并没有涉及太多的数值计算,但在MATLAB编程过程中遇到的问题也加深了我对这门课程的理解。

  在文章最后,谢谢张旭老师精彩的课程和详细的ppt,谢谢课余和我耐心讨论的同学们,你们的每一份付出都是我努力学习的动力。

附录.部分代码

1.搜索信号主函数:

function SignalSearch(Obj,handles)

%搜索信号函数

lowlim=str2double(get(handles.edit_f1,'String'));

gdbase=str2double(get(handles.edit_gdbase,'String'));

err=str2double(get(handles.edit_err,'String'));

ishand=get(handles.checkbox_hand,'Value');

index=get(handles.datalist,'Value');

if(index<1)

   return

end

data=Obj.DM.datas{index};

autocut=get(handles.checkbox_autocut,'Value');

[signaldata cut]=Obj.test1(data,lowlim,autocut,ishand,gdbase,err);

Obj.DM.signaldatas{index}=signaldata;

Obj.DM.cuts{index}=cut;

return

2.搜索信号主函数中调用的test1函数,用来查找信号和降噪

function [signals num]=findsignal(data2,base,d,lowlim,start,num)%对一个数据段寻找信号的函数

data=data2(:,2);

c_signals=find(data<(base-d));%所有疑似信号点的位置的数组

if(isempty(c_signals))

   signals=[];

   return

end

len=length(data);

signals_place=find(c_signals(2:end)-c_signals(1:end-1)>1);

d_signals=[[1;signals_place+1] [signals_place;length(c_signals)]];% 以左右两端的形式将疑似信号放入n*2数组

e_signals=c_signals(d_signals);

if(length(e_signals)==2)

   e_signals=e_signals';

end

f_signals=[e_signals(:,1)*2-e_signals(:,2) e_signals(:,2)*2-e_signals(:,1)];% 检测电磁信号的范围:前后与信号长度相同的长度范围f_signals(f_signals<1)=1;

f_signals(f_signals>len)=len;%去除无效值

g_signals=[e_signals(:,1)-10 e_signals(:,2)+10];%用于寻找两端的范围

g_signals(g_signals<1)=1;

g_signals(g_signals>len)=len;%去除无效值

signals=[];

i=1;

while(i<=size(e_signals,1))

    minpoint=base-min(data(e_signals(i,1):e_signals(i,2)));

        bdata=data(f_signals(i,1):f_signals(i,2));

        maxpoint=max(bdata)-base;

        if(maxpoint>minpoint)%根据是否含有电磁干扰筛选

            e_signals(i,:)=[];

            f_signals(i,:)=[];

            g_signals(i,:)=[];

        else

            if(g_signals(i,2)<40||g_signals(i,1)>length(data)-40)

                    e_signals(i,:)=[];

                    f_signals(i,:)=[];

                    g_signals(i,:)=[];

            else

            bddata=data(g_signals(i,1):g_signals(i,2));

            diffdata=[0;diff(bddata)];

            e_signals(i,1)=g_signals(i,1)-1+find(diffdata<=0.27*min(diffdata),1);

            temp=find(diffdata>=0.25*max(diffdata));

            e_signals(i,2)=g_signals(i,1)-1+temp(end);

            num=num+1;

            if(e_signals(i,2)<e_signals(i,1))

                temp=e_signals(i,2);

               e_signals(i,2)=e_signals(i,1);

               e_signals(i,1)=temp;

            end

            signals{i}=SignalAnalysis(data2,e_signals(i,:),start,num);

            i=i+1;

            end

        end

end

end

参考文献:

1.     胡广书. 数字信号处理[M]. 北京:清华大学出版社, 2003. 1-3

2.     丁克俭, 张海燕, 胡红刚, 赵红敏, 关伟军, 马月辉. 生物大分子纳米孔分析技术研究进展[C]. 北京:分析化学, 2010. 280-285

3.     Jacob, K, Rosenstein, Meni, Wanunu, Christopher, A, Merchant, Marija, Drndic, Kenneth, L, Shepard. Integrated nanopore sensing platform with sub-microsecond temporal resolution[C]. New York, USA:nature methods, 2012. 487-487


第二篇:数字信号处理课程设计 陈阳


燕山大学

电气工程学院

课程设计说明书

设计题目     FT与DFT的对比                       

系    别       电气工程系                 

年级专业      检测11-1班            

学    号:      111203021071              

学生姓名        陈  阳                        

指导教师        王  娜                

教师职称        副教授                


电气工程学院《课程设计》任务书

课程名称:             数字信号处理课程设计                          

基层教学单位:仪器科学与工程系                   指导教师:王 娜  

说明:1、此表一式四份,系、指导教师、学生各一份,报送院教务科一份。

      2、学生那份任务书要求装订到课程设计报告前面。

电气工程学院

教务科

摘要:随着信息科学和计算机技术的迅速发展,数字信号处理的理论与应用得到了飞跃式发展,形成一门极其重要的学科。本文论述了在数字信号处理过程中如何使用MATLAB软件编程,从而使一些运算量大、抽象复杂的问题变得简单而直观。

关键字:数字信号处理     FT与DFT     MATLAB

Abstract: Along with the rapid development of information science and computer technology, digital signal processing has exploded in recent years and it is becoming an extremely important subject. This article discusses the applications of the soft ware MATLAB in digital signal processing, and describes how to make it simple and straight for the complicated computations and abstract problems.

Key Words:  Digital   signal   processing          

            FT  and  DFT     MATLAB

目录

摘要……………………………………………..................................1

一、引言…………………………………………………….………..3

1.1知识背景……………………………………………………3

二、基础知识……………………………………..…………..……..4

2.1信号…………………………………………………………4

2.2矩形序列……………………………………………………4

2.3傅里叶变换…………………………………………………5

2.4离散傅里叶变换……………………………………………7

三、程序设计及图像处理……………………………………………9

3.1矩形序列程序及图像………………………………………9

3.2矩形序列的傅里叶变换及图像…………………………..10

3.3矩形序列的离散傅里叶变换及图像……………………..12

四、总结…………………………………………………….……….14

4.1分析矩形序列FT与DFT间的关系………………………14

五、心得体会………………………………………………………14

六、参考文献………………………………………………………..15

七、致谢……………………………………………………………..16

一、引言:

1.1知识背景:

随着信息时代和数字世界的到来,数字信号处理已经成为一门极其重要的学科和技术领域。数字信号处理是利用计算机或通用的信号处理设备,用数字的数值计算方法对信号进行变换、滤波、压缩、增强、估计、识别等处理,以达到提取有用信息便于应用的目的。目前数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。由于数字信号处理的理论性和实践性都很强,内容多、概念抽象、设计复杂、枯燥、难理解掌握,因此,要求应用者有较强的数学基础和一定的计算机编程能力。

MATLAB是一款用于科学计算的可视化、高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体, 构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。MATLAB的出现给信号处理分析中一些理论的掌握提供了方便。在数字信号处理教学和实验中,通常采用MATLAB来进行辅助设计和仿真。MATLAB现已成为重要的应用工具之一。

二、基础知识

2.1信号

信号通常是一个自变量或几个自变量的函数。物理信号的自变量有多种,可以是时间、距离、温度等。针对信号的自变量和函数值的取值情况,信号可以分为以下三种:

1.模拟信号(时域连续信号):信号自变量和函数值取连续值;

2.时域离散信号:自变量取离散值,函数值取连续值;

3.数字信号:信号自变量和函数值均取离散值。

实际中遇到的信号一般是模拟信号,即时域连续信号,对其进行等间隔采样便可得到时域离散信号。由于时域离散信号是一串有序的数字集合,因此时域离散信号也可以称为序列。常用的典型序列包括:单位采样序列、单位阶跃序列、矩形序列和周期序列等。

2.1矩形序列R Nn

矩形序列的基本形式如下:

式中,N称为矩形序列的长度。

当N=4时,矩形序列R4(n)

的波形图如图1所示。

2.2傅里叶变换 FT

傅里叶变换(Fourier Transform)是一种线性的积分变换,通常用于将信号在时域和频域之间进行变换。序列的傅里叶变换定义为

     ①

存在的充分条件是序列绝对可和,即满足下式:

的傅里叶反变换为

上述①②式组成了一对傅里叶变换公式。

傅里叶变换在物理学、声学、光学、结构动力学、量子力学、通讯、金融等领域都有着广泛的应用。例如在数字信号处理过程中,傅里叶变换的典型用途是将信号分解成振幅分量和频率分量。

傅里叶变换拥有周期性、线性、对称性等诸多性质。

下面对矩形序列进行FT变换

文本框:  文本框:      0   π/2   π               作出其幅值(图2)和相位(图3)随频率的变化曲线如下所示

文本框: 图2

文本框: arg 文本框:  0                              文本框: π文本框: -π

2.3离散傅里叶变换 DFT

文本框: ③是一个长度为M的有限长序列,则定义的N点离散傅里叶变换(Discrete Fourier Transform)为

文本框: ④
的离散傅里叶逆变换为

式中,         N称DFT的变换区间长度,N≥M

③④通常称为离散傅里叶变换对

离散傅里叶变换的实质是有限长序列傅里叶变换的有限点离散采样,从而实现频域离散化,使数字信号处理可以在频域采用数值运算的方法进行,大大增加了数字信号处理的灵活性。另外,DFT有多种快速算法,使信号的实时处理和设备的简化得以实现。

离散傅里叶变换与傅里叶变换类似,拥有线性、隐含周期性、循环移位等性质。

下面对矩形序列进行DFT变换,设变换区间分别为4和8。

当变换区间N=4时,

当变换区间N=8时,

三、程序设计及图像处理

3.1矩形序列程序及图像

编写长度为8的矩形序列程序如下:

n=0:7;

x=[1 1 1 1 1 1 1 1 ];

stem(n,x,'.');

axis([-1 8 0 1.5])

title('长度为8的矩形序列');

xlabel('n');

ylabel('R8(n)')

文本框: 图4Matlab输出图像如图4所示

3.2矩形序列的傅里叶变换及图像

编写长度为8的矩形序列傅里叶变换程序如下:

n=0:7;

x=ones(1,8);

k=-200:200;

w=(pi/100)*k;

X=x*(exp(-j*pi/100)).^(n'*k);

magX=abs(X);

angX=angle(X);

subplot(2,1,1);

plot(w/pi,magX);

grid;

title('长度为8的矩形序列FT    幅度谱');

xlabel('ω/π');

ylabel('︳X(ejω)︳')

subplot(2,1,2);

plot(w/pi,angX);

grid;

title('长度为8的矩形序列FT    相位谱');

xlabel('ω/π');

ylabel('φ(ω)')

Matlab输出图像如图5所示

文本框: 图5

3.3矩形序列的离散傅里叶变换及图像

编写长度为8的矩形序列8点、64点离散傅里叶变换程序如下:

xn=[1 1 1 1 1 1 1 1];

Xk8=fft(xn,8);

Xk64=fft(xn,64);

k=0:7;wk=2*k/8;

subplot(3,2,1);

stem(wk,abs(Xk8),'.');

title('(1)矩形序列8点DFT    幅度谱');

xlabel('ω/π');ylabel('|X(ejω)|')

subplot(3,2,5);stem(wk,angle(Xk8),'.');

title('(2)矩形序列8点DFT    相位谱');

xlabel('ω/π');ylabel('φ(ω)');axis([0,2,-3.5,3.5])

k=0:63;wk=2*k/64;

subplot(3,2,2);stem(wk,abs(Xk64),'.');

title('(3)矩形序列64点DFT    幅度谱');

xlabel('ω/π');ylabel('|X(ejω)|')

subplot(3,2,6);stem(wk,angle(Xk64),'.');

title('(4)矩形序列64点DFT    相位谱')

xlabel('ω/π');ylabel('φ(ω)');

axis([0,2,-3.5,3.5])

文本框: 图
6
Matlab输出图像如图6所示

四、总结

4.1分析矩形序列FTDFT间的关系

离散傅里叶变换(DFT)的实质是对有限长序列进行傅里叶变换(FT)的有限点的离散采样,从而实现了频域的离散化。离散傅里叶变换的采样点数越多,输出信号频谱越趋近于原频谱。

五、心得体会

通过为期一周的数字信号处理课程设计,使我对所学知识有了更为深刻的理解和认识。教材中的定理、公式和例题对我的课程设计起到了很好的导向作用,同时我也掌握了如何使用数字信号处理软件MATLAB。通过编程输出图像,进行观察,使我对本次课题所研究的FT和DFT有了更加全面的了解。

我觉得近一周的课程设计对我来说,它不仅仅是让我们把所学的理论知识与实践联系起来,更重要的是它让我们提高了自己的实际动手能力,锻炼了我们独立解决问题的能力。

在本次课程设计过程中,我学习到了许多其他学科的知识,并且对以前所学的内容也有了更加深刻的理解。但是在本次课程设计过程中,我也发现我对许多知识还未做到灵活应用,在以后的学习道路上我还应该继续努力。

六、参考文献

[1]数字信号处理/高西全 丁玉美

     西安电子科技大学出版社,20##年

[2]数字信号处理教程/王世一

北京理工大学出版社,20##年

[3]数字信号处理/(美)普埃克 等著,方艳梅 等译

电子工业出版社,20##年

[4]数字信号处理的MATLAB实现 /万永革

科学出版社,20##年

[5]傅里叶变换在信号处理中的优越性/李亚峻 史兴荣

     天津科技大学电子信息与自动化学院 300222

[6]DFT在信号谱分析中的应用/林爱英 滕红丽 袁超

     河南农业大学 450002

[7]MATLAB在数字信号处理中的应用/巩萍 赵杰

     徐州医学院医学影像学院 221004

七、致谢

在本次课程设计中,我在收获知识的同时也收获了阅历,收获了成熟与喜悦。在此过程中,通过大量的查阅资料、请教指导老师、与同学相互探讨,使我在专业知识和动手实践方面都得到了很大的提升。在此,我要对给予过我帮助的老师们、同学们,表示衷心的感谢和由衷的敬意。

课设的成功离不开老师的耐心指导和帮助,少不了各位成员的相互配合。没有大家的共同努力,也就收获不了今天的成功,在此,要再次感谢所有人的努力与帮助,谢谢各位。

更多相关推荐:
数字信号处理报告

数字信号处理B课程项目题目组号任课教师实施报告数字音效处理器4020xx年10月18日1报告提纲一课程项目要求设计要求设计一个数字音效处理器能够实现语音信号的各种音效处理要求1输入语音信号源为实际环境采集语音2...

数字信号处理课程设计报告

课程设计报告课程名称课题名称专业通信工程班级学号姓名指导教师20xx年12月25日湖南工程学院课程设计任务书课程名称数字信号处理课题数字滤波器设计及滤波专业班级学生姓名学号指导老师审批任务书下达日期20xx年1...

中南大学数字信号处理实验报告

中南大学数字信号处理实验报告学生姓名学号指导教师学院专业班级完成时间2目录实验一实验二常见离散时间信号的产生和频谱分析3实验结果与分析5数字滤波器的设计14实验结果与分析173实验一常见离散时间信号的产生和频谱...

数字信号处理实验报告

南京信息工程大学数字信号处理实验报告学院:电子与信息工程学院班级:11通信1班学号:XXX姓名:XX指导教师:XX20XX/12/6实验一Matlab基本知识和信号处理工具箱一、实验目的1、了解Matlab的基…

数字信号处理阅读报告

Dsp在通信领域的应用10通信1班任俊松1004140116一DSP在移动通信中的应用DSP在GSM中的应用GSM的功能框图如图1所示图中一个典型的数字通信模块包括信号压缩差错检测加密调制和均衡最初人们认为低功...

数字信号处理实践报告

数字信号处理实践报告实践报告题目专业学生姓名准考证号指导教师20xx年5月一目的与要求1掌握数字信号处理基础课程的基本理论2掌握应用MATLAB进行数字信号处理的程序设计方法二主要内容设计题目及设计要求已知低通...

数字信号处理的认识报告

数字信号处理认识报告20xx90512101文通084-1安森令《数字信号处理》是我们通信工程和电子类专业的一门重要的专业基础课程,主要任务是研究数字信号处理理论的基本概念和基本分析方法,通过建立数学模型和适当…

数字信号处理matlab报告

实验一熟悉matlab一实验内容练习matlab的使用熟悉离散卷积运算产生复指数序列e005j6n二实验目的1掌握离散卷积计算机实现2进一步对离散信号卷积算法的理解三原理及算法概要算法把冲激响应hn与输入序列x...

数字信号处理实验报告-FFT算法的MATLAB实现

数字信号处理实验报告实验二FFT算法的MATLAB实现一实验目的通过本实验的学习掌握离散傅立叶变换的理论特别是FFT的基本算法以及其在在数字信号处理中的应用二实验内容题一若xncosnpi6是一个N12的有限序...

数字信号处理实习报告

中国地质大学武汉数字信号处理上机实习学生姓名班级学号指导老师题目一离散卷积计算一实验题目设线性时不变LTI系统的冲激响应为hn输入序列为xn1hn08n0n4xnunun42hn08nunxnunun43hn0...

数字信号处理报告

高海拔高寒地区高速公路构造物安全监测和沿途环境变化信息获取及无线传输技术摘要本文提出了一种基于多点震动信号的行驶车辆检测方法并分析了相关数字信号处理技术利用加速度传感器采集车辆对路面作用的连续激励造成的地震动信...

数字信号处理综合设计报告

江南大学物联网工程学院课题数字信号处理综合设计报告设计题目信号处理系统综合设计专业通信工程班级通信0902姓名吴磊学号07020xx225指导教师陈文驰张建平20xx年6月29日一设计概述目的和要求数字信号处理...

数字信号处理报告(25篇)