DFT在信号频谱中的应用设计数字信号处理课程设计.docx

上传人:b****1 文档编号:602178 上传时间:2022-10-11 格式:DOCX 页数:21 大小:230.41KB
下载 相关 举报
DFT在信号频谱中的应用设计数字信号处理课程设计.docx_第1页
第1页 / 共21页
DFT在信号频谱中的应用设计数字信号处理课程设计.docx_第2页
第2页 / 共21页
DFT在信号频谱中的应用设计数字信号处理课程设计.docx_第3页
第3页 / 共21页
DFT在信号频谱中的应用设计数字信号处理课程设计.docx_第4页
第4页 / 共21页
DFT在信号频谱中的应用设计数字信号处理课程设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

DFT在信号频谱中的应用设计数字信号处理课程设计.docx

《DFT在信号频谱中的应用设计数字信号处理课程设计.docx》由会员分享,可在线阅读,更多相关《DFT在信号频谱中的应用设计数字信号处理课程设计.docx(21页珍藏版)》请在冰豆网上搜索。

DFT在信号频谱中的应用设计数字信号处理课程设计.docx

DFT在信号频谱中的应用设计数字信号处理课程设计

 

一、设计题目

我共选择了两个题目:

DFT在信号频谱中的应用和双音多频拨号音频解码系统。

二、设计目的

1、DFT在信号频谱中的应用设计目的:

1.1熟悉DFT的性质。

1.2加深理解信号频谱的概念及性质。

2、双音多频拨号音频解码系统设计目的

本设计是一个综合设计,目的在于了解IIR系统、谱分析方法以及滤波器的设计和具体应用。

三、设计原理

1、DFT在信号频谱中的应用设计原理

1.1学习用DFT和补零DFT的方法来计算信号的频谱。

1.2用MATLAB语言编程来实现,在做课程设计前,必须充分预习课本DTFT、DFT及补零DFT的有关概念,熟悉MATLAB语言,独立编写程序。

2、双音多频拨号音编解码系统设计原理

一个双音多频电话机(DTMF,dual-tonemulti-frequencytouch-tonephone)可以对12个按键编码,每个码都是两个单频正弦之和。

这两个单频正弦信号分别来自两个频率组,即列频率组(或称低频率群)与行频率组(或称高频率群),它们与每个按键的对应关系如下表所示:

1209Hz

1336Hz

1447Hz

697Hz

1

2

3

770Hz

4

5

6

852Hz

7

8

9

941Hz

*

0

#

数字DTMF接收机通过接收到的双音信号的频谱,再现每个按键所对应的两个频率,从而确认被发送的电话号码。

四、实现方法

1.DFT在信号频谱中的应用

因直接计算DFT变换的运算量很大,因此常用快速傅里叶算法FFT代替DFT变换。

此题目用到了Matlab中的FFT函数。

2.双音多频拨号音频解码系统

2.1双音多频信号的产生

假设时间连续的DTMF信号按表选择的两个频率,代表低频带中的一个频率,代表高频带中的一个频率。

显然采用数字方法产生DTMF信号,方便而且体积小。

形成上面序列的方法有两种,即计算法和查表法。

用计算法求正弦波的序列值很容易,但实际中要占用一些计算时间,影响运行速度。

查表法是预先将正弦波的各序列值计算出来,寄存在存储器中,运行时只要按照顺序和一定的速度取出便可。

这种方法要占用一定的存储空间,但是速度快。

2.2双音多频信号的检测

在接收端,要对收到的双音多频信号进行检测,检测两个正弦波的频率是多少,以判断所对应的十进制数字或者符号。

显然这里仍然要用数字方法进行检测,因此要将收到的时间连续DTMF信号经过A/D变换,变成数字信号进行检测。

检测的方法有两种,一种是用一组滤波器提取所关心的频率,根据有输出信号的2个滤波器判断相应的数字或符号。

另一种是用DFT(FFT)对双音多频信号进行频谱分析,由信号的幅度谱,判断信号的两个频率,最后确定相应的数字或符号。

当检测的音频数目较少时,用滤波器组实现更合适。

此题目主要用到了Matlab中的FIR滤波器(fir2函数)、FFT函数。

五、设计内容及要求

1、DFT在信号频谱分析中的应用

1.1用MATLAB语言编写计算序列x(n)的N点DFT的m函数文件DFTmatlab.m。

并与MATLAB中的内部函数文件fft.m作比较。

DFTmatlab.m源程序如下:

function[q]=DFTmatlab(xn,N)

n=[0:

1:

N-1];%n取0到N-1

k=[0:

1:

N-1];

WN=exp(-j*2*pi/N);%求WN

nk=n'*k;

WNnk=WN.^nk;

q=xn*WNnk%求出xn的DFT表达式

 

DFT与FFT计算时间比较的源程序:

dft_time=zeros(1,100);

forn=1:

100;

t=clock;%clock%将当前时间作为日期向量返回

a=sin(n)+cos(n);

DFTmatlab(a,n);

dft_time(n)=etime(clock,t);%etime指消耗的时间

end;

n=1:

100;

subplot(1,2,1);

plot(n,dft_time,'.');%plot二维曲线图

xlabel('N');ylabel('time/s');

title('DFT');

fft_time=zeros(1,100);

forn=1:

1:

100;

t=clock;

a1=sin(n)+cos(n);

fft(a1);

fft_time(n)=etime(clock,t);

end;

n=1:

100;

subplot(1,2,2);

plot(n,fft_time,'.');

