数字信号处理第三四章作业

更新时间:2023-10-26 11:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

成 绩:

《数字信号处理》

作业与上机实验 (第三四章)

班 级: 13-电信 学 号: 姓 名: 任课老师: 李宏民 完成时间: 15.11.08

信息与通信工程学院

2015—2016学年 第 1学期

第3-4章 离散傅里叶变换及快速算法与应用

一、实验内容及要求:

1、对信号在x(n)={1,2,3,4,5,6,7,8},n=0,1,2....7,求其N=8点的DFT。要求采用基于时间抽取算法编写FFT实现程序,画出DFT幅度谱与相位谱,并将计算结果与用MATLAB自带的FFT函数计算结果进行比较。

2、一个由40Hz和100 Hz正弦信号构成的信号,受零均值随机噪声的干扰(噪声服从标准正态分布,由randn函数产生,n(t)= randn(m,n)返回一个m*n的随机矩阵),即s(t)?sin(2?100t)?sin(2?40t)?n(t)。数据采样率为500Hz,试用FFT函数来分析其信号频率成分。

① 求其幅度频谱,从频谱图(横坐标以HZ为单位,用plot函数画图)中能否观察出信号的2个频率分量?

② 提高采样点数,再求该信号的幅度频谱图,此时幅度频谱发生了什么变化?信号的2个模拟频率和数字频率各为多少?FFT频谱分析结果与理论上是否一致?

3、研究高密度频谱与高分辨率频谱。频率分辨率是指所用的算法能将信号中两个靠得很近的谱峰分开的能力。信号末尾补零由于没有对原信号增加任何新的信息,因此不能提高频率分辨率,但可以减小栅栏效应,所得到的频谱称为高密度频谱。在维持采样频率不变的情况下,为提高分辨率只能增加采样点数N,此时所得到的频谱称为高分辨率频谱。设有连续信号

xa(t)?cos(2??6.5?103t)?cos(2??7?103t)?cos(2??9?103t)

以采样频率fs?32kHz对信号xa(t)采样,分析下列几种情况的幅频特性。

① 采集数据长度N=16点,做N=16的FFT;采集数据长度N=16点,

补零到256点,做256点的FFT;

② 采集数据长度N=64点,做N=64的FFT;采集数据长度N=64点,

补零到256点,做256点的FFT;

③ 采集数据长度N=256点,做N=16点的FFT。

④ 观察以上几幅不同的幅频特性曲线,分析和比较它们的特点,并

说明形成的原因。

⑤ 注:在MATLAB中,可用zeros函数实现填零运算,例如

x1=[x(1:1:16),zeros(1,240)]。所有频谱图的横坐标以HZ为单位,用plot函数画图。

⑥ 一个连续信号含三个频率分量,经采样得以下序列

x(n)?sin2??0.15n?cos2??(0.15??f)n?cos2??(0.15?2?f)nn?0,1,.......N?1。已知N =16,?f分别为1/16,1/64,观察其频谱;

当N =64,128,?f不变,其结果有何不同,为什么? 4、语音信号频谱分析

首先应用录音软件(见下图),录音“我是XXX(学生姓名)”,得到语音数据“录音.WAV”并将“录音.WAV”文件复制到 MATLAB WORK 目录下。其次在MATLAB环境下,X(n)=wavread('录音.WAV ',2048),得到2048点的语音数据X(n),对X(n)进行FFT频谱分析,画出频谱图(横坐标以HZ为单位,用plot函数画图)。

5、双音多频(DTMF)信号是将拨号盘上的0-F共16个数字,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如表8-2所示。

双音多频(DTMF)信号频率组合方式 频率 697Hz 770Hz 852Hz 1209Hz 1336Hz 1477Hz 1633Hz 1 4 7 2 5 8 3 6 9 A B C 941Hz */E 0 #/F D 找一部电话机,在免提状态下拨号0~9中的任意7位号码,并录制双音多频拨号声音。采用快速傅里叶变换(FFT)分析这7个号码拨号时的频谱,并与理论值进行比较。

图1 x(n)波形

三、波形图

1.DFT幅度谱与相位谱如图1可见

xn=[1,2,3,4,5,6,7,8];

M=nextpow2(length(xn)), N=2^M, A=[xn,zeros(1,N-length(xn))]; G=0;

for I=0:N-1; if I

T=A(I+1);A(I+1)=A(G+1);A(G+1)=T; end

K=N/2;

while G>=K; G=G-K;K=K/2; end G=G+K; end

WN=exp(-j*2*pi/N); for L=1:M;

disp('级次运算'),disp(L); B=2^(L-1); for R=0:B-1; P=2^(M-L)*R; for K=R:2^L:N-2;

T=A(K+1)+A(K+B+1)*WN^P; A(K+B+1)=A(K+1)-A(K+B+1)*WN^P; A(K+1)=T; end end end Xk=A,

fftxn=fft(xn,N), k=0:7;wk=2*k/8;

本文来源:https://www.bwwdw.com/article/6us2.html

Top