北邮数字信号处理MATLAB实验报告

2020-05-12 11:50

数字信号处理软件实验 ——MatLab仿真实验报告

学院:电子工程学院 班级:2013211202 姓名: 学号:

实验一:数字信号的 FFT 分析

1、实验内容及要求

(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 信号频谱分析

用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字 0~9的数据,采用快速傅立叶变换(FFT)分析这10个号码DTMF拨号时的频谱。

2、实验目的

通过本次实验,应该掌握:

(a) 用傅立叶变换进行信号分析时基本参数的选择。

(b) 经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT) 后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。 (c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。

(d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。

(e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio。

3.设计思路及实验步骤

1)离散信号的频谱分析:

该信号中要求能够清楚的观察到三根谱线。由于频率0.3pi和0.302pi间隔非常小,要清楚的显示,必须采取足够大小的N,使得分辨率足够好,至少到0.001单位级,而频率0.45pi的幅度很小,要清楚的观察到它的谱线,必须采取幅度够大的窗函数,使得它的频谱幅度变大一些。同时还要注意频谱泄漏的问题,三个正弦函数的周期(2pi/w)分别为20,40,1000,所以为了避免产生频谱泄漏(k=w/w0为整数),采样点数N必须为1000的整数倍。

2)DTMF 信号频谱分析

双音多频信号中4*4拨号盘中的每一个按键均对应两个频率,一个高频,一个低频,每个数字由两个不同频率的正弦波组成,高频为:1209HZ,1336HZ,1633HZ,1477HZ,低频为697HZ,770hz,852hz,941hz。分别用两个数组来装载高频频率和低频频率,然后再分别产生两路频率混叠的信号。再利用fft频谱分析做出频谱图。

4.实验代码及实验结果

1)离散信号的频谱分析代码 clf;

close all;%关闭所有图形窗口 N=1000;?T点数 n=[1:1:N];

x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); y=fft(x,N);

mag=abs(y);%对FFT结果求模

w=2*pi/N*[0:1:N-1]; %数字角频率w

subplot(2,1,1); %将图形窗分为2行1列 stem(n,x,'.'); %画脉冲图 title('时域波形'); xlabel('n'); ylabel('x(n)'); subplot(2,1,2);

stem(w/pi,mag); %归一化角频率

axis([0.2 0.5 0 2]); %控制坐标范围以使谱线幅度合适 title('1000点DFT频谱分析'); xlabel('数字频率'); ylabel('X(k)'); grid on; 实验结果:

2) DTMF 信号频谱分析代码

clear

close all%关闭所有窗口

fh=[1209,1336,1477,1633];%一个数组存放高频 fl=[697,770,852,941];%一个数组存放低频 fs=8000;%采样频率

N=1024;%采样点数 ts=1/fs;%采样周期 n=0:N-1;

f=0:fs/N:fs/N*(N-1); key=zeros(10,N);%生成0矩阵

key(1,:)=cos(2*pi*fh(1)*ts*n)+cos(2*pi*fl(1)*ts*n);%数字键1 key(2,:)=cos(2*pi*fh(2)*ts*n)+cos(2*pi*fl(1)*ts*n); %数字键2 key(3,:)=cos(2*pi*fh(3)*ts*n)+cos(2*pi*fl(1)*ts*n); %数字键3 key(4,:)=cos(2*pi*fh(1)*ts*n)+cos(2*pi*fl(2)*ts*n); %数字键4 key(5,:)=cos(2*pi*fh(2)*ts*n)+cos(2*pi*fl(2)*ts*n); %数字键5 key(6,:)=cos(2*pi*fh(3)*ts*n)+cos(2*pi*fl(2)*ts*n); %数字键6 key(7,:)=cos(2*pi*fh(1)*ts*n)+cos(2*pi*fl(3)*ts*n); %数字键7 key(8,:)=cos(2*pi*fh(2)*ts*n)+cos(2*pi*fl(3)*ts*n); %数字键8 key(9,:)=cos(2*pi*fh(3)*ts*n)+cos(2*pi*fl(3)*ts*n); %数字键9 key(10,:)=cos(2*pi*fh(2)*ts*n)+cos(2*pi*fl(4)*ts*n); %数字键0 figure;

for i=1:9%画出数字键1到9的频谱 subplot(3,4,i)

plot(f,abs(fft(key(i,:))));%利用fft求各个键的频谱 axis([500 1700 0 1000]);%限定坐标轴范围

xlabel('频率(hz)');ylabel('幅度');%横纵坐标标识 title(i); grid;

subplot(3,4,10)%画出数字键0的频谱图 plot(f,abs(fft(key(10,:)))); axis([500 1700 0 1000]);

xlabel('频率(hz)');ylabel(‘幅度'); title(0); grid;end

DTMF 信号频谱分析结果

实验二: DTMF 信号的编码

1、实验内容及要求

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 滤波器可以有效地提高计算效率。其传递函数为: ? ?j2?k/N?11?ez Hk(z)?1?2cos(2?k/N)z?1?z?2

2、实验目的

(a)复习和巩固 IIR 数字滤波器的基本概念; (b)掌握 IIR 数字滤波器的设计方法; (c)掌握 IIR 数字滤波器的实现结构;

(d)能够由滤波器的实现结构分析滤波器的性能(字长效应);

(e)了解通信系统电话 DTMF 拨号的基本原理和 IIR 滤波器实现方法。

3.设计思路及实验步骤

1)编码:DTMF 信号是将拨号盘上的 0~F 共16 个数字,用音频范围的 8 个频率来表示的一种编码方式。8 个频率分为高频群和低频群两组,分别作为列频和行频。 每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成,组合方式如表格所示 697hz 770hz 852hz 941hz 1209hz 1 4 7 * 1336hz 2 5 8 0 1477hz 3 6 9 # 16333hz A B C D 根据表格即可得到各个数字对应的DTFM信号。通过zeros全零矩阵来设置占空比,以达到题目要求。得到信号后,使用sound函数来播放拨号音,writewave将信号写入声音文件。


北邮数字信号处理MATLAB实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015康复治疗样卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: