武汉科技大学 信号与系统课程设计.doc_第1页
武汉科技大学 信号与系统课程设计.doc_第2页
武汉科技大学 信号与系统课程设计.doc_第3页
武汉科技大学 信号与系统课程设计.doc_第4页
武汉科技大学 信号与系统课程设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二一二二一三学年第 二 学期信息科学与工程学院课程设计报告书课程名称: 信号与系统 班 级: 电信DB XXXXX 学 号: 201112135Xxx 姓 名: XXXXX 指导教师: XXXXX 目录第一节 需求分析第二节 理论分析和设计第三节 详细设计第四节 调试分析和过程描述第五节 总结一、需求分析1、设计题目与要求题目一:设有直流信号,现对它进行均匀取样,形成序列。试讨论若对该序列分别作加窗、补零和插零处理,信号频谱结构有何变化。(提示:可先做理论推导,然后将理论推导和编程得到的结果结合起来分析)题目二:在Matlab 环境中,利用编程方法对语音信号进行采集和谱分析。(1)通过至少两种方法实现对语音信号的采集,做出时域波形图。(2)对语音信号进行谱分析,做出频谱图,总结出语音信号的特点。2、系统功能对于题目一,先对幅度为1的直流信号进行均匀采样形成序列,然后对得到的序列进行加窗、补零和插零处理,观察信号频谱结构的变化情况。对于题目二,可以用计算机的声音编辑工具录制一段语音信号,生成.wav文件,得到语音信号;也可以将声卡作为对象处理采集语音信号。通过plot函数可以得到时域波形图,对时域信号进行快速傅里叶变换可以的到语音信号的频谱图,对这些图进行分析可以总结出语音信号的特点。二、理分析和设计1、理论分析对于题目一,采样得到的序列其周期为任意整数,若对其加矩形窗进行截断,并将截断的信号做快速傅里叶变换,由于做离散傅里叶变换的点数为原序列的周期,故可以得到原序列的真实谱。对加窗得到的信号进行补零,若补零的点数远多于窗的时域长度,补零之后的这个序列可以看做对离散的门函数加窗得到的,所以补零后的频谱接近于离散的Sa函数;若补零点数远小于窗的时域长度,补零之后的这个序列可以近似看做对原序列()加窗得到的,所以补零后的频谱近似于原序列的频谱。对加窗得到的信号进行插零,可得到插零后的频谱。对于题目二,可以用计算机的声音编辑工具录制一段语音信号,生成.wav文件,得到语音信号;也可以将声卡作为对象处理采集语音信号。通过plot函数可以绘制出其时域波形图,再对时域信号进行快速傅里叶变换可以得到语音信号的频谱,观察这些图的特点可以总结出语音信号的特点。2、计算题目一:设g(t)=1的傅里叶变换为G(j).由公式:可得:G(j)=2().设g(n)=1的N点离散傅里叶为G(K).由公式:可得: G(K)=2.题目二:设语音信号为x(t),则其序列x(n)的离散傅里叶变换记为X(K).由离散傅里叶变换的定义公式:.可以得到语音信号的频谱。在Matlab环境中,是通过fft函数来实现的,也即是通过离散傅里叶变换的快速算法来实现的,从而极大的提高了计算的速度。三、详细设计题目一:原信号的波形:01(t)gt经过傅里叶变换后的频谱:0(2)G(j)采样后得到的序列: 采样后的序列进行加矩形窗处理。加时域长度为5点的矩形窗,源程序及运行所得图像如下:n=0:4 %对原序列加时域长度为5点的窗 g(n+1)=1;G=fft(g,5) %进行5点的快速傅里叶变换stem(0:4,abs(G),fill) %绘出频谱图 title(对g(n)加时域为5点的窗并进行5点的快速傅里叶变换)xlabel(fontsize14 bfK rightarrow)ylabel(fontsize14 bfG(K) rightarrow)加时域长度为100点的矩形窗,源程序及运行所得图像如下:n=0:99 %对原序列加时域长度为100点的窗g(n+1)=1;G=fft(g,100) %进行100点的快速傅里叶变换stem(0:99,abs(G),fill) %绘出频谱图 title(对g(n)加时域为100点的窗并进行100点的快速傅里叶变换)xlabel(fontsize14 bfK rightarrow)ylabel(fontsize14 bfG(K) rightarrow) 加窗后的序列进行补零处理,分两种情况进行补零。情况一:补零的长度远大于序列的长度。对5点的序列补上105个0,源程序及运行所得图像如下:for n=0:4 %对原序列加时域长度为5点的窗 g(n+1)=1; endfor n=5:109 g(n+1)=0 %补105个零 endG=fft(g,110) %进行110点快速傅里叶变换stem(0:109,abs(G),fill)axis(0 109 0 5)title(对5点的序列补上105个0并进行110点快速傅里叶变换)xlabel(fontsize14 bfK rightarrow)ylabel(fontsize14 bfG(K) rightarrow)情况二:补零的长度远小于序列的长度。对100点的序列补上10个0,源程序及运行所得图像如下:for n=0:99 %对原序列加时域长度为100点的窗 g(n+1)=1;endfor n=100:109 %补10个零 g(n+1)=0endG=fft(g,110) %进行110点快速傅里叶变换stem(0:109,abs(G),fill)axis(0 109 0 100)title(对100点的序列补上10个0并进行110点快速傅里叶变换)xlabel(fontsize14 bfK rightarrow)ylabel(fontsize14 bfG(K) rightarrow)对100点的序列补上1个0,源程序及运行所得图像如下:for n=0:99 %对原序列加时域长度为100点的窗 g(n+1)=1;endfor n=100:100 %补1个零 g(n+1)=0endG=fft(g,101) %进行101点快速傅里叶变换stem(0:100,abs(G),fill)axis(0 100 0 100)title(对100点的序列补上1个0并进行101点快速傅里叶变换)xlabel(fontsize14 bfK rightarrow)ylabel(fontsize14 bfG(K) rightarrow)从情况二中的两幅图对比可以得出如下结论:若直流序列所加矩形窗的时域长度越长且对其补的零越短,对其进行快速傅里叶变换后其频谱越接近真实谱。对加窗后的序列进行插零处理。对加窗后所得的5点序列,每隔一个点插一个零,源程序及运行所得图像如下:g=1 0 1 0 1 0 1 0 1G=fft(g,9) %进行9点快速傅里叶变换n=0:8G(n+1)=Gstem(0:8,abs(G),fill) %绘出插零的频谱图title(对序列插零并进行快速傅里叶变换)xlabel(fontsize14 bfK rightarrow)ylabel(fontsize14 bfG(K) rightarrow)题目二:方法一:用计算机的声音编辑工具录制一段语音信号,生成.wav文件,得到语音信号。源程序及运行所得图像如下:x,fs,bits=wavread(C:Documents and SettingsAdministrator桌面上海滩片头音乐.wav);sound(x,fs,bits)X=fft(x,12000);subplot(2,1,1)plot(x);title(原始信号波形);subplot(2,1,2)plot(abs(X);title(经快速傅里叶变换后的信号波形)方法二:声卡作为对象处理采集语音信号。源程序及运行所得图像如下:function xinhaoAI = analoginput(winsound); %winsound为声卡的驱动程序chan = addchannel(AI,1);% Add channels - Add one channel to AI.% Configure property values - Assign values to the basic setup properties, and %create the variables blocksize and Fs, which are used for subsequent analysis. %The actual sampling rate is retrieved since it may be set by the engine to a %value that differs from the specified value.set(AI,SampleRate,8000) % 设置采样速率为8000HzActualRate = get(AI,SampleRate); % 从AI中获取实际采样速率set(AI,TriggerChannel,chan) % 设置触发通道set(AI,TriggerType,software); % 设置触发类型set(AI,Triggercondition,rising); % 设置为电压上升至某值后触发set(AI,TriggerConditionValue,0.013); % 设置触发电压值set(AI, TriggerDelay, -1); % 设置触发时延set(AI, TriggerDelayUnits, seconds); % 设置触发时延的单位set(AI,timeout,2) % 定义超时值Fs = ActualRate; % 设置采样速率clear data1;start(AI) % 开始采样try data1,time=getdata(AI); % 将采样得到的数据保存到data1,采样时间保存到timecatch time=0;data1=0; disp(A timeout occurred.);endsubplot(2,1,1) % 绘制2行1列的第1张子图plot(time,data1) % 以时间为横轴,数据为纵轴作图xlabel(Time (sec.) % 标注横坐标ylabel(Signal Level (Volts) % 标注纵坐标grid on % 添加网格subplot(2,1,2)M=fft(data1,1024)plot(time,data1)grid on通过对语音信号的观察和分析发现,语音信号主要有下面两个特点: 在时域内,语音信号具有“短时性”的特点,即在总体上,语音信号的特征是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。 在频域内,语音信号的频谱分量主要集中在3003400Hz的范围内。利用这个特点,可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出,然后按8kHz的采样率对语音信号进行采样,就可以得到离散的语音信号。 四、调试分析过程描述在对题目一中的信号进行补零处理时,做了两种情况的补零:l 补零的点数远多于窗的时域长度。l 补零点数远小于窗的时域长度。但两种情况得到的频谱不一样。分析如下:若补零的点数远多于窗的时域长度,补零之后的这个序列可以看做对离散的门函数加窗得到的,所以补零后的频谱接近于离散的Sa函数;若补零点数远小于窗的时域长度,补零之后的这个序列可以近似看做对原序列()加窗得到的,所以补零后的频谱近似于原序列的频谱。在题目二中,用计算机的声音编辑工具录制一段语音信号,生成.wav文件,得到语音信号。对此语音信号进行频谱分析时,开始得到的频谱是一等于零的频谱线,说明没有声音信号,但实际声音信号的波形已经绘出。这一矛盾分析如下:过观察语音信号的时域波形图发现,开始一段时间是不存在语音信号的,由于做快速傅里叶变换的点数取的是4096点,即取的点数太少了,故是对语音信号等于零的部分做的快速傅里叶变换,因此得到的频谱是一等于零的频谱线。通过将做快速傅里叶变换的点数增加到12000点,就得到了语音信号的频谱。五、总结首先,通过学习使自己对课本上的知识能够用于实践,使得理论与实践相结合,加深自己对课本知识的理解,同时也锻炼了自己的查阅资料的能力,能够充分利用图书馆去查阅资料增加许多课本以外的知识,学会了对语音信号采集的两种方法,用计算机的声音编辑工具录制一段语音信号,生成.wav文件,得到语音信号;将声卡作为对象处理采集语音信号。能对MATLAB 等软件操作,能达到学以致用。发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论