您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 北邮数字信号处理Matlab仿真实验
《数字信号处理》Matlab实验一.离散信号的FFT分析知识点:利用FFT对信号频谱进行分析,用DFT进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT)后信号频谱上的区别。实验教学内容:1.用Matlab编程上机练习。已知:N=25。这里Q=0.9+j0.3。可以推导出,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT算法,计算x(n)的DFTX(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。解:formatlongQ=0.9+0.3i;WN=exp(-2*pi*1i/32);Xk=(1-Q^32)./(1-Q*WN.^[0:24]);xn=Q.^[0:24];Xkfft=fft(xn,32);for(k0=1:1:25)difference=Xk(k0)-Xkfft(k0);end;subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFTx(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFTx(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]);0nN-1()0n0,nNnQxn11,011)()()(kk10nk10NkQWQQWWnxkXNNnNNnNNn,2.假设信号x(n)由下述信号组成:请选择合适的长度N和窗函数,用DFT分析其频谱,得到清楚的三根谱线。解:N=1000;%LengthofDFTn=[0:1:N-1];xn=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk=fft(xn,N);xn1=0.001*cos(0.45*n*pi);Xk1=fft(xn1,N);xn2=sin(0.3*n*pi);Xk2=fft(xn2,N);xn3=-cos(0.302*n*pi-pi/4);Xk3=fft(xn3,N);k=[0:1:N/2];subplot(5,1,1);stem(k,abs(xn(1:1:(N/2+1))),'.');title('x(n)');xlabel('k');axis([140,240,0,4]);subplot(5,1,2);stem(k,abs(Xk(1:1:(N/2+1))),'r.');title('DFT0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4)');xlabel('k');axis([140,240,0,4]);subplot(5,1,3);stem(k,abs(Xk1(1:1:(N/2+1))),'g.');title('DFT00010450303024().*cos(.)sin(.)cos(.)xnnnn0.001*cos(0.45*n*pi)');xlabel('k');axis([140,240,0,4]);subplot(5,1,4);stem(k,abs(Xk2(1:1:(N/2+1))),'b');title('DFTsin(0.3*n*pi)');xlabel('k');axis([140,240,0,4]);subplot(5,1,5);stem(k,abs(Xk3(1:1:(N/2+1))));title('DFT-cos(0.302*n*pi-pi/4)');xlabel('k');axis([140,240,0,4]);二.IIR数字滤波器的设计和实现DTMF信号的编码:把你的联系电话号码DTMF编码生成为一个.wav文件。技术指标:根据ITUQ.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或每个号码100ms。每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms的其余时间是静音。在每个频率点上允许有不超过±1.5%的频率误差。任何超过给定频率±3.5%的信号,均被认为是无效的,拒绝接收。代码如下:clcfor(K=1:10)clearphone=input('请输入电话号码','s');sum=length(phone);fs=8000;total_x=[];fH=[1336,1209,1336,1477,1209,1336,1477,1209,1336,1477];fL=[941,697,697,697,770,770,770,852,852,852];fori=1:sumnum=phone(i)-48+1;n=1:400;x=sin(2*pi*n*fL(num)/fs)+sin(2*pi*n*fH(num)/fs);x=[x,zeros(1,400)];total_x=[total_x,x];endwavwrite(total_x,'num_sound')sound(total_x);plot(total_x);axis([0,10000,-2,2]);title('电话号码时域波形')k=[18,20,22,25,32,35,38];N=210;tm=[49,50,51;52,53,54;55,56,57;0,48,0];fori=1:sumj=800*(i-1);X=goertzel(total_x(j+1:j+N),k+1);value=abs(X);figure(2)subplot(2,6,i);stem(k,value,'.','r');title('FFTx(n)');xlabel('k');ylabel('|X(k)|');limit=20;fori1=5:7ifvalue(i1)limitbreak;endendforj1=1:4ifvalue(j1)limitbreak;endendbuffer(i)=tm(j1,i1-4);enddisp(['接收端检测到的号码'])disp(setstr(buffer))end三.FIR数字滤波器的设计和实现录制自己的一段声音,长度为45秒,取样频率32kHz,然后叠加一个高斯白噪声,使得信噪比为20dB。请采用窗口法设计一个FIR带通滤波器,滤波噪声提高质量。请随实验报告同时提交原始加噪和滤波后的声音文件(.mp3格式)。提示:1.滤波器指标参考:通带边缘频率为4kHz,阻带边缘频率为4.5kHz,阻带衰减大于50dB;2.Matlab函数y=awgn(x,snr,'measured'),首先测量输入信号x的功率,然后对其叠加高斯白噪声;
本文标题:北邮数字信号处理Matlab仿真实验
链接地址:https://www.777doc.com/doc-4552925 .html