视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于DFT的信号识别系统
2025-09-25 02:53:49 责编:小OO
文档
基于DFT的信号识别系统

一、实验目的

(1)通过实验巩固离散福利叶变换DFT的认识和理解。

(2)熟练掌握应用DFT进行频谱分析的方法。

(3)了解DFT离散频谱分析的应用价值。

二、实验内容

在语音识别、雷达信号处理、生物医学信号检测与识别等领域广泛使用基于离散傅里叶变换的谱分析技术。一个典型的信号识别系统如图所示:

设系统的输入信号x(n)是具有单一频谱峰值的正弦信号,短时矩形窗将信号截短尾有限长,经过DFT变换得到频谱,频率检测器检测频谱最大峰值的位置,即对应的频率,然后由分类器识别信号的类别。分类器的分类判决规则为:

第一类:最大峰值频率分布范围(Hz)为0≤f≤200。

第二类:最大峰值频率分布范围(Hz)为200≤f≤500。

第三类:最大峰值频率分布范围(Hz)为500≤f≤1000。

第四类:最大峰值频率分布范围(Hz)为f≥1000。

设采样频率fs=10000Hz,短时矩形窗宽度为N=1000,短时加窗信号经过DFT可以得到连续频谱在0<ω<2π范围内的1000个取样点。

(1)编程实现该系统

(2)输入信号1.2sin(0.08πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察实际识别结果,分析其正确性。

(3)输入信号1.5+3cos(0.5πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察实际识别结果,分析其正确性。

(4)输入信号0.7sin(0.14πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察实际识别结果,分析其正确性。

(5)输入信号1.2cos(0.5πn)+ 9.5sin(0.02πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察实际识别结果,分析其正确性。

(6)输入信号cos(0.102πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察实际识别结果,分析其正确性。

三、实验原理

     设x(n)是长度为N的有限长信号(注意这个前提),即信号仅仅分布在[0,N-1]区间,其余时间均为0,那么该信号的离散傅立叶变换定义为:

其中,k=0~N-1的整数。

f与k的关系为:

一般情况下,频域的采样点数必须与时域信号的长度一致。

四、实验结果

(1)    MATLAB程序如下:

function FS=dft1(A,a,B,b,C)  

fs=10000;                            %采样点频率 

N=1000;                               %采样点个数

n=0:(N-1);

x=A*cos(a*pi*n)+B*sin(b*pi*n)+C; %定义一般性的输入信号形式

y=x;                                   %定义一个数组

s=0;                                   %记录最大峰值

FS=[0,0,0];                          %将返回值定义为数组用于返回多个数

for k=1:N                            %实现离散傅里叶变换

    y(k)=0;

    n=1;

    while(n        y(k)=x(n)*exp(-j*2*pi*(k-1)*(n-1)/N)+y(k);

        n=n+1;

    end 

    if s<=abs(y(k))                 %最大峰值

        s=abs(y(k));                 

        m=k-1;                        %最大峰值处的k

    end

end

f=fs*m/N;                            %最大峰值处的频率

FS=[m,f,s];                        %返回最大峰值处的k,最大峰值处的频率,最大峰值    

k=0:N-1;

plot(k,abs(y));                    %画出频谱图

end

(2) X(n)=1.2sin(0.08πn)

返回值40.0000  400.0000  600.0000   第2类

(3)X(n)= 1.5+3cos(0.5πn)

返回值       0         0    1500.0        第1类

(4) x(n)=0.7sin(0.14πn)

返回值 70.0  700.0  350.0               第3类

(5)  x(n)=1.2cos(0.5πn)+9.5sin(0.02πn)

返回值990.0    9900.0    4750.0                    第4类

(6) x(n)=cos(0.102πn)

返回值 51.0000  510.0000  500.0000               第3类

五、思考题

1.当矩形窗长度比1000小,例如32,以上实验内容(6)可能出现什么情况?

答:频率分辨率降低,出现失真现象。如图:

2. 当输入信号x(n)=cos(0.19πn)时,系统能够得到正确的识别结果吗?为什么?

答:能,因为频域的采样点数与时域信号长度一致,所以系统能够得到正确的识别结果,返回值  95.0000  950.0000  500.0000如图:

3.如果输入信号x(n)含有叠加性宽带噪声e(n)会影响识别结果吗?为什么?

答:不会,因为信号是同相叠加,噪声是非同相叠加,二者在频谱上可以明显区分出来。

4.如果系统中的DFT要更新为FFT,且短时窗不变,则FFT计算应做哪些考虑,对识别结果有什么影响?

答:FFT中要求信号长度是2的整数幂,现在N=1000点,则须将其改为2的整数幂,如1024,则需要进行(1024/2)log21024=5120次复数乘法运算。对识别结果的频谱分析和时间分辨率不会造成影响,可以提高频率分辨率。

六、总结

通过本次实验,我学到了很多知识,巩固了对离散福利叶变换的认识和理解,熟练掌握应用DFT进行频谱分析,了解DFT离散频谱分析的应用价值,更加熟悉MATLAB这一款用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言,掌握了更多灵活多变的函数调用方法。下载本文

显示全文
专题