- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP软件实验报告_让你最牛
北京邮电大学
DSP软件课程实验报告
姓 名
学 号:
班 级:
院 系:电子工程学院
实验一:数字信号的 FFT 分析
1、实验内容及要求
(1) 离散信号的频谱分析:
设信号
此信号的0.3pi 和 0.302pi两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。
(2) DTMF 信号频谱分析
用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字 0~9的数据,采用快速傅立叶变换(FFT)分析这10个号码DTMF拨号时的频谱。
2、实验目的
通过本次实验,应该掌握:
(a) 用傅立叶变换进行信号分析时基本参数的选择。
(b) 经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT) 后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。
(c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
(d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。
(e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio。
实验步骤及结果
(1)离散信号频谱分析程序如下:
close all;%关闭文件
clear;%清除内存
N=1000;
n=0:N-1;%n=0,1,.....999
xn=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(对X(k)的模取对数);%Y轴标签
text(0.35,8,电子4班,许金良
text(0.3,2,注意:幅度用log函数进行了对数处理)
运行结果:
图一(左边两个频率分量相距很近,右边一个频率分量很小)
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位0-9的数字= );
for p=1:4
for q=1:4
if tm(p,q)==abs(TN),break,end % 检测码相符的列号q
end
if tm(p,q)==abs(TN),break,end
end
n=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;
end
x=[1:512]./512*4000;
X=X(1:512);
fo=[];
for i=1:512
if X(i)~=0
fo=[fo,i];
end
end
fo=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,[查表所得频率:,int2str([f1(p),f2(q)])]);
text(2000,200,wucha,co
文档评论(0)