您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字信号多采样率设计报告
实验名称:多采样率数字信号处理一.实验原理:多采样率数字信号处理共分为3方面的问题:信号的整数倍抽取、信号的整数倍插值和信号的有理数倍速率转换。Matlab信号处理工具箱提供了抽取函数decimate用于信号整数倍抽取,其调用格式为:y=decimate(x,M)y=decimate(x,M,n)y=decimate(x,M,’fir’)y=decimate(x,M,n,’fir’)其中y=decimate(x,M)将信号x的采样率降低为原来的M1,抽取前缺省地采用8阶ChebyshevⅠ型低通滤波器压缩频带。y=decimate(x,M,n)指定所采用ChebyshevⅠ型低通滤波器的阶数,通常13n。y=decimate(x,M,’fir’)指定用FIR滤波器来压缩频带。y=decimate(x,M,n,’fir’)指定所用FIR滤波器的阶数。Matlab信号处理工具箱提供了插值函数interp用于信号整数倍插值,其调用格式为:y=interp(x,L)y=interp(x,L,n,alpha)[y,b]=interp(x,L,n,alpha)其中y=interp(x,L)将信号的采样率提高到原来的L倍。y=interp(x,L,n,alpha)指定反混叠滤波器的长度n和截止频率alpha,缺省值为4和0.5。[y,b]=interp(x,L,n,alpha)在插值的同时,返回反混叠滤波器的系数向量。信号的有理数倍速率转换是使信号的采样率经由一个有理因子ML来改变,可以通过插值和抽取的级联来实现。Matlab信号处理工具箱提供了重采样函数resample用于有理倍数速率转换,其调用格式为:y=resample(x,L,M);y=resample(x,L,M,n);y=resample(x,L,M,n,beta);y=resample(x,L,M,b);[y,b]=y=resample(x,L,M);其中,y=resample(x,L,M);将信号x的采样率转换为原来的ML倍,所用的低通滤波器为kaiser窗的FIR滤波器。y=resample(x,L,M,n)指定用x左右两边各n个数据作为重采样的邻域。y=resample(x,L,M,n,beta)指定Kaiser窗的FIR滤波器的设计参数,缺省值为5。y=resample(x,L,M,b)指定用于重采样的滤波器系数向量。[y,b]=resample(x,L,M)除了得到重采样信号外,还返回所使用的滤波器系数向量。二.实验内容:1、令()cos(2)sxnnff,112sff,实现以下采样率的转换:(1)作2L倍的插值;(2)作3M倍的抽取;(3)作23LM倍的采样率转换。给出相对每一种情况下的数字滤波器的频率特性和频率转换后的信号波形。2、录制一段语音信号,对录制的信号进行采样,画出采样前后语音信号的时域波形和频谱图,改变信号的采样率,输出改变采样率后信号的频谱,对比前后语音信号的变化。三.程序:(1)n=0:30;x=cos(2*pi*n/12);y=interp(x,3);figure;subplot(2,2,1),stem(x);title('原始信号时域图');xlabel('(a)');subplot(2,2,2);plot(abs(fft(x)));title('原始信号频域图');xlabel('(b)');subplot(2,2,3);stem(y);title('插值后的信号时域图');xlabel('(c)');subplot(2,2,4);plot(abs(fft(y)));title('插值后的信号频域图');xlabel('(d)');(2)t=0:.00025:1;x=cos(2*pi*t/12);y=decimate(x,3);figure,subplot(2,2,1),stem(x(1:120));title('原始信号时域图'),xlabel('(a)');subplot(2,2,2),plot(abs(fft(x))),title('原始信号频域图'),xlabel('(b)');subplot(2,2,3),stem(y(1:30));title('抽取后的信号时域图'),xlabel('(c)');subplot(2,2,4),plot(abs(fft(y)));title('抽取后的信号频域图'),xlabel('(d)');(3)n=0:38;x=cos(2*pi*n/12);[y,b]=resample(x,2,3);figure,subplot(2,2,1),stem(x);title('原始信号时域图'),xlabel('(a)');subplot(2,2,2),plot(b,'.'),title('滤波器的单位脉冲响应'),xlabel('(b)');subplot(2,2,3),stem(y);title('变换后的信号时域图'),xlabel('(c)');w=(0:1023)*2/1024subplot(2,2,4),plot(w,20*log10(abs(fft(b,1024))));axis([0,1/4,-100,20]);gridontitle('滤波器的频率响应'),xlabel('(d)');说明:Figure的功能是产生一个空白的窗口;y=interp(x,2);将信号x的采样率将为原来的1/2.;y=decimate(x,3);将信号的采样率提高到原来的3倍。;[y,b]=resample(x,2,3);将信号x的采样率转换为原来的2/3倍;除了得到重采样信号外还返回所使用的滤波器系数向量。4.录制一段语音信号并处理。[x,fs,bits]=wavread('C:\Users\Administrator\Desktop\007.wav');n=length(x);dt=10.00/n;t=dt:dt:10.00;figure(1);subplot(211);plot(t,x,'r');title('原始语音信号域波形');xlabel('时间s');ylabel('幅值y(t)');X=fft(x,n);magY=abs(X);f=0:fs/n:fs*(n-1)/n;subplot(212);plot(f,magY,'r');title('原始语音信号频谱图');xlabel('频率Hz');ylabel('幅值magY');y1=decimate(x,3);figure(2),subplot(2,1,1),stem(y1);title('抽取后的信号时域图'),xlabel('(c)');subplot(2,1,2),plot(abs(fft(y1)));title('抽取后的信号频域图'),xlabel('(d)');[y2,b]=resample(x,3,8);figure(3),subplot(2,1,1),stem(y2);title('变换后的信号时域图'),xlabel('(c)');w=(0:1023)*2/1024;subplot(2,1,2),plot(w,20*log10(abs(fft(b,1024))));axis([0,1/4,-100,20]);gridontitle('滤波器的频率响应'),xlabel('(d)');
本文标题:数字信号多采样率设计报告
链接地址:https://www.777doc.com/doc-2387807 .html