您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 实验5MATLAB在数字信号处理中的应用
实验5:MATLAB在数字信号处理中的应用(4学时)掌握MATLAB对离散时间信号与系统的时域和频域描述及分析【实验目的】1、掌握离散时间信号与系统的时域和频域分析方法【实验内容】1、练习书上实例,验证结果2、录制一段各人自己的语音信号,存成.wav文件,录制时间不要太长,5-10秒即可。利用MATLAB提供的wavread函数进行读取,而后对录制的信号x(t)进行采样;画出采样后语音信号的时域波形和频谱图。(提示,仿例题7.10,选择不同的采样频率fs,观察频谱)3、仿照教材7.1节对该语音信号进行各种时域处理(如截取,合成,添加随机噪声,周期延拓,移位),观察波形图,若可能可将其用MATLAB存成wav文件,听一下。(提示:函数randn可构造随机噪声序列;人的语音信号的范围20Hz-20KHz,选择合适的采样频率,在数字通信中,根据采样定理,最小采样频率为语音信号最高频率的2倍。电话通令的频带是300-3400Hz,所以最低采样频率为6800Hz。根据CCITT的长途通信协议的标准,目前各国一般采用的声音采样频率为8kHz;所以,为了将来系统与其他通信设备交流的方便,最终采样频率一般确定为8000Hz)。4、用FFT函数对上述语音信号,进行频域分析,观察该语音信号的频谱范围.(仿例题7.19).5、构造一个理想数字滤波器,要求保留1000HZ-2000HZ以内的语音信号,观察信号波形图。【实验报告】Q701x1=[0,1,2,3,4,3,2,1,0];ns1=-2;x2=[2,2,0,0,0,-2,-2];ns2=2;nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;ny=min(ns1,ns2):max(nf1,nf2);a1=zeros(1,length(ny));xa2=xa1;xa1(find((ny=ns1)&(ny=nf1)==1))=x1;xa2(find((ny=ns2)&(ny=nf2)==1))=x2;ya=xa1+xa2yp=xa1.*xa2subplot(4,1,1),stem(ny,xa1,'.')subplot(4,1,2),stem(ny,xa2,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,3),stem(ny,ya,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,4),stem(ny,yp,'.')line([ny(1),ny(end)],[0,0])clear;closealln0=input('输入序列起点:n0=');N=input('输入序列长度:N=');n1=input('输入位移:n1=');n=n0:n1+N+5;u=[(n-n1)=0];x1=[(n-n1)=0]-[(n-n1-N)=0]x2=[(n=n1)&(n(N+n1))];x3=exp(j*n*pi/8).*x2;subplot(2,2,1);stem(n,x1,'.');xlabel('n');ylabel('x1(n)');axis([n0,max(n),0,1]);subplot(2,2,3);stem(n,x2,'.');xlabel('n');ylabel('x2(n)');axis([n0,max(n),0,1]);subplot(2,2,2);stem(n,real(x3),'.');xlabel('n');ylabel('x3(n)的实部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);subplot(2,2,4);stem(n,imag(x3),'.');xlabel('n');ylabel('x3(n)的虚部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);输入序列起点:n0=-6输入序列长度:N=15输入位移:n1=3x1=Columns1through130000000001111Columns14through261111111111100Columns27through300000Q03clear;closeallN=24;M=8;m=input('输入移位值:m=');if(m1|m=N-M+1)fprintf('输入数据不在规定范围内!');breakendn=0:N-1;x1=(0.8).^n;x2=[(n=0)&(nM)];xn=x1.*x2;xm=zeros(1,N);fork=m+1:m+Mxm(k)=xn(k-m);endxc=xn(mod(n,8)+1);xcm=xn(mod(n-m,8)+1);subplot(3,2,1);stem(n,xn,'.');title('x(n)');axis([0,length(n),0,1]);ylabel('x(n)');xlabel('n');subplot(3,2,2);stem(n,xm,'.');title('x(n-m)');axis([0,length(n),0,1]);ylabel('x(n-m)');xlabel('n');subplot(3,2,5);stem(n,xc,'.');title('x(n)的周期延拓');axis([0,length(n),0,1]);ylabel('x(mod(n,8))');xlabel('n');subplot(3,2,6);stem(n,xcm,'.');title('x(n)的循环移位');axis([0,length(n),0,1]);ylabel('x(mod(n-m,8))');xlabel('n');输入移位值:m=2试验一语音信号处理语音信号处理综合运用了数字信号处理的理论知识,对信号进行计算及频谱分析,设计滤波器,并对含噪信号进行滤波。一,具体分为以下步骤:(1)语音信号的采集:利用Windows下的录音机,录制一段话音。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,播放语音信号,并绘制原始语音信号;(2)对原始信号加入噪声:对原始语音信号加入s=0.05*sin(2*pi*f*Ts*n)的噪声,采样后可知Fs,选择f=2500,播放加入噪声信号的语音信号,并绘制噪声信号和含噪语音信号;(3)频谱分析:分别对原始语音信号,噪声信号和含噪声的语音信号进行频谱分析,并绘出各频谱图;(4)设计滤波器:计算滤波器的性能指标,设计滤波器,绘制滤波器的特性曲线;(5)滤波器滤波:用自己设计的滤波器对采集的信号进行滤波,得出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化,并回放语音信号,感觉滤波前后的声音有变化。(6)对原始信号进行整数倍抽取,比较抽取前后的频谱图(7)对原始信号进行整数倍内插,比较原始信号频谱,内插零值时的频谱和滤波后的频[x,fs,bits]=wavread('aaa.wav');N=length(x);f=2500;x=x';n=0:1/fs:(N-1)/fs;s=0.05*sin(2*pi*f*n);y=x+s;f1=0:fs/N:fs*(N-1)/N;x1=fft(x,N);s1=fft(s,N);Y=fft(y,N);figure(1);subplot(311);plot(n,x);title('原始信号波形图');xlabel('t/s');ylabel('幅值');subplot(312);plot(n,s);title('噪声信号波形图');ylim([-0.08,0.08]);xlabel('t/s');ylabel('幅值');subplot(313);plot(n,y);title('信号+噪声信号波形图');xlabel('t/s');ylabel('幅值');figure(2);subplot(221);plot(f1,abs(x1));title('原始信号频谱图');xlabel('频率/Hz');ylabel('频率响应幅度');xlim([0,fs/12]);subplot(222);plot(f1,abs(s1));title('噪声信号频谱图');xlabel('频率/Hz');ylabel('频率响应幅度');xlim([0,fs/12]);subplot(223);plot(f1,abs(Y));title('信号+噪声频谱图');xlabel('频率/Hz');ylabel('频率响应幅度');xlim([0,fs/12]);谱图。滤波器设计wp=1500*2*pi;ws=2200*2*pi;Rp=2;Rs=15;[N1,Wn]=buttord(wp,ws,Rp,Rs,'s');%创建butterworth模拟滤波器[Z,P,K]=buttap(N1);%把滤波器的零极点模型转化为传递函数模型[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);[bz,az]=bilinear(b,a,fs);[H,W]=freqz(bz,az);figure(3);subplot(211),plot(W*fs/(2*pi),abs(H));gridtitle('butterworth低通滤波器频响图');xlabel('频率/Hz');ylabel('频率响应幅度');y1=filter(bz,az,y);subplot(212),plot(n,y1);title('滤波后信号波形图');xlabel('频率/Hz');ylabel('频率响应幅度');对原始信号进行整数倍抽取M=2;fori=1:fix(N/M)y2(i)=x(M*i);endy2=fft(y2,i);fs2=fs/M;f2=0:fs2/i:fs2*(i-1)/i;figure(4);subplot(322);plot(f2,abs(y2));title('原始信号');xlim([0fs/(12*M/2^1)]);M1=1;%%按M1倍内插y3=zeros(1,N*M1);fori=1:Ny3(i*M1)=x(i);endy3=fft(y3,N*M1);%%内插后进行傅里叶变换fs3=fs*M1;f3=0:fs3/(N*M1):fs3*(N*M1-1)/(N*M1);figure(5);subplot(221);plot(f3,abs(y3));title('原始信号频谱图');xlim([0150000]);四,结果分析00.10.20.30.40.50.60.7-0.200.2原始信号波形图t/s幅值00.10.20.30.40.50.60.7-0.0500.05噪声信号波形图t/s幅值00.10.20.30.40.50.60.7-0.200.2信号+噪声信号波形图t/s幅值0200040000100200300原始信号频谱图频率/Hz频率响应幅度020004000050010001500噪声信号频谱图频率/Hz频率响应幅度020004000050010001500信号+噪声频谱图频率/Hz频率响应幅度00.511.522.533.5x10400.511.5butterworth低通滤波器频响图频率/Hz频率响应幅度00.10.20.30.40.50.60.7-0.2-0.100.10.2滤波后信号波形图频率/Hz频率响应幅度0200040000100200按2倍抽取后的频谱020004000050100按4倍抽取后的频谱02000400002040按8倍抽取后的频谱02000400001020按16倍抽取后的频谱0200040000510按32倍抽取后的频谱020004000024按64倍抽取后的频谱对原始信号加入噪声后播放,声音中明显存在单频尖锐噪声。后对信号+噪声信号进行滤波后,播放的声音中仍留有少量的噪声信号,且整体信号不如加噪前明亮,原因是采用低通滤波器滤去高频噪声时,原信号的高频信号也被滤去了,所以声音
本文标题:实验5MATLAB在数字信号处理中的应用
链接地址:https://www.777doc.com/doc-2530713 .html