数字信号与处理_第1页
数字信号与处理_第2页
数字信号与处理_第3页
数字信号与处理_第4页
数字信号与处理_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、数字信号与处理信号的分析与处理综合实验 学生姓名 学 号 实验二 一、实验目的目的:综合运用数字信号处理的理论知识进行信号的采样,重构,频谱分析和滤波器的设计,通过理论推导得出相应结论,再利用Matlab作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。二、基本要求1掌握数字信号处理的基本概念、基本理论和基本方法;2学会MATLAB的使用,掌握MATLAB的程序设计方法;3掌握用MATLAB设计简单实验验证采样定理的方法;4掌握在Windows环境下语音信号采集的方法;5学会用MATLAB对信号进行频谱分析;6掌握MATLAB设计FIR和IIR数字滤波器的方法;三、实验内容1 利

2、用简单正弦信号设计实验验证采样定理: (1) Matlab产生离散信号的方法,作图的方法,以及基本运算操作(2) 对连续正弦信号以不同的采样频率作采样(3) 对采样前后信号进行傅立叶变换,并画频谱图(4) 分析采样前后频谱的有变化,验证采样定理。掌握画频谱图的方法,深刻理解采样频率,信号频率,采样点数,频率分辨率等概念2 真实语音信号的采样重构:录制一段自己的语音信号,并对录制的信号进行采样;画出采样前后语音信号的时域波形和频谱图;对降采样后的信号进行插值重构,滤波,恢复原信号。(1) 语音信号的采集(2) 降采样的实现(改变了信号的采样率)(3) 以不同采样率采样后,语音信号的频谱分析(4)

3、 采样前后声音的变化(5) 对降采样后的信号进行插值重构,滤波,恢复原信号3 带噪声语音信号的频谱分析(1) 设计一频率已知的噪声信号,与实验2中原始语音信号相加,构造带噪声信号(2) 画出原始语音信号和加噪声后信号,以及它们的频谱图(3) 利用频谱图分析噪声信号和原语音信号的不同特性4 对带噪声语音信号滤波去噪:给定滤波器性能指标,采样窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采样的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;(1) 分析带噪声信号频谱,找出噪声所在的频率段(2) 利用mat

4、lab中已有的滤波器滤波(3) 根据语音信号特点,自己设计滤波器滤波(4) 比较各种滤波器性能(至少四种),选择一种合适的滤波器将噪声信号滤除(5) 回放语音信号,比较滤波前后声音的变化四、实验原理参考数字信号处理教材数字信号处理的MATLAB实现万永革 编著五、主要实验仪器及材料微型计算机、Matlab。六、实验步骤1设计一简单正弦信号,通过改变采样率观察采样前后的信号变化。例如:假设有一振幅为1,频率为10Hz,相位为0.3的模拟信号,即,用0.01s的采样间隔(采样频率为100Hz)来表示原始信号(注意:实际上模拟信号不能用离散值表示,此处为了在计算机上表示,用采样率非常高的离散信号表示

5、模拟信号)。分别以5Hz,10Hz(每秒采样10次,即采样间隔为0.1s),20Hz,40Hz,80Hz,200Hz对原始信号进行采样,画出采样前后的信号,并画出其频谱图,对比前后的变化,验证采样定理。(1)可以用t=0:1/fs:9/f; 取9个周期,通过改变采样率,自动改变采样点数。(2)也可以通过设置dt1(采样间隔),已知采样点数n1,t1=n1*dt1,如图所示,采样率为40Hz时的原始信号,采样过程和采样后的信号时域图和频谱图,可见,当采样率大于原始信号频率的两倍时,采样前后信号频率基本不发生变化,信号不失真。图2-1 采样的过程图2-2 原始信号和采样后信号的频谱2语音信号的采集

6、。利用windows下的录音机或其他软件,录制一段自己的话音,时间控制在1秒左右。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,要求理解采样频率、采样位数等概念。wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。y,fs,nbits=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。y=wavread(file,N),读取前N点的采样值放在向量y中。y=wavread(file,N1,N2),读取从N1

