数字信号处理专业课程设计报告书Word文件下载.docx

上传人:b****5 文档编号:19353052 上传时间:2023-01-05 格式:DOCX 页数:24 大小:164.86KB
下载 相关 举报
数字信号处理专业课程设计报告书Word文件下载.docx_第1页
第1页 / 共24页
数字信号处理专业课程设计报告书Word文件下载.docx_第2页
第2页 / 共24页
数字信号处理专业课程设计报告书Word文件下载.docx_第3页
第3页 / 共24页
数字信号处理专业课程设计报告书Word文件下载.docx_第4页
第4页 / 共24页
数字信号处理专业课程设计报告书Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数字信号处理专业课程设计报告书Word文件下载.docx

《数字信号处理专业课程设计报告书Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理专业课程设计报告书Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

数字信号处理专业课程设计报告书Word文件下载.docx

已知采样频率为8KHz,DTMF信号点数N=205,对DTMF信号进行205点DFT。

图一为DTMF数字。

要求:

①通过键盘任意输入16个键之一,生成DTMF信号。

②试实现对该输入信号的检测,并在屏幕上显示。

③试从计算量角度考虑为什么采用DFT而不用FFT进行DTMF信号检测。

④判断出每个频率对应的DFT的频率采样点。

图一:

DTMF信号

2、设计目的

(1)了解双音多频信号(doubletonemulti——frequency,DTMF)的产生与检测原理,熟悉数字信号处理在通信中的应用;

(2)对DFT熟练的掌握并会用MATLAB实现;

(3)对DTMF信号的生成及其检测有所了解,进一步对DFT的定义、物理意义及基本性质有深入了解。

3、设计原理

在DTMF通信系统中共有八个频率,分为四个高频音和四个低频音,用一个高频音和一个低频音的组合来表示一个信号。

这样共能提供16种组合,分别代表16种信号。

DTMF系统可以用模拟或数字手段实现。

当用数字手段实现时,可以通过软件来模拟合成DTMF信号。

当输入某一个数字时,将对应产生两个不同频率的信号,一种简单的产生方法是正弦波方案,在此方案下,产生的时域信号为x(t)=sin(2*pi*Flt)+sin(2*pi*Fht)。

经过Fs的采样后得到离散信号x(n)=sin(2*pi*n*Fl/Fs)+sin(2*pi*n*Fh/Fs)。

离散频率点M的选择:

得到的x(n)的频谱是连续的,由于计算机只能计算一个离散的频率点频谱,并且采用快速算法计算这些频谱,所以这里存在一个频率间隔W如何确定的问题。

设在(0,2*pi)上取M个频率点,则频率间隔W=2*pi/M,我们所能观察到的频率点为Wk=2*pi*k/M(k=0,1,…,M-1)。

在确定M时不能使M太小,M太小将使频率采样间隔变大,从而使信号频率点f与观测频率点fk(fk=wk*fs/2*pi=k*fs/M)间误差变大。

对M=205,fs=8000Hz,各频率f对应的k=f*M/fs值如图二所示:

频率f

k值

取整后k值

17.861

18

1209

30.981

31

19.731

20

1336

34.235

34

21.833

22

1447

37.848

38

24.113

24

1663

42.614

43

图二:

各频率对应的k值

4、设计步骤

(1)设计好自己的思路,画出流程图,如图图三所示;

(2)用键盘输入字符从而获得两个序列的频率;

(3)DTMF信号的产生。

DTMF信号的生成是通过有限长数字序列的相加而实现,通过两频率确定唯一的字母,用该两个信号相加实现DTMF信号;

(4)DTMF信号得到DFT变化。

先对该信号进行205点上的DFT变换,求出其频谱分布;

(5)通过频谱能量值的大小,找到两个最大值对应的2个k值,根据k值检测出输入信号所对应的数字。

设计程序流程图:

图三:

第五题流程图

5、实验程序

clearall;

f1=697;

f2=770;

f3=852;

f4=941;

f5=1209;

f6=1336;

f7=1447;

f8=1663;

fs=8000;

n=1:

205;

while

(1)

clc

flag=0;

%给标志函数赋初值

disp('

1209133614471663'

);

697123A'

770456B'

852789C'

941*0#D'

