DSP软件实验报告_让你最牛_第1页
DSP软件实验报告_让你最牛_第2页
DSP软件实验报告_让你最牛_第3页
DSP软件实验报告_让你最牛_第4页
DSP软件实验报告_让你最牛_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、北京邮电大学DSP软件课程实验报告姓 名学 号:班 级:院 系:电子工程学院实验一:数字信号的 FFT 分析1、实验内容及要求(1) 离散信号的频谱分析: 设信号 此信号的0.3pi 和 0.302pi两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。(2) DTMF 信号频谱分析 用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字 09的数据,采用快速傅立叶变换(FFT)分析这10个号码DTMF拨号时的频谱。 2、实验目的通过本次实验,应该掌握:(a) 用傅立叶变换进行信号分析时基本参数的选择。

2、(b) 经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT) 后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。(c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。(d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。(e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio。

3、3、 实验步骤及结果(1)离散信号频谱分析程序如下:close all;%关闭文件clear;%清除内存N=1000; n=0:N-1;%n=0,1,.999xn=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);%生成含有1000个元素的信号序列yn=fft(xn,N);%快速傅里叶变换stem(2*n/N,log(abs(yn)+1),'b');%abs(yn)表示求模,作脉冲图axis(0.25,0.5,-1,10)%限制坐标范围title('FFT频谱分析');%标题ylabel('对

4、X(k)的模取对数');%Y轴标签text(0.35,8,'电子4班,许金良,10210929')text(0.3,2,'注意:幅度用log函数进行了对数处理')运行结果:图一(左边两个频率分量相距很近,右边一个频率分量很小)(2) DTMF 信号频谱分析程序如下:close all;clear;tm=1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68; % DTMF信号代表的16个数N=205;f1=697,770,852,941; % 行频率向量f2=1209,1336,1477,1633; TN=input('键入1

5、位0-9的数字= ');for p=1:4for q=1:4if tm(p,q)=abs(TN),break,end % 检测码相符的列号qendif tm(p,q)=abs(TN),break,endendn=0:1023; x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双频信号X=fft(x',1024);X=abs(X);y=sort(X);for i=1:1024 if X(i)<=y(1020) X(i)=0; end;endx=1:512./512*4000;X=X(1:512);fo=;for

6、 i=1:512 if X(i)=0 fo=fo,i; endendfo=round(fo*8000/1024);stem(x,X)wucha=(fo-f1(p),f2(q)./f1(p),f2(q)*100;wucha=strcat('频率误差:','',num2str(wucha),'',' %');text(2000,350,'所拨打的号码:',int2str(TN)text(2000,300,'检测到的频率:',int2str(fo);text(2000,250,'查表所得频率:&#

7、39;,int2str(f1(p),f2(q);text(2000,200,wucha,'color','r');title('DTMF频谱分析与误差','color','r')disp('检测到的频率为:',num2str(fo)输入0:图二输入1:图三输入2:图四输入3:图五输入4:图六输入5: 图七输入:6:图八输入7:图九输入8:图十输入9:图十一实验二: DTMF 信号的编码 1、实验内容及要求(1)把您的联系电话号码 通过DTMF 编码生成为一个 .wav 文件。技术指标:根据 ITU

8、Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒 10 个号码,或每个号码 100ms。每个号码传送过程中,信号存在时间至少 45ms,且不多于 55ms,100ms 的其余时间是静音。在每个频率点上允许有不超过 ±1.5% 的频率误差。任何超过给定频率 ±3.5% 的信号,均被认为是无效的,拒绝接收。(其中关键是不同频率的正弦波的产生。可以使用查表方式模拟产生两个不同频率的正弦波。正弦表的制定要保证合成信号的频率误差在±1.5%以内,同时使取样点数尽量少)(2)对所生成的DTMF文件进行解码。DTMF 信号解码可以采用 FFT 计算 N 点频率处的

9、频谱值,然后估计出所拨号码。但 FFT计算了许多不需要的值,计算量太大,而且为保证频率分辨率,FFT的点数较大,不利于实时实现。因此,FFT 不适合于 DTMF 信号解码的应用。由于只需要知道 8 个特定点的频谱值,因此采用一种称为 Goertzel 算法的 IIR 滤波器可以有效地提高计算效率。其传递函数为:2、实验目的(a)复习和巩固 IIR 数字滤波器的基本概念;(b)掌握 IIR 数字滤波器的设计方法;(c)掌握 IIR 数字滤波器的实现结构;(d)能够由滤波器的实现结构分析滤波器的性能(字长效应);(e)了解通信系统电话 DTMF 拨号的基本原理和 IIR 滤波器实现方法。3、实验步

10、骤及结果按照实验要求编写程序,本程序分为两部分:第一步,由用户输入11位手机号,程序运行后生成波形文件,m文件命名为: dsp2_dtmf_part1.m ;第二步,由程序读入第一步生成的波形文件,进行频谱分析,恢复拨号数据,m文件命名为:dsp2_dtmf_part2.m 。程序代码:1. dsp2_dtmf_part1.m tm=1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68; % DTMF信号代表的16个数N=205;K=18,20,22,24,31,34,38,42;f1=697,770,852,941; % 行频率向量f2=1209,1336,1477,1

11、633; % 列频率向量wav=;TN=input('请您拨出11位手机号码= '); % 输入8位数字TN2=TN;TNr=0; for m=1:11 d=fix(TN/10(11-m); TN=TN-d*10(11-m); for p=1:4; for q=1:4; if tm(p,q)=abs(d),break,end % 检测码相符的列号q end if tm(p,q)=abs(d),break,end end n=1:400; % 为了发声,加长序列 x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双频信

12、号 wav=wav,x,zeros(1,400); endx=1:8800./8800*11;plot(x,wav)title('DTMF信号的时域波形,有半个周期的静音','color','b');text(2,4,'您拨打的手机号:',int2str(TN2),'color','r');axis(0,12,-5,5)sound(wav,8000); wav=wav./2;wavwrite(wav,8000,'第一步_wav文件')2. dsp2_dtmf_part2.m tm=1

13、,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68; % DTMF信号代表的16个数N=205;K=18,20,22,24,31,34,38,42;f1=697,770,852,941; % 行频率向量f2=1209,1336,1477,1633; % 列频率向量TNr=0; %接收端电话号码初值为零 wav=wavread('第一步_wav文件.wav');wav=wav.*2;figure(1)x=1:8800./8800*11;plot(x,wav)axis(0,12,-5,5)sound(wav,8000); figure(2)for m=1:11

14、 % 接收检测端的程序 xulie=wav(m-1)*800+1:(m-1)*800+205); X=goertzel(xulie,K+1); % 用Goertzel算法计算八点DFT样本 val = abs(X); % 列出八点DFT向量 subplot(4,3,m); stem(K,val,'.');grid;ylabel('|X(k)|') % 画出8点DFT幅度 axis(10 50 0 120) limit = 80; for s=5:8; if val(s) > limit, break, end % 查找列号 end for r=1:4; i

15、f val(r) > limit, break, end % 查找行号 end TNr=TNr+tm(r,s-4)*10(11-m);%将6位电话号码表示成一个6位数,以便显示 hao=int2str(tm(r,s-4); title(hao,'color','r');enddisp('接收端检测到的号码为:') % 显示接收到的字符disp(num2str(TNr)拨号运行结果: 图十二(产生11段DTMF信号,有50%的静音)图十三(11段DTMF信号的频谱图,每个子图上方为检测到的数字)实验三:FIR 数字滤

16、波器的设计和实现1、实验内容及要求:³ 录制自己的一段声音,长度为 45秒,取样频率 32kHz,然后叠加一个高斯白噪声,使得信噪比为 20dB。请采用窗口法设计一个 FIR 带通滤波器,滤除噪声提高质量。n 提示:³ 滤波器指标参考:通带边缘频率为 4kHz,阻带边缘频率为4.5kHz,阻带衰减大于 50dB;³ Matlab 函数 y = awgn(x,snr,'measured') ,首先测量输入信号 x 的功率,然后对其叠加高斯白噪声;2、实验目的³ 通过本次实验,掌握以下知识:± FIR 数字滤波器窗口设计法的原理和设

17、计步骤;± Gibbs 效应发生的原因和影响;± 不同类型的窗函数对滤波效果的影响,以及窗函数和长度 N 的选择。3、实验步骤及结果按照实验要求,用matlab程序截取了一段10s的音乐并转换为wave格式,加噪声及滤波器程序如下:luyin,fs=wavread('luyin.wav'); if fs =32000 wavwrite(luyin,32000,'luyin2.wav'); luyin,fs=wavread('luyin2.wav'); endfftt=fft(luyin,fs*10); fftt=abs(fft

18、t);fanwei=(2:319999); addlu=awgn(luyin,20,'measured'); wavwrite(10.*addlu,32000,'加噪声后的波形文件')fftt1=fft(luyin,fs*10);fftt1=abs(fftt1);half1=fftt1(2:320000/2);fftt2=fft(addlu,fs*10);fftt2=abs(fftt2);half2=fftt2(2:320000/2); wp=pi/4;ws=9/32*pi;tr_width=ws-wp;N=ceil(6.6*pi/tr_width);N=cei

19、l(6.6*pi/tr_width)+1;n=1:N;wc=(ws+wp)/2;h=fir1(N,wc/pi);db=freqz(h,1); addluconv=conv(h,addlu);wavwrite(10*addluconv,32000,'滤波后的波形文件')x=1:159999/159999*16000;figure(1);subplot(3,1,1);plot(luyin);title('加高斯白噪声前的波形');subplot(3,1,2);plot(addlu);title('加高斯白噪声后的波形');subplot(3,1,3)

20、;plot(addluconv);title('汉明窗滤波器滤波后的波形');figure(2)addluconv=addluconv(1:320000);fftt3=fft(addluconv,fs*10);fftt3=abs(fftt3);half3=fftt3(2:320000/2);subplot(3,1,1);plot(x,half1);xlabel('x轴:模拟频率,单位/Hz');title('加高斯白噪声前的频谱');axis(0,16000,0,15);subplot(3,1,2);plot(x,half2);xlabel(&#

21、39;x轴:模拟频率,单位/Hz');title('加高斯白噪声后的频谱');axis(0,16000,0,15);subplot(3,1,3);plot(x,half3);xlabel('x轴:模拟频率,单位/Hz');title('汉明窗滤波器滤波后的频谱');axis(0,16000,0,15);hd = dfilt.dffir(h);freqz(hd);运行后,得原音频文件,加噪声后和汉明窗滤波后的时域波形:图十四(加噪后时域波形变粗,滤波后变细)原音频文件,加噪声后和汉明窗滤波后的频域波形:图十五(加噪后在整个频带内假如了均匀的

22、噪声分量,滤波后阻带范围内的的频谱分量为0。另外横坐标均折合成了模拟角频率,这样理解更直观)汉明窗低通滤波器的幅频,相频特性图:图十六(可以看到阻带衰减大于55dB,在通带内相频呈线性)四、实验中遇到的问题及解决方案:1 实验一第一小题的幅度差别太大,无法再同一张图上显示。后来我想到对幅度取对数,发现效果很好。2 实验二处怎么控制占空比大约为50%,后来我干脆加上一半时间的0.3 实验三要求一段45s左右的录音(实际录音只有10s左右),由于录音频率不符合标准,导致程序再运行时刻再次遇到困难,更改频率之后问题正常解决。 我的解决方法是:将波形文件读取,若采样频率不是32 KHz,就把音频文件重

23、写,同时设定其采样频率。5、 实验总结与心得: 图十七(软件界面和程序执行界面) 图十八(部分程序文件和执行程序产生的音乐文件) 我对matlab是很钟爱的。我之前参加过数学建模,学了一些matlab编程知识,甚至matlab的威力,觉得学点matlab相关的东西,能够用matlab做点实用的东西,这对以后的学习和工作是大有裨益的。第一次课之后,我回到寝室,花了几个小时查资料,终于拼凑出符合题目要求的matlab程序。我觉得自己还行。虽然程序要粗糙很多,但是距离验收的时间还早呢,有的是时间来对它进行润色和改善。后来在不断更改的过程中,我渐渐对一部分程序功能的实现方法产生了一些新的想法。1. 第1_1题为了能够清楚地显示频率分量,

温馨提示

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

评论

0/150

提交评论