matlab仿真实验报告.docx_第1页
matlab仿真实验报告.docx_第2页
matlab仿真实验报告.docx_第3页
matlab仿真实验报告.docx_第4页
matlab仿真实验报告.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB仿真实验报告院 系:电子工程学院 姓 名:王 力 班 级:2013211207 学 号:2013211006 实验一:数字信号的FFT分析实验内容及要求(1) 离散信号的频谱分析: 设信号 此信号的0.3pi 和 0.302pi两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。(2) DTMF 信号频谱分析P218 -225 4.9.3 双音)用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字 09的数据,采用快速傅立叶变换(FFT)分析这10个号码DTMF拨号时的频谱。实验分析要得到清晰的三根谱线,用matlab内置函数fft对时域信号进行快速傅里叶变换,需要选好变换点数N,以避免出现频谱模糊现象。程序中选择N=1000由于谱线0.45pi的幅度很小,在作图时需要对坐标比例进行控制。使用axis函数实现。1. 代码及注释频谱分析:N = 1000; % Length of DFT n = 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; w=2*pi*k/N; subplot(2,1,1);stem(w/pi,abs(xn(1:1:(N/2+1),.);title(x(n);xlabel(w/pi);axis(0.28,0.50,0,4); subplot(2,1,2);stem(w/pi,abs(Xk(1:1:(N/2+1),r.);title(DFT 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);xlabel(w/pi);axis(0.28,0.50,0,4);结果截图:DTMF频谱分析:clear; close all; column=1209,1336,1477,1633; line=697,770,852,941; fs=10000; N=1024; ts=1/fs; n=0:N-1; f=0:fs/N:fs/N*(N-1); key=zeros(16,N);key(1,:)=cos(2*pi*column(1)*n*ts)+cos(2*pi*line(1)*n*ts);key(2,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(1)*n*ts);key(3,:)=cos(2*pi*column(3)*n*ts)+cos(2*pi*line(1)*n*ts);key(4,:)=cos(2*pi*column(1)*n*ts)+cos(2*pi*line(2)*n*ts);key(5,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(2)*n*ts);key(6,:)=cos(2*pi*column(3)*n*ts)+cos(2*pi*line(2)*n*ts);key(7,:)=cos(2*pi*column(1)*n*ts)+cos(2*pi*line(3)*n*ts);key(8,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(3)*n*ts);key(9,:)=cos(2*pi*column(3)*n*ts)+cos(2*pi*line(3)*n*ts);key(10,:)=cos(2*pi*column(2)*n*ts)+cos(2*pi*line(4)*n*ts);figure;for i=1:10subplot(4,4,i),plot(f,abs(fft(key(i,:)grid;end结果截图:遇到的问题和解决方法在进行第一题的DFT变换时,不知道该选取多大的取样点数N才能得到清晰的三根谱线。通过计算确定数字信号的最小为1000周期才选定了N=1000。实验二:DTMF 信号的编码和解码实验内容及要求1)把您的联系电话号码 通过DTMF 编码生成为一个 .wav 文件。 技术指标: 根据 ITU Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒 10 个号码,或每个号码 100ms。 每个号码传送过程中,信号存在时间至少 45ms,且不多于 55ms,100ms 的其余时间是静音。 在每个频率点上允许有不超过 1.5% 的频率误差。任何超过给定频率 3.5% 的信号,均被认为是无效的,拒绝接收。(其中关键是不同频率的正弦波的产生。可以使用查表方式模拟产生两个不同频率的正弦波。正弦表的制定要保证合成信号的频率误差在1.5%以内,同时使取样点数尽量少) 2)对所生成的DTMF文件进行解码。 DTMF 信号解码可以采用 FFT 计算 N 点频率处的频谱值,然后估计出所拨号码。但 FFT计算了许多不需要的值,计算量太大,而且为保证频率分辨率,FFT的点数较大,不利于实时实现。因此,FFT 不适合于 DTMF 信号解码的应用。 由于只需要知道 8 个特定点的频谱值,因此采用一种称为 Goertzel 算法的 IIR 滤波器可以有效地提高计算效率。其传递函数为:fs=8kHz.实验分析DTMF信号是将拨号盘上的0F共16个数字,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如下图所示。根据图片即可得到各个数字对应的DTFM信号。通过zeros全零矩阵来设置占空比,以达到题目要求。得到信号后,使用sound函数来播放拨号音,writewave将信号写入声音文件。在解码时,使用Goertzel算法。滤波器调谐到这8个频率之上后,在相应的频率上的频谱值最大,通过与标准值的对比找出在DTMF图中的行和列,再对应出相应的拨号数字。查阅资料知,205点的FFT最佳,而且每个频率对应的K值都已经给定(如K=18对应696hz;K=20对应770hz;K=22对应852HZ),则根据频谱图上最大值对应的K值,就可以求出相应的频率,从而比对得出数字。1. 代码及注释=800;fs=8000;%每个号码100ms 800 8000tm=49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68;n=1:N;%取样点flow=697 770 852 941;%低频fhigh=1209 1336 1477 1633;%高频x01=sin(2*pi*flow(1)*n/fs)+sin(2*pi*fhigh(1)*n/fs); %1x02=sin(2*pi*flow(3)*n/fs)+sin(2*pi*fhigh(2)*n/fs); %8x03=sin(2*pi*flow(2)*n/fs)+sin(2*pi*fhigh(2)*n/fs); %5x04=sin(2*pi*flow(1)*n/fs)+sin(2*pi*fhigh(1)*n/fs); %1x05=sin(2*pi*flow(1)*n/fs)+sin(2*pi*fhigh(1)*n/fs); %1x06=sin(2*pi*flow(1)*n/fs)+sin(2*pi*fhigh(3)*n/fs); %3x07=sin(2*pi*flow(1)*n/fs)+sin(2*pi*fhigh(3)*n/fs); %3x08=sin(2*pi*flow(3)*n/fs)+sin(2*pi*fhigh(3)*n/fs); %9x09=sin(2*pi*flow(1)*n/fs)+sin(2*pi*fhigh(2)*n/fs); %2x10=sin(2*pi*flow(2)*n/fs)+sin(2*pi*fhigh(2)*n/fs); %5x11=sin(2*pi*flow(3)*n/fs)+sin(2*pi*fhigh(1)*n/fs); %7x=x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11;%组成矩阵x01_z=x01,zeros(1,800);%补零x02_z=x02,zeros(1,800);x03_z=x03,zeros(1,800);x04_z=x04,zeros(1,800); x05_z=x05,zeros(1,800);x06_z=x06,zeros(1,800);x07_z=x07,zeros(1,800);x08_z=x08,zeros(1,800);x09_z=x09,zeros(1,800);x10_z=x10,zeros(1,800);x11_z=x11,zeros(1,800);x_z=x01_z,x02_z,x03_z,x04_z,x05_z,x06_z,x07_z,x08_z,x09_z,x10_z,x11_z;x_z=x_z/max(abs(x_z);subplot(2,1,1);plot(x_z);sound(x_z);audiowrite(mjl_num.wav,x_z,fs);%写入声音文件 k=18 20 22 24 31 34 38 42;N=205;subplot(2,1,2);xk=fft(x_z); mxk=abs(xk);disp(解码得到的号码是:)for i=1:11 m=800*(i-1); X=goertzel(x(m+1:m+N),k+1);%goertzel算法做变换 v=abs(X);%求模 xk2=v.2; stem(k,v,.);%画脉冲图 grid; xlabel(k); ylabel(x(k); set(gcf,color,w); shg; pause; limit=80; xk2 for s=5:8; if v(s)limit,break,end endfor r=1:4; if v(r)limit,break,endenddisp(setstr(tm(r,s-4)end结果截图: 解码得到的号码是遇到的问题和解决方法在开始的时候并没有设置占空比,结果导致拨号音过快。后来通过在信号后补零来进行占空比设置。在将信号写入声音文件时,上网查得函数audiowrite及其用法。实验三:FIR 数字滤波器的设计和实现实验内容及要求a) 录制自己的一段声音,长度为 10秒,取样频率 32kHz,然后叠加一个高斯白噪声,使得信噪比为 20dB。请采用窗口法设计一个 FIR 带通滤波器,滤除噪声提高质量。提示:b) 滤波器指标参考:通带边缘频率为 4kHz,阻带边缘频率为4.5kHz,阻带衰减大于 50dB;其实是低通滤波器c) Matlab 函数 y = awgn(x,snr,measured) ,首先测量输入信号 x 的功率,然后对其叠加高斯白噪声;2、实验目的:d) 通过本次实验,掌握以下知识:i. FIR 数字滤波器窗口设计法的原理和设计步骤;ii. Gibbs 效应发生的原因和影响;iii. 不同类型的窗函数对滤波效果的影响,以及窗函数和长度 N 的选择。实验分析先确定滤波器的设计指标:滤波器通带边缘为4KHZ,阻带边缘频率为4.5Khz,阻带衰减大于50db。使用汉明窗。加噪声时使用awgn函数。使用作图函数分别画出加噪声后的声音信号和去噪声后的声音信号的时域和频域波形。使用matlab库函数hamming来进行滤波。再作出滤波后的图形。最后作出滤波器的幅频特性图。代码及注释fs=32000; x,fs=audioread(sound.wav);snr=20; %信噪比为20dBx2=awgn(x,snr,measured,db); %叠加高斯白噪声?audiowrite(sound_noise.wav,x,fs); t=0:1/fs:(size(x2)-1)/fs;wp=8000*pi/32000;ws=9000*pi/32000;wdelta=ws-wp; N=ceil(11*pi/wdelta); %取整wn=(ws+wp)/2; b=fir1(N,wn/pi,blackman(N+1); %选择窗函数,并归一化截止频率 figure(1) freqz(b,1,512)f2=filter(b,1,x2); title(滤波器幅频、相频特性);figure(2)subplot(2,1,1)plot(t,x2) title(滤波前时域波形);subplot(2,1,2)plot(t,f2) title(滤波后时域波形); F0=fft(f2,1024); f=fs*(0:511)/1024; figure(3)y2=fft(x2,1024); subplot(2,1,1)

温馨提示

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

评论

0/150

提交评论