7、点到N2点的采样值放在向量y中。3对真实语音信号的采样、重构。(1)降采样:利用windows下的录音机录制的音频采样率是固定的fs(=22050),可以选择以下函数实现对语音信号的降采样。y=x(1:N:length(x); %对原始信号每隔N个点取一位,即采样率变为原来的1/Ny=resample(yn,L,M); %采样率变为原来的L/M倍y=downsample(yn,N); %采样率变为原来的1/N倍改变采样率为原来的1/2倍,1/4倍,1/20倍,1/50倍,1/100倍等,分别画出降采样前后的信号波形和频谱图,分析采样前后信号的变化。图 2-3 采样率为原来的1/2时的信号波形频

8、谱图图 2-4 采样率为原来的1/10时信号波形频谱图在MATLAB中,函数sound可以对声音进行回放。其调用格式:sound(x,fs,bits);通过调用此函数,感觉采样前后声音的变化。(2)重构原信号:降采样后,信号的采样率和采样点数同时变化。如采样率变为原来的1/2,即对原始信号每隔一个点采样。如果要恢复原始信号,即信号长度和采样率须变为原来同样大小。所以,必须对降采样后信号进行插值重构。具体过程参见附件1中例子。对采样后的真实语音信号进行插值重构,滤波,恢复原始信号。画出插值前后信号的波形以及频谱图,并将重构后信号与原始信号进行比较。如,对采样率降为原来1/5的降采样后信号插值重构

9、,结果如下图所示。图2-5 采样率为原来的1/5时的波形频谱图图2-6 插值后的信号波形频谱图图2-7 低通滤波器的频率响应图图2-8 滤波后的波形频谱图调用sound函数感受插值后的声音,发现会有高频的噪声。经过低通滤波器之后,高频噪声被滤出。但是,因为之前的原始信号经过了降采样,所以插值后的效果一定不如原始声音。也可用用wavwrite函数将经过处理的语音信号保存下来,调用格式为如wavwrite(y,fs,bits,'sound.wav'),其中,y为所要保存的语音信号,fs为其采样率,bits为采样位数,'sound.wav'是保存的语音信号的文件名。4

10、语音信号的频谱分析要求:首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。x,fs,bits =wavread('e:sound1.wav',1024 5120); %读取1024 5120段%语音信号数据;如果不指定所读取读取语音信号数据的长度,则读取整段语音信号X=fft(x,4096); % fftshift(fft(x)N=length(x);k=0:N-1;subplot(221);plot(k,x);title('原始信号波形');sub

11、plot(222);plot(-N/2:N/2-1)/N*fs,abs(X);title('原始信号频谱');5对原始语音信号加噪声:设计频率已知的噪声信号或者用自然噪声信号加在原始语音信号上,构建带噪声信号。如对原始信号加上频率为5000的正弦波噪声信号,程序如下:x,fs,bits =wavread('sound1.wav'); %读取原始语音信号X=abs(fftshift(fft(x); %原始信号频谱c1=0.01*sin (2*pi*5000*k/fs); %构建频率为5000Hz的正弦波噪声信号yn=x+c1' %构建带噪声信号Yn=abs

12、(fftshift(fft (yn); %求带噪声信号频谱subplot(321);plot(x);title('原始信号波形');subplot(322);plot(-N/2:N/2-1)/length(k)*fs,X);title('原始信号频谱');subplot(323);plot(yn);title('带噪声信号波形');subplot(324);plot(-N/2:N/2-1)/length(k)*fs,Yn);title('带噪声信号频谱');运行程序,结果如图2-9所示。从频谱图可以看出,原始信号频谱段集中在050

13、00Hz之间,主要频率集中在0Hz附近的低频部分。加上噪声信号后,在5000Hz处有个幅值非常大的的高频成份,即以上所加的高频正弦波噪声信号。七,实验结果1、设计一简单正弦信号,通过改变采样率观察采样前后的信号变化。选取正弦信号 ,原始信号: 0.01s的采样间隔(采样频率为100Hz)表示。分别以5Hz,10Hz,20Hz,40Hz,80Hz,200Hz对原始信号进行采样,画出采样前后的信号,并画出其频谱图,对比前后的变化,验证采样定理。结果图如下fs=5Hzfs=10Hzfs=20Hzfs=40Hzfs=80Hzfs=200Hz对比不同采用那个频率下信号的变化可验证:只有在 fs(采样频率

14、)2f(信号频率)时,信号才能保持原有时域、频域特性,不失真。2、对真实语音信号的采样、重构 读取样本声音文件“wang yu.wav”,并对其进行1/2倍,1/4倍,1/20倍,1/50倍,1/100倍的降采样,画出降采样前后信号的波形和频谱; 对采样后的语音信号进行插值重构,滤波,恢复原始信号。画出插值前后信号的波形以及频谱图。结果图如下:原始信号1/2采样1/4采样1/20采样1/50采样1/100采样将重构后的信号与原信号进行比较,采样率为1/2 和1/4 时信号还能基本保持原样,采样率为1/20 时已经丢失了一部分细节,但大体上还保持原信息,而采样率提高到1/50 和1/100时,基

15、本上看不出信号原样。随着采样率的提高,重构后的信号听起来也是越来越模糊,1/20 时就听不清楚了。3、对原始语音信号加噪声对原始信号“wang yu.wav”加正弦波噪声信号,时域图及频域图如下:4、设计数字滤波器(1), 低通数字滤波器通带截止频率wp1=0.30*pi; 阻带截止频率ws1=0.45*pi; 通带波纹rp1=1, 和阻带波纹rs1=100,低通滤波器的幅频和相频特性如下:用汉宁窗设计低通滤波器(2),高通:数字滤波器通带截止频率wp=300*2/fs; 阻带截止频率ws=200*2/fs; 通带波纹rp=1, 和阻带波纹rs=20;(4) IIR带通:数字滤波器通带截止频率

16、wp21=0.42*pi;wp22=0.49*pi;阻带截止频率ws21=0.44*pi;ws22=0.47*pi;通带波纹rp2=1,阻带波纹rs2=30; (4)最优化设计带阻滤波器5、用滤波器对信号进行滤波用FIR低通滤波器对噪声污染信号滤波六、 思考题1、 IIR与FIR 设计方法的各自特点是什么?IIR的特点:先按指标设计模拟滤波器,再转换为数字滤波器;FIR的特点:直接按指标设计数字滤波器。2、 IIR与FIR各自优缺点是什么?IIR:优点:相同的性能下阶次低;零极点可同时起作用; 缺点:相位是非线性的;不一定稳定;运算误差比较大,对频率分量的选择性不好。FIR:优点:相位一定是线

17、性的;系统一定是稳定的;运算误差比较小;对频率分量的选择性好。缺点:阶次高。3、 为什么有这么多的设计方法?为了满足各种方面的需要。当滤波器类型简单,参数固定时宜采用窗函数或者脉冲响应不变法,已达到最为精确的滤波效果;当滤波器类型较复杂,有多个通带阻带时用窗函数法很繁琐,宜采用最优化设计方法进行快速设计;而且还要根据滤波器的不同类型选择方法,比如椭圆滤波器就和使用双线性变换法设计。4、 有没有一种滤波器在所有情况下都是最佳的?没有。任何一种滤波器都有性能上的优缺点,满足了一方面的需求,就难以满足另一方面的需求,比如说阶次和线性相位的矛盾就是这样。我们在设计的时候应该根据具体情况的要求,优先满足

18、可以达到较好总体效果的标准。七、 收获和总结这节课主要进行了语音信号的采样、滤波、插值、重构练习,学习并实践了IIR、FIR数字滤波器的设计。语音信号的处理相对简单,但其实还是比较困难的。在练习过程中,我在滤波器设计上花了比较多的时间,虽然设计出来了,但在细节上还是比较模糊,不能够理解。以致在编程时出现了很多细小的错误,希望以后能够多加注意,这次试验让我对滤波器的功能更加清楚,加深了对课本内容的理解。附录:代码1, 采样定理f=10;fs=100;t=0:1/fs:9/f;x=sin(2*pi*f*t+0.3); % 原始信号fs1=5;t1=0:1/fs1:9/f;x1=sin(2*pi*f

19、*t1+0.3);figure,subplot(5,1,1),plot(t,x);title('原始信号');subplot(5,1,2),plot(t,x);hold on;plot(t1,x1,'og');title('5HZ采样过程');subplot(5,1,3),plot(t1,x1);title('5HZ采样后过程1');X=fft(x); % 傅里叶变换subplot(5,1,4),plot(abs(X);title('傅里叶变换');X2=fftshift(fft(x);subplot(5,1,5)

20、,plot(-45:45)/100*fs,abs(X2);title('移动后的傅里叶变换');figure,fs2=10;t2=0:1/fs2:9/f;x2=sin(2*pi*f*t2+0.3);subplot(5,1,1),plot(t,x);title('10HZ原始信号');subplot(5,1,2),plot(t,x);hold on;plot(t2,x2,'og');title('10HZ采样过程2');subplot(5,1,3),plot(t2,x2);title('采样后信号2');X=fft(

21、x);subplot(5,1,4),plot(abs(X);title('傅里叶变换');X2=fftshift(fft(x);>> subplot(5,1,5),plot(-45:45)/100*fs,abs(X2);title('移动后的傅里叶变换');fs3=20;t3=0:1/fs3:9/f;x3=sin(2*pi*f*t3+0.3);figure,subplot(5,1,1),plot(t,x);title('原始信号');subplot(5,1,2),plot(t,x);hold on;plot(t3,x3,'og

22、');title('20HZ采样过程3');subplot(5,1,3),plot(t3,x3);title('20HZ采样后信号3');X=fft(x);subplot(5,1,4),plot(abs(X);title('傅里叶变换');X3=fftshift(fft(x);>> subplot(5,1,5),plot(-45:45)/100*fs,abs(X3);title('移动后的傅里叶变换');fs4=40;t4=0:1/fs4:9/f;x4=sin(2*pi*f*t4+0.3);figure,sub

23、plot(5,1,1),plot(t,x);title('原始信号');subplot(5,1,2),plot(t,x);hold on;plot(t4,x4,'og');title('40HZ采样过程4');subplot(5,1,3),plot(t4,x4);title('40HZ采样后信号4');X=fft(x);subplot(5,1,4),plot(abs(X);title('傅里叶变换');X4=fftshift(fft(x);>> subplot(5,1,5),plot(-45:45)/1

24、00*fs,abs(X4);title('移动后的傅里叶变换');fs5=80;t5=0:1/fs5:9/f;x5=sin(2*pi*f*t5+0.3);figure,subplot(5,1,1),plot(t,x);title('原始信号');subplot(5,1,2),plot(t,x);hold on;plot(t5,x5,'og');title('80HZ采样过程5');subplot(5,1,3),plot(t5,x5);title('80HZ采样后信号5');X=fft(x);subplot(5,1,

25、4),plot(abs(X);title('傅里叶变换');X5=fftshift(fft(x);>> subplot(5,1,5),plot(-45:45)/100*fs,abs(X5);title('移动后的傅里叶变换');fs6=200;t6=0:1/fs6:9/f;x6=sin(2*pi*f*t6+0.3);figure,subplot(5,1,1),plot(t,x);title('原始信号');subplot(5,1,2),plot(t,x);hold on;plot(t6,x6,'og');title(&

26、#39;200HZ采样过程6');subplot(5,1,3),plot(t6,x6);title('200HZ采样后信号6');X=fft(x);subplot(5,1,4),plot(abs(X);title('傅里叶变换');X6=fftshift(fft(x);>> subplot(5,1,5),plot(-45:45)/100*fs,abs(X6);title('移动后的傅里叶变换');2,语音信号N=22000;file='D:我的文档桌面wang yu.wav'x=wavread(file);x,

27、fs,nbits=wavread(file);x=wavread(file,N);y=x(:,1);M1=2;y1=resample(y,1,M1); % 采样率变为原来的二分之一倍N2=4;y2=downsample(y,N2); % 采样率变为原来的四分之一N3=20;y3=downsample(y,N3); % 采样率变为原来的二十分之一N4=50;y4=downsample(y,N4); % 采样率变为原来的五十分之一N5=100;y5=downsample(y,N5); % 采样率变为原来的一百分之一Y=fft(y);Y1=fft(y1); Y2=fft(y2);Y3=fft(y3)

28、;Y4=fft(y4);Y5=fft(y5);N=200;B=firls(N,0 0.09 0.11 1,1 1 0 0);xx=fftfilt(B,y);xx1=fftfilt (B,y1); % 利用低通滤波器滤波xx2=fftfilt (B,y2);xx3=fftfilt (B,y3);xx4=fftfilt (B,y4);xx5=fftfilt (B,y5);figure,subplot(2,2,1),plot(-N/2:N/2)/(N/2),abs(fftshift(fft(B);title('FIR低通滤波器');subplot(2,2,3),plot(y);tit

29、le ('原始信号波形');subplot(2,2,4),plot(-11000:11000-1)/22000*fs,abs(fftshift(Y);title ('原始信号频谱');figure,subplot(3,2,1),plot(y1);title ('1/2采样后信号波形');subplot(3,2,2),plot(-5500:5500-1)/11000*fs,abs(Y1);title ('1/2采样后信号频谱');subplot(3,2,3),plot(y1);title ('1/2插值后信号波形')

30、;subplot(3,2,4),plot(-5500:5500-1)/11000*fs,abs(Y1);title ('1/2插值后信号频谱');subplot(3,2,5),plot(xx1);title('1/2滤波后信号');subplot(3,2,6),plot(-5500:5500-1)/11000*fs,abs(fftshift(Y1);title('1/2滤波后信号频谱');figure,subplot(3,2,1),plot(y2);title ('1/4采样后信号波形');subplot(3,2,2),plot(

31、-2750:2750-1)/5500*fs,abs(Y2);title ('1/4采样后信号频谱');subplot(3,2,3),plot(y2);title ('1/4插值后信号波形');subplot(3,2,4),plot(-2750:2750-1)/5500*fs,abs(Y2);title ('1/4插值后信号频谱');subplot(3,2,5),plot(xx2);title('1/4滤波后信号');subplot(3,2,6),plot(-2750:2750-1)/5500*fs,abs(fftshift(Y2);title('1/4滤波后信号频谱');figure,subplot(3,2,1),plot(y3);title ('1/20采样后信号波形');subplot(3,2,2),plot(-550:550-1)/1100*fs,abs(Y3);title ('1/20采样后信号频谱');subplot(3,2,3),plot(y3);title (&#

温馨提示

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

评论

0/150

提交评论