matlab仿真实验报告
更新时间:2023-09-23 12:35:01 阅读量: 自然科学 文档下载
- Matlab仿真推荐度:
- 相关推荐
MATLAB仿真实验报告
院 系:电子工程学院 姓 名:王 力 班 级:2013211207 学 号:2013211006
实验一:数字信号的FFT分析
实验内容及要求
(1) 离散信号的频谱分析:
?设信号 x(n)?0.001*cos(0.45n?)?sin(0.3n?)?cos(0.302n??)4
此信号的0.3pi 和 0.302pi两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。 (2) DTMF 信号频谱分析P218 -225 4.9.3 双音)用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字 0~9的数据,采用快速傅立叶变换(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:10
subplot(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. ? ?j2?k/N?11?ez Hk(z)?1?2cos(2?k/N)z?1?z?2实验分析
DTMF 信号是将拨号盘上的 0~F 共16 个数字,用音频范围的 8 个频率来表示的一种编码方
式。8 个频率分为高频群和低频群两组,分别作为列频和行频。 每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如下图所
示。
根据图片即可得到各个数字对应的DTFM信号。
通过zeros全零矩阵来设置占空比,以达到题目要求。得到信号后,使用sound函数来播放拨号音,writewave将信号写入声音文件。
在解码时,使用Goertzel算法。滤波器调谐到这8个频率之上后,在相应的频率上的频谱值最大,通过与标准值的对比找出在DTMF图中的行和列,再对应出相应的拨号数字。 查阅资料知,205点的FFT最佳,而且每个频率对应的K值都已经给定(如K=18对应696hz;K=20对应770hz;K=22对应852HZ),则根据频谱图上最大值对应的K值,就可以求出相应的频率,从而比对得出数字。
1. 代码及注释
511339257
N=800;fs=8000;%每个号码100ms 800 8000
tm=[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); %1
正在阅读:
matlab仿真实验报告09-23
《九月金秋,双节同庆》国旗下的讲话范文03-23
在校大学生创业例子02-21
计算机第六次作业09-16
荷叶圆圆公开课教案06-09
透平跨音速叶栅正反混合问题优化设计的研究06-11
基于NDIS中间层的网络数据包拦截技术及实现 - 图文05-23
外墙壁脚手架承包合同05-29
公共关系学课程试题答案106-12
- 冲击钻施工工艺及步骤
- 上海杨浦区效果最好的补习班 小学补习班 初中补习班
- 纺织091十佳标兵班级申请表
- table,matlab,中table数据类型,创建,调用,访问
- 2014政法干警考试面试热点解读:信息不能再“等”
- 06级毕业设计说明书
- (最终)刘艳毕业论文 - 图文
- 地球化学处理软件功能介绍 - 图文
- 哈尔滨市中考满分作文-水质设计计算说明书
- 百分数的应用提高练习题
- 翻译理论与实践(2008)
- 重庆省2017年上半年眼科学主治医师中级职称模拟试题
- 2009年经济师《初级人力资源专业知识与实务》模拟试题四
- 创建江苏省文明工地措施计划改
- ID270-新生代农民工住房保障运行机制研究
- 变桨距
- 一、判断题(20道题、每题1分共20分)
- 火电厂反习惯性违章竞赛复习题
- 青年思想引导手册模板
- 实物期权在房地产投资决策中的应用