- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
青 岛 科 技 大 学
《数字信号处理》课程设计报告
题 目 __________________________________
______________________________________
指导教师__________________________
学生姓名__________________________
学生学号__________________________
_______________________________院(部)_____________________专业__班
____2014__年 _12__月 __25_日目的与要求
1.进一步巩固数字信号处理中的基本原理与方法,提高分析、解决实际问题的能力。
2.熟练掌握一门计算机语言,进行数字信号处理应用的开发设计,训练基本技能,如查阅设计资料和手册、程序的设计、调试等。1.用以下方式产生三个不同频段的信号:(1)自己录制一段正常的语音文件;(2)录制一段环境噪声文件;(3)利用MATLAB产生一个不同于以上频段的信号。
2.对上述三个信号,进行频谱分析,画出三路信号的时域波形和频谱图,对进行对比分析。
3.根据三路信号的频谱特点得到性能指标,由性能指标设计三个滤波器,并画出各滤波器的频域响应。
4.将三路信号叠加为一路信号。
5.用自己设计的滤波器对合成的信号进行滤波,分析得到信号的频谱,并画出滤波后信号的时域波形和频谱。
2.主要技术和原理
2.1语音的输入、处理以及信号的叠加
⑴Matlab中语音信号的输入为[x,fs,bits]=wavread(C:\Users\lenovo\Desktop\原始语音.wav,[50000 60000]);其中wavread函数读取Microsoft的wav格式音频文件x为自己随意定义的一个输出函数,fs 是采样频率 bits 表示每个样点的位数X_voice=x(:,1)因为音频信号都有两个声道所以提取出来一个声道进行分析Plot(x)为画出当前的波形,freqz(x)是求离散系统频响特性的函数f1=22000;
f2=25000;
fs=50000;
t=1/fs;
length_x=length(x); input_x=zeros(1,length_x);
for i=1:1:length_x
input_x(i)=sin(2*pi*f1*i*t)+sin(2*pi*f2*i*t);
input_x=input_x;
end
正常语音信号的代码:
[x,fs,bits]=wavread(C:\Users\lenovo\Desktop\原始语音.wav,[50000 60000]);X_voice=x(:,1);
input_x=X_voice;
噪声语音的代码:
[x1,fs1,bits1]=wavread(C:\Users\lenovo\Desktop\??ò?1.wav,[50000 60000]);
X3_voice=x1(:,1);
input_x1=X3_voice;
但是信号叠加有一个非常重要的条件就是点数必须相同,不仅点数相同而且点数矩阵得是同一类型,在原始语音和噪声语音的点数10001个,但他们产生的是10001行1列矩阵,而matlab产生的正弦信号却是1行10001列矩阵,结果也不能叠加,这就需要将1行10001列矩阵变成10001行1列矩阵,input_x=input_x;反转语句就是讲inputfor i=1:1:length_x
y1=X_voice+X3_voice+input_x;
end
2.2FIR滤波器设计原理
⑴时间窗口设计法是从单位脉冲响应序列着手,使h(n)逼近理想的单位脉冲响应序列hd(n)。我们知道hd(n)可以从理想频响通过付氏反变换获得
但一般来说,理想频响是分段恒定,在边界频率处有突变点,所以,这样得到的理想单位脉冲响应hd(n)往往都是无限长序列,而且是非因果的。但FIR的h(n)是有限长的,问题是怎样用一个有限长的序列去近似无限长的。
最简单的办法是直接截取一段hd(n)代替 h(n) 。这种截取可以形象地想象为h(n)是通过一个“窗口”所看到的一段hd(n),因此 ,h(n)也可表达为h(n)和一个“窗函数”的乘积,即
h(n)=w(n) hd(n)
在这里窗口函数就是矩形脉冲函数RN(n),当然以后我们还可看到,为了改善设计滤波器的
文档评论(0)