key=input('

请输入按键'

'

s'

switchkey

case['

1'

]

x1=sin(2*pi*n*f1/fs);

b=fft(x1,205);

figure('

name'

傅里叶变换图'

subplot(4,1,1);

stem(b,'

.'

ylabel('

x1'

)%画出x1DFT变换后的图形

x2=sin(2*pi*n*f5/fs);

a=fft(x2,205);

subplot(4,1,2);

stem(a,'

x2'

)%画出x2DFT变换后的图形

2'

b=fft(x1,205);

subplot(4,1,1);

stem(b,'

ylabel('

x2=sin(2*pi*n*f6/fs);

3'

x2=sin(2*pi*n*f7/fs);

A'

x2=sin(2*pi*n*f8/fs);

4'

x1=sin(2*pi*n*f2/fs);

5'

6'

B'

7'

x1=sin(2*pi*n*f3/fs);

8'

9'

C'

*'

x1=sin(2*pi*n*f4/fs);

0'

#'

D'

otherwise

flag=1;

%如果输入其他的数值给标志函数赋值1,并且提示出错

clc;

disp('

你输入按键错误'

temp=input('

是否要继续Y|y---是N|n--否'

if(temp==['

n'

]|temp==['

N'

])flag=0;

end

end;

if(flag==0)break;

end

x=x1+x2;

xk=fft(x,205);

k=0:

204;

subplot(413);

stem(k,xk(1:

205),'

xk'

xk=abs(xk);

%傅里叶变换后的频谱

subplot(414);

|xk|'

title('

xk的模值'

max1=1;

xmax1=xk

(1);

max2=1;

xmax2=xk

(1);

form=1:

50

if(xmax1<

xk(m))

xmax1=xk(m);

%xmax为xk的最大值

max1=m;

%最大值对应的m

form=1:

if(xmax2<

xk(m)&

m~=max1)%xmax为xk的次大值

xmax2=xk(m);

max2=m;

max1=max1-1%因为横坐标是从0开始的所以要给max1和max2减去1

max2=max2-1

if(max1>

max2)%判断max1与max2的大小,并把较小的赋值给max1

k=max1;

max1=max2;

max2=k;

------------------------经过传输后知道--------------------------------'

switchmax1

case18

switchmax2

case31

输入的是-------1'

case34

输入的是-------2'

case37

输入的是-------3'

case43

输入的是-------A'

case20

输入的是-------4'

输入的是-------5'

输入的是-------6'

case43

输入的是-------B'

case22

switchmax2

输入的是-------7'

输入的是-------8'

输入的是-------9'

输入的是-------C'

end

case24

输入的是-------*'

输入的是-------0'

输入的是-------#'

输入的是-------D'

是否要继续按键Y|y---是N|n--退出'

])break;

;

6.实验结果

1209133614471663

697123A

770456B

852789C

941*0#D

请输入按键2

max1=

max2=

------------------------经过传输后知道--------------------------------

输入的是-------2

是否要继续按键Y|y---是N|n--退出n

运行的实验频谱图如图图五所示:

图四:

信号的频谱图

7、实验总结及分析

本题是当输入某一个数字时,将对应产生两个不同频率的信号,一种简单的产生方法是正弦波方案,在此方案下,产生的时域信号为x(t)=sin(2*pi*Flt)+sin(2*pi*Fht)。

再通过离散傅立叶变换后得到其频谱,通过测量其对应采样点上的能量值的大小进行信号解码的。

通过本题对对DTMF信号的生成及其检测有所了解,采用DFT对该信号进行检测,由于该题只采样了205点,采样点不太多,故采用DFT,FFT适用于采样点较多的信号的检测。

检测过程通过对几个特殊点上的DFT变换幅值和判断标准进行比较判断,从而确定输入字母。

通过实验对DFT的定义、物理意义及基本性质有了深入了解。

题目六

1、设计内容

(提取淹没在噪声中的周期信号)提取淹没在噪声中的周期信号要求自相关(以判断周期)和互相关(以恢复信号自身)。

(a)生成信号x[n]=sin(0.1*n*pi),0n

499.增加一些均匀分布的随机噪声(其噪声幅度为2,平均值为0)以得到噪声信号s[n]。

作出每个信号随参数n变化的图形。

是否能够从所画的x[n]中判断出任何的周期性?

如果可以,求周期N。

能否由所画得s[n]判断出任何周期性?

(b)求x[n]的周期自相关rpx[n]并作图。

能否由所作的rpx[n]判断出任何周期性?

这个N是否与x[n]的周期相同?

(c)利用上面所求的N值(如果没有,则由x[n]判断)生成一个500样本的冲击

串求出s[n]和i[n]的周期互相关。

(i[n]=

0≤n≤499)

2、设计目的

(1)学会使用Matlab作为画图工具;

(2)噪声的产生方法和对信号进行周期性的判断;

(3)函数自相关和互相关的概念和对其的求法;

(4)冲击串的产生方法;

(5)提取淹没在噪声中的信号,并求自相关和互相关,画出图形。

正弦信号是周期信号,通过它的图形可以确定其周期性,当加上噪声信号以后它不在具有周期性。

函数的自相关函数和互相关函数的波形也具有周期性,通过波形也可以判断其周期。

给一个正弦信号并加均匀分布随机噪声,然后提取淹没在噪声中的信号,计算自相关以判断周期,计算互相关以恢复信号本身。

x[n]的周期N=20,因为s[n]受噪声影响已经没有严格的周期性。

rpx[n]有周期性N=20,与x[n]的周期相同。

也可以从互相关中提取x的周期。

3、设计步骤

(1)设计好自己的思路,画出流程图,如图图五所示;

(2)生成正弦信号x[n],并判断其周期性,编写均匀分布的噪声信号,并与原始信号叠加生成信号s[n];

(3)运用卷积得到加噪信号s[n]的自相关函数判断输入信号x[n]的周期;

(4)输出冲击串函数,运用互相关函数的调用得到i(n)和x(n)的互相关函数;

(5)打印输入信号、加噪信号、自相关函数信号、冲击串信号、互相关信号的波形。

b.产生互相关函数

a.产生自相关函数

图五:

第六题的流程图

clearall

%第一小问

n=0:

1:

499;

figure('

噪声信号'

);

subplot(3,1,1);

x=sin(0.1*n*pi);

plot(n,x,'

r'

xlabel('

x(n)'

原始信号x(n)的图形'

%产生均值为0的均匀分布的噪声

p=4/3;

%根据题目所给的均值还有均匀分布的随机矩阵算出所需信号的功率

jun=0;

%需要的均值

N=500;

y=rand(1,N);

temp=var(y);

%y序列的方差

c=sqrt((p-jun^2)/var(y));

%求系数c

d=jun-c*mean(y);

%求系数d

u=c*y+d;

%求均值为jun、功率为P的随机序列u

jun_u=mean(u);

%求序列u的均值

power_u=dot(u,u)/N;

%求随机序列的u的功率,检验u(n)的功率是否满足要求dot

subplot(3,1,2);

plot(u,'

gridon;

u(n)'

噪声u(n)的图形'

z=x+u;

%噪声与信号的叠加

subplot(3,1,3);

plot(n,z,'

z(n)'

噪声信号z(n)的图形'

%第二小问

自相关函数'

plot(n,z,'

y=sin(0.1*(n+1)*pi);

c=conv(x,y);

%x与y的卷积就是自相关函数

plot(c);

x(n)的自相关函数'

%第三小问

N=20;

%N是x(n)的周期

in=zeros(1,500);

%冲击串i(n)的产生

fork=1:

20:

500

in(k)=1;

rh=xcorr(z,in);

%s(n)与i(n)的周期互相关

互相关函数'

subplot(2,1,1);

stem(n,in);

冲击串i(n)的图形'

subplot(2,1,2);

plot(rh);

i(n)和x(n)的互相关函数'

一、信号、噪声、噪声信号的波形图如图图六所示:

图六:

信号、噪声、噪声信号图形

二、x(n)的自相关函数的图形如图图七所示:

图七:

x(n)的自相关函数图形

三、冲击串i(n)以及其与x(n)的互相关函数的图形如图图八所示:

图八:

冲击串图形以及与x(n)互相关图形

该题目验证了正弦信号的周期性,函数自相关函数和互相关函数的周期性,并通过其图形判断它们的周期N。

通过图形判断周期正弦信号x[n]的周期性N=20,加噪以后的信号s[n]判断不出任何周期性。

通过所画正弦信号x[n]的自相关函数rpx[n]的图形,求出rpx[n]的周期N,这个周期与原正弦信号x[n]的周期相同。

通过学习,进一步复习了周期信号的周期性的判断,知道了函数自相关周期与原始信号周期的关系。

题目九

1、设计内容(字体大小小四)

设有一长序列x(n)

令x(n)通过一离散系统,其单位抽样响应

试编程序分别用重叠保留法、重叠相加法、快速卷积法实现该系统对x(n)的滤波。

(1)学习重叠保留法,会用重叠保留法计算线性卷积;

(2)复习重叠相加法,会用重叠相加法计算线性卷积;

(3)复习快速卷积法,掌握其原理,并用快速卷积法计算线性卷积;

(4)比较三种方法的优劣,会选用适当的方法快速准确的计算线性卷积;

重叠保留法原理(适于N》》M的情况):

假设将序列x(n)分成多段N点序列,滤波器的脉冲响应为M点序列,M《N。

用输入段和脉冲响应之间的N点循环卷积产生该段的输出序列。

由上面的结论,可知其中前(M-1)个样本不是正确的输出值。

若将x(n)简单的分成互不重叠的各段,则输出的序列会有不正确的样本区间存在。

为纠正这个问题,使X(n)分成相互重叠(M-1)个样本的许多段,在卷积的结果中抛弃前面(M-1)个样本,保留后面的(N-M+1)个输出样本,最后将输出的结果连成一个序列。

为了修正第一段中的前(M-1)个样本,将第一段的前(M-1)个样本置零。

重叠相加法原理:

将输入序列x(n)分为互不重叠长度为N的K段,每段分别与长度为M脉冲响应H(n)按N+M-1的长度做循环卷

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

当前位置:首页 > 人文社科 > 法律资料

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

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