数字信号处理专业课程设计报告书Word文件下载.docx
- 文档编号:19353052
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:24
- 大小:164.86KB
数字信号处理专业课程设计报告书Word文件下载.docx
《数字信号处理专业课程设计报告书Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理专业课程设计报告书Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
已知采样频率为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的长度做循环卷
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 专业课程 设计 报告书