xlabel('N');ylabel('time/s');

title('FFT');

 

1.2.对离散确定信号

作如下谱分析:

(1)截取使成为有限长序列N(),(长度N自己选)写程序计算出的N点DFT,并画出相应的幅频图。

源程序如下:

n=0:

99;

xn=cos(0.48*pi*n)+cos(0.52*pi*n);

Xk=fft(xn,100);

subplot(2,1,1);stem(n,xn);grid;

subplot(2,1,2);stem(n,abs(Xk));grid;

(2)截取使其成为N点序列,补零加长至M点(长度M自己选),编写程序计算的M点DFT,并画出相应的图。

源程序如下:

n=0:

19;xn=cos(0.48*pi*n)+cos(0.52*pi*n);

n1=0:

24;xn1=[xn,zeros(1,5)];

n2=0:

59;xn2=[xn,zeros(1,40)];

Xk1=fft(xn1,25);

Xk2=fft(xn2,60);

subplot(3,1,1);stem(n,xn);grid;

subplot(3,1,2);stem(n1,abs(Xk1));grid;

subplot(3,1,3);stem(n2,abs(Xk2));grid;

(3)利用补零DFT计算N点有限长序列频谱并画出相应的幅频图。

源程序如下:

n=0:

9;xn=cos(0.48*pi*n)+cos(0.52*pi*n);

n1=0:

99;xn3=[xn,zeros(1,90)];

Xk3=DFTmatlab(xn3,100);

plot(n1,abs(Xk3));grid;

1.3研究高密度谱与高分辨率频谱。

对连续确定信号

以采样频率fs=32kHz对信号采样得离散信号,分析下列三种情况的幅频特性。

(1)采集数据长度取N=16点,编写程序计算出的16点DFT,并画出相应的幅频图。

源程序如下:

T=1/(32*10^3);

t=(0:

15);

xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*pi*9*10^3*t*T);

Xk=fft(xn,16);

subplot(2,1,1);stem(t,xn);grid;

subplot(2,1,2);stem(t,abs(Xk));grid;

(2)采集数据长度N=16点,补零加长至M点(长度M自己选),利用补零DFT计算的频谱并画出相应的幅频图。

源程序如下:

T=1/(32*10^3);

t=(0:

15);

xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*pi*9*10^3*t*T);

n1=0:

50;xn1=[xn,zeros(1,35)];

Xk1=fft(xn1,51);

subplot(2,1,1);stem(n1,xn1);grid;

subplot(2,1,2);plot(n1,abs(Xk1));grid;

(3)采集数据长度取为M点(注意不是补零至M),编写程序计算出M点采集数据的的频谱并画出相应的幅频图。

源程序如下:

T=1/(32*10^3);

t=[0:

50];

xn=cos(2*pi*6.5*10^3*t*T)+cos(2*pi*7*10^3*t*T)+cos(2*pi*9*10^3*t*T);

Xk2=fft(xn,51);

subplot(2,1,1);stem(t,xn);grid;

subplot(2,1,2);plot(t,abs(Xk2));grid;

2、双音多频拨号音编解码系统

2.1设计内容

数字DTMF接收机通过接收到的双音信号的频谱,再现每个按键所对应的两个频率,从而确认被发送的电话号码。

DTMF拨号音编解码系统的技术指标要求如下:

(1)采样频率:

8kHz。

(2)传输速率:

10个数字/秒,或每个数字100ms。

(3)信号存在的时间t必须满足45ms≤t≤55ms,100ms里的其余时间是无声区。

(4)高频分量电平不能小于低频分量电平,且电平差不大于2dB±ldB。

(5)对于给定的拨号频率,允许的频率偏移为3%。

2.2编写程序:

(1)编写用IIR系统产生余弦振荡波形的函数way—gener.m。

源程序如下:

%wav_gener.m

functionh=wav_gener(R,omega,N)

%w1=0;w2=0;delta=zeros(1,N);delta

(1)=1;

%k=R*cos(omega);h=zeros(1,N);

%forn=1:

N

%w0=delta(n)+2*k*w1-R^2*w2;

%h(n)=w0-k*w1;w2=w1;w1=w0;

%end

h=zeros(1,N);

forn=1:

N

h(n)=R*cos(omega*n);

end

(2)编写产生DTMF信号的函数DTMF.m。

源程序如下:

%dtmf.m

functionx=dtmf(key);

fs=8000;N=0.1*fs;%信号时间为100ms,N=Tpmin*Fs;Tpmin根据频率分辨率得到,DTMF信号的最小频率间隔为73HZ,故至少需要110点

R=1;fl=0;fh=0;

switchkey

case{'1','2','3'}

fl=697;

case{'4','5','6'}

fl=770;

case{'7','8','9'}

fl=852;

case{'*','0','#'}

fl=941;

end

switchkey

case{'1','4','7','*'}

fh=1209;

case{'2','5','8','0'}

fh=1336;

case{'3','6','9','#'}

fh=1477;

end

x=wav_gener(R,2*pi*fl/fs,N)+wav_gener(R,2*pi*fh/fs,N);

(3)编写带通滤波器函数。

低频滤波器源程序:

%FindLowerFreq.m

functionnumber=FindLowerFreq(Signal)

Freq=[697,770,852,941];temp=0;

forn=1:

length(Freq)

Wo=Freq(n);B=DesignLowerFilter(Wo);%设计带通滤波器,中心频率分别为697Hz,770Hz,852Hz,941Hz,当n=1时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1