您的当前位置:首页正文

电话号码的识别

2022-04-15 来源:易榕旅网
这个练习将教会在按键电话系统中如何使用不同频率的信号指出哪个键已被按下。一个采样电话信号的DTFT能用来辨识这些频率。当你按下某一个键时所得到的声音是两个正弦信号的和。较高频率的正弦指出在键盘上这个键所在的列,而较低频率的正弦则指出该键所在的行。表(1.1)指出一个电话键盘的编排和对应每个数字的两个DTFT频率,他们是假定以8192HZ采样连续时间信号波形得到的。例如,数字5用信号表示为 d5sin0.59n60sin1.n 0245 表1-1 1.创建行向量

2.利用fft分析向量所给的频率上。 i=1:10

'Num='

column 1.1328 row 0.9273 1.0247 0.5346 1 2 3 0.5906 4 5 6 0.6535 7 8 9 0.7217 0 8192Hz采样的拨号音信号的DTFT频率

d0到d9以表示在0n999区间的全部

d0到d9的DTFT频谱,绘图并确认峰值都落在表

个数字

1-1以10n=0:999;%the standard wave of 0--9 number demand oned0=sin(0.7217*n)+sin(1.0247*n);d1=sin(0.5346*n)+sin(0.9273*n);d2=sin(0.5346*n)+sin(1.0247*n);d3=sin(0.5346*n)+sin(1.1328*n);d4=sin(0.5906*n)+sin(0.9273*n);d5=sin(0.5906*n)+sin(1.0247*n);d6=sin(0.5906*n)+sin(1.1328*n);d7=sin(0.6535*n)+sin(0.9273*n);d8=sin(0.6535*n)+sin(1.0247*n);d9=sin(0.6535*n)+sin(1.1328*n);d=[d0;d1;d2;d3;d4;d5;d6;d7;d8;d9];

figure(1),for subplot(2,5,i); plot(abs(fft(d(i,:)))); title([,num2str(i-1)]);endd0到d9的DTFT频谱如下:

3.用zeros码,在电话号码中加入噪声。space=zeros(1,1000);phone=[d0 space d6 space space d2 space d7 space d2 space d3]; sound(phone,8192);lph=length(phone);ns=randn(1,lph)+sin(0.5*lph);phone=phone+0.4*ns;

4。将电话号码变成具有len=length(phone);i=1;p=1; while(ptemp(i,:)=phone(p:p+999); i=i+1;p=p+1000; end end

5。提取号码的第一种方法——频谱分析法。的特点,将电话号码中各量的话号码。但由于噪声的存在,准确性较差,容易出现错误。%use fft to demodulation demodulation with two different methods ftable=[1 2 3;4 5 6;7 8 9;0 0 0];Num=0Num=1Num=2Num=3Num=4600600600600600400400400400400200200200200200005001000005001000005001000005001000005001000Num=5Num=6Num=7Num=8Num=96006006006006004004004004004002002002002002000050010000050010000050010000050010000050010001000个空号样本的行向量space,定义phone是电话号

d3 space space d7 space d7 space d6 space d5 space d6 space

1000列的矩阵。

根据第二部分得到的d0到d9的DTFTDTFT频谱与d0到d9的DTFT频谱比较,可提出电

会对电话号码的频谱产生较大影响,因此该种方法

定义一个包含

频谱fr=[0.5346 0.5906 0.6535 0.7217]; fc=[0.9273 1.0247 1.1328]; dirt=0.03; Rom=1;Col=1; for j=1:i

f=abs(fft(temp(j,:))); k=find(f>350); R=k(1,1)/1000*2*pi; C=k(1,2)/1000*2*pi; for jj=1:4

if abs(R-fr(jj))if abs(C-fc(jj))output1(j)=ftable(Row,Col); end output1

提取号码的第二种方法——相关法。将电话号码中各量与d0到d9取相关,由于自相关

比非自相关的值大许多,因此很容易将电话号码提取,不易出现错误。 %use the correlation to demodulation len=i;

for i=1:len

s=[max(xcorr(temp(i,:),d0)) max(xcorr(temp(i,:),d1)) max(xcorr(temp(i,:),d2)) max(xcorr(temp(i,:),d3)) max(xcorr(temp(i,:),d4))

max(xcorr(temp(i,:),d5)) max(xcorr(temp(i,:),d6)) max(xcorr(temp(i,:),d7)) max(xcorr(temp(i,:),d8)) max(xcorr(temp(i,:),d9))]; s=[s(1,:) s(2,:)]; mx=max(max(s));

output2(i)=find(s==mx)-1 ; end

output2

因篇幅问题不能全部显示,请点此查看更多更全内容