您好,欢迎访问三七文档
《数字信号处理》课程设计报告设计一信号的基本运算【一】设计目的熟悉信号的基本运算,通过仿真结果加深理解。【二】设计内容1.现有一段以采样频率8192Hz采样得到的语音数据x(k),为了模仿出回音的效果,可以对数据进行如下处理:x(k)=x(k)+a*x(k-d),其中d为时延,a为时延信号的衰减幅度。根据上述原理,进行仿真实验,并演示回声的效果。(参数:时延d=0.4秒,衰减幅度a=0.5)2.对上述语音信号进行时间反转x(-k)、上采样x(2k)、下采样x(k/2)操作,并演示这些运算的效果。【三】设计过程,调试,分析。数字信号处理的主要研究对象是语音信号和图像信号,语音信号的研究可以从时域和频域两个方面来进行。其中时域的分析处理有两种方法:一种是进行语音信号分析,这属于线性处理的范畴,主要是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号,这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张,用门限方法对噪声的抑制。对频域分析处理,即对信号的频率特性在频谱中加以分析研究,这拓展了信号分析的范围,是对不确定信号分析的主要方法。在实际应用中,信号的时域频分析经常同时进行。1语音信号的采集与时频分析1.1语音信号的采集利用PC机上的声卡和WINDOWS操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话/大家好0,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名/dajiahao0保存入g:\MATLAB\work中。可以看到,文件存储器的后缀默认wav。在Matlab软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量x,同时把x的采样频率Fs=8000Hz和数据位Nbits=8Bit放进了MATALB的工作空间。其程序如下Fs=8000Hz;%给出抽样频率Nbits=8Bit;%放入数据位[x,fs,Nbits]=wavread(-g:\Matlab\work\chaotian.wav);%把语音信号进行加载入Matlab仿真软件平台中sound(x,fs);%对加载的语音信号进行回放stem(x);title(‘语音信号的时域波形’);1.2语音信号的时域分析因录音采样频率无法准确。故用余弦序列表示信号的迟延,反转,上采样下采样。迟延:题目要求时延d为0.4s.取点数k为0.4*Fs。产生一组新序列将原序列依次推后k点。【四】程序清单与运行结果程序清单:y=load('E:\erf1s1t0');fs=8192;n=length(y);m=n+round(0.4*fs);q=(m-1)/fs;l=round(0.4*fs);z=zeros(1,m);x=z;fori=1:nx(i)=y(i);end%原信号fori=1:nz(l+i)=y(i);end%信号的延拖o=x+0.4*z;%回声信号sound(o)%声音t=0:1/fs:q;subplot(3,1,1);plot(t,x)title('原信号');subplot(3,1,2);plot(t,z)title('时延信号');subplot(3,1,3);plot(t,o)title('回声信号');运行结果:翻转:K为序列长度,将序列第i个点值依次与第k-i点值进行调换产生新序列,即为翻转序列。采样:下采样,也就是对信号的抽取。其实,上采样和下采样都是对数字信号进行重采,重采的采样率与原来获得该数字信号的采样率比较,大于原信号的称为上采样,小于的则称为下采样。上采样的实质也就是内插或插值。程序清单:%对上述语音信号进行时间反转x(-k)、上采样x(2k)、下采样x(k/2)操作data=load('E:\erf1s1t0');x=data;%原声信号d=0.4;%d为时延Fs=8192;%Fs为采样频率k=0.4*8192;a=0.5;%a为时延信号的衰减幅度z=linspace(0,0,k);%linspace为线性间隔的向量y=[zx'];x=[x'z];f=x+a*y;%回声信号f1=fliplr(x);%翻转信号f2=downsample(x,2);%下采样信号f3=upsample(x,2);%上采样信号subplot(4,1,1);plot(x);title('原声信号')subplot(4,1,2);plot(f1);title('翻转信号')subplot(4,1,3);plot(f2);title('下采样')subplot(4,1,4);plot(f3);title('上采样')sound(f1)运行结果:设计二正余弦信号的谱分析【一】设计目的用DFT实现对正余弦信号的谱分析;观察DFT长度和窗函数长度对频谱的影响;对DFT进行谱分析中的误差现象获得感性认识。【二】设计内容1.对一个频率为10Hz,采样频率为64Hz的32点余弦序列进行谱分析,画出其频谱图;若将频率改为11Hz,其他参数不变,重新画出该序列的频谱图,观察频率泄漏现象,分析原因。2.考察DFT的长度对双频率信号频谱分析的影响。设待分析的信号为150)2sin()2sin(5.0)(21nnfnfnx(1.2)令两个长度为16的正余弦序列的数字频率为22.01f及34.02f。取N为四个不同值16,32,64,128。画出四个DFT幅频图,分析DFT长度对频谱分辨率的影响。3.在上题中若把两个正弦波的频率取得较近,令22.01f,25.02f,试问怎样选择FFT参数才能在频谱分析中分辨出这两个分量?【三】设计过程,调试,分析。连续信号的频谱分析在工程上有着广泛的应用,计算机的第一步就是把连续信号离散化,一是采样,二是截断。由此会产生频率混叠误差、栅栏效应和截断误差。(一)对一个频率为10Hz,和11Hz,采样频率为64Hz的32点余弦序列用Matlab计算它的DFT程序为N=32;Fs=64;f=10;n=0:N-1;x=cos(2*pi*10*n/64)y=cos(2*pi*11*n/64)subplot(2,1,1)X=abs(fft(x,N))stem(n,X,'.');xlabel('n');title('10HZ32点变化幅频曲线')subplot(2,1,2)Y=abs(fft(y,N))stem(n,Y,'.');xlabel('n');title('11HZ32点变化幅频曲线')运行结果:通过图可看出:频率为10Hz的余弦曲线DFT只有两个点不等于零,位于k=5和k=27处,k=5对应于频率10Hz,k=27对应于频率54Hz(也就是-10Hz)。这样DFT确实正确的分辨了余弦信号的频率。但是这样的理想结果是恰巧得到的,此时我们借去了五个完整的余弦周期(f*N/Fs=5).将频率改为11Hz,采样频率和窗长度依然为32点,计算图像可看出:频谱图上k=5和k=27处都有较大的峰值,而其它的点上幅度不再为零。这两个峰值对应的频率为10Hz和12Hz,所以,信号的峰值位于两者之间,本来是单一的11Hz频率的能量会分不到许多DFT频率上,这种现象叫频率泄露,来源于截断效应。(二)对双信号的频谱分析程序为:16点,32点,64点,128点的频谱分析程序:N=16;n=0:15;f1=0.22;f2=0.34;x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);subplot(4,2,1),stem(n,x,'.');%xlable('n');ylable('x1(n)');title('余弦序列');X=abs(fft(x,N));subplot(4,2,2)k=0:N-1;stem(k,X,'.')%xlable('k');ylable('X(k)')string=[num2str(N),'点FFT幅频曲线'];title(string);N=32;n=0:15;f1=0.22;f2=0.34;x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);subplot(4,2,3),stem(n,x,'.')%xlable('n');ylable('x1(n)');title('余弦序列');X=abs(fft(x,N));subplot(4,2,4)k=0:N-1;stem(k,X,'.')%xlable('k');ylable('X(k)')string=[num2str(N),'点FFT幅频曲线'];title(string);N=64;n=0:15;f1=0.22;f2=0.34;x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);subplot(4,2,5),stem(n,x,'.')%xlable('n');ylable('x1(n)');title('余弦序列');X=abs(fft(x,N));subplot(4,2,6)k=0:N-1;stem(k,X,'.')%xlable('k');ylable('X(k)')string=[num2str(64),'点FFT幅频曲线'];title(string);N=128;n=0:15;f1=0.22;f2=0.34;x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);subplot(4,2,7),stem(n,x,'.')%xlable('n');ylable('x1(n)');title('余弦序列');X=abs(fft(x,N));subplot(4,2,8)k=0:N-1;stem(k,X,'.')%xlable('k');ylable('X(k)')string=[num2str(128),'点FFT幅频曲线'];title(string);运行结果:分析:DFT样本值就是其DTFT在相应位置的采样。在图一中很难看出两个峰值,因此要提高它的分辨率,故把N增大,逐渐可以看出它有两个峰值,将k换算成数字频率f=w/2*pi=k/N.这样可确定峰值的位置大体在f=0.21和0.35之附近,与信号的给定频率有一定的误差,这也是截断和泄露带来的问题,在这图上还可以看到一些较小的峰,这是很难判断是输入信号固有的,还是由泄露引起的。说明了增加DFT长度N减小了相邻样本间的频率间距,提高频谱的视在分辨率,因而可以提高样本未知的测定精度。(三)把两个正弦波的频率取得较近,另fr=[0.22,0.25]应怎样选择FFT参数要能分清两个频率,分辨率至少应达到f=0.03.因为此处的数字频率是对采样频率Fs进行归一化后的,几fr最大为1,因此总的样本数至少要达到1/0.03=33加窗以后可以使频谱函数更加光滑,便于分辨峰值位置和准确的数值,为了提高实际分辨率,应该尽量增加信号的长度n及DF长度N,当受到条件限制不能提高n,则单独提高N可以提高视在分辨率。当22.01f,25.02f时,16点,32点,64点,128点的频谱运行结果:(四)谱分析中的误差现象①混叠误差。产生混叠误差的原因是:信号的离散化是通过抽样实现的,而抽样频率再高总是有限的。除带限信号外,如果信号的最高频率Ω趋于无穷,则实际器件无法满足抽样定理。而抽样过程如果不满足抽样定理,就会产生频谱的混叠,即混叠误差。要减少或避免混叠误差,应该提高抽样频率,以设法满足抽样定理,或者采用抗混叠滤波这样的信号预处理措施。②栅栏效应。对于非周期信号来说,理论上应具有连续的频谱,但数字谱分析是用DFT来近似的,是用频谱的抽样值逼近连续频谱值,只能观察到有限个频谱值,每一个间隔中的频谱都观察不到。如同通过“栅栏”观察景物一样,一部分被“栅栏”所阻挡,看不见,把这种现象称为栅栏效应。连续时间信号只要采用数字谱分析的方法,就必定产生栅栏效应,栅栏效应只能减小而无法避免。能够感受的频谱最小间隔值,称为频谱分辨率,而频率分辨率与信号截断长度成反比,且频率分辨率越小,插值效果越好。因此即使连续信号是有限时间的,
本文标题:数字信号处理报告
链接地址:https://www.777doc.com/doc-5521874 .html