基于DFT的信号识别系统
时间:2025-05-11
时间:2025-05-11
DFT
基于DFT的信号识别系统
一.实验目的
(1) 通过实验巩固离散傅立叶变换DFT的认识和理解。 (2) 熟练掌握应用DFT进行频谱分析的方法。 (3) 理解DFT离散频谱分析的应用价值。 二.实验基本原理
DFT是一种可应用于实际的频谱分析方法,也是目前实际应用中进行频谱分析的主要方法。
设X n 是长度为N点的有限长信号,叫即信号仅仅分布在[0,N-1]区间,其余时间均为0,那么,该信号的离散傅立叶变换定义为:
N 1
j2 Nkn
X(k)
x(n)
n 0
,k=0~N-1,离散时间傅立叶变换值X(k),k=0~N-1是有限
长信号x(n),n=0~N-1的离散频谱。
如果对该连续频谱以等间隔方式采样(频率采样),则频率间隔为
k *k
2 Nk
,k=0~N-1。将ω=2 f =
2 ffs
代入上式中,得到f与k的关系
式:f
fsN
k。
三.实验内容
在语音识别、雷达信号处理、生物医学信号检测与识别等应用领域广泛使用基于离散傅立叶变换的谱分析技术。一个典型的信号识别系统如图:
设系统的输入信号x(n)是具有单一频谱峰值的正弦信号,短时矩形窗将信号截短为有限长,经过DFT变换得到频谱,频率检测器检测频谱最大峰值的位
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)输入信号x(n)=1.2sin(0.08πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察系统的实际识别结果,分析其正确性。
(3)输入信号(xn)=1.5+3cos(0.5πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察系统的实际识别结果,分析其正确性。
(4)输入信号x(n)=0.7sin(0.14πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察系统的实际识别结果,分析其正确性。
(5)输入信号x(n)=1.2cos(0.5πn)+ 9.5sin(0.02πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察系统的实际识别结果,分析其正确性。 (6)输入信号x(n)=cos(0.102πn),理论计算并画出0≤f≤fs范围的幅度谱,标出峰值频率,观察系统的实际识别结果,分析其正确性。 四.实验过程
(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; %定义一般性的输入信号形式 形式
%x=A*cos(a*pi*n)+B*sin(b*pi*n)+C+randn(1,N); %加入随机噪声信号 y=x; %定义一个数组
s=0; %记录最大峰值
FS=[0,0,0]; %将返回值定义为数组用于返回多个数 for k=1:N %实现离散傅里叶变换 y(k)=0; n=1;
DFT
while(n<N+1)
y(k)=x(n)*exp(-j*2*pi*(k-1)*(n-1)/N)+y(k); n=n+1; end
if k<N/2;
if s<=abs(y(k)) %最大峰值 s=abs(y(k));
m=k-1; %最大峰值处的k end end end
f=fs*m/N; %最大峰值处的频率
FS=[m,f,s]; %返回最大峰值处的k,最大峰值处的频率,最大峰值 k=0:N-1;
subplot(2,1,1);
stem(10*k,abs(y),'.'); %画出DFT频谱图 title('DFT signal') xlabel('Frequency'); ylabel('Magnitude');
subplot(2,1,2);
stem(10*k,abs(fft(x,N)),'.'); %画出FFT频谱图 title('FFT signal'); xlabel('Frequency'); ylabel('Magnitude'); end
(2)输入信号x(n)=1.2sin(0.08πn),程序运行结果为
DFT
程序结果和理论计算值一致,系统识别结果正确。 (3)输入信号x(n)=1.5+3cos(0.5πn),程序运行结果为
程序结果和理论计算值一致,系统识别结果正确。 (4)输入信号x(n)=0.7sin(0.14πn),程序运行结果为
DFT
程序结果和理论计算值一致,系统识别结果正确。
(5)输入信号x(n)=1.2cos(0.5πn)+9.5sin(0.02πn),程序运行结果为
程序结果和理论计算值一致,系统识别结果正确。 (6)输入信号x(n)=cos(0.102πn),程序运行结果为
DFT
程序结果和理论计算值一致,系统识别结果正确。 五.思考题
(1)当矩形窗长度比1000小,例如32,以上实验内容(6)将可能出现什么情况?
答:当N=32时,原始信号的频谱已经失真,从得到的图形结果中也看不出原始信号的频谱。根据原理公式,从理论计算可得到
f
2 N
0.196,
fs
2
510 。 因此当矩形窗长度N取值过小,频率分辨率将会过低,这将
分辨出最大峰值频率。
(2)当输入信号 …… 此处隐藏:1844字,全部文档内容请下载后查看。喜欢就下载吧 ……