曹英麗 許童羽 陳春玲 杜夢媛


摘要:頻域分析作為“信號與系統”課程的重要組成部分,因其物理概念復雜、理論計算枯燥學生理解困難等問題造成教學難度大,為了提高教學質量,本文設計了以DTMF信號為例的頻域分析教學案例,具體研究了利用離散傅里葉變換分析DTMF信號,并實現按鍵號碼的自動檢測。
關鍵詞:信號與系統;頻域分析;教學案例;DTMF
中圖分類號:G642.3 文獻標志碼:A 文章編號:1674-9324(2017)00-0221-03
“信號與系統”是電氣電子信息類本科學生連接數字信號處理、通信原理等后續課程學習的一門重要專業基礎課程,美國麻省理工學院著名教授奧本海默也在他所著教科書Signals and Systems的前言中指出:“信號與系統課程不僅是工程教學中一門非常基本的課程,而且也成為工科學生在大學教育階段所修課程中最得益而又引人入勝和最有用的一門課程。”然而由于課程本身的特點,物理概念抽象,并且與數學聯系緊密,尤其是頻域分析部分,復雜的數學公式推導以及數學結果常常使學生難以理解,僅依靠做題來鞏固和理解所學知識,無法達到讓學生真正理解頻域分析的物理概念和工程含義等教學目的,這時根據課程特點及需要,提出適當的教學案例便能讓學生更深刻理解所學知識的基本原理,更直觀地體會頻譜的物理概念以及應用。本文結合學生日常生活所能接觸到的電話按鍵,設計了按鍵中DTMF信號頻域分析的教學案例,并實現按鍵號碼的自動檢測。
一、DTMF的概念
DTMF(Dual Tone Multi Frequency,雙音多頻)被廣泛應用于世界范圍內的按鍵式電話上。作為實現號碼快速轉換并傳輸的一種技術,具有很強的抗干擾能力和較高的傳輸速度,主要用于解決遠程電話的自動呼叫發送被叫號碼,代替原本由人工接續的脈沖撥號方式,是電話系統中電話機與交換機之間的一種用戶信令。電話撥號有兩種,脈沖和音頻,所謂音頻就是雙音多頻(DTMF)信號的撥號方式,近年來DTMF也應用在交互式控制中,諸如語言菜單、語言郵件、電話銀行和來電顯示等方面。
DTMF是由兩個特定的單音頻組合信號來代表數字信號以實現其功能的一種編碼技術,其中一個頻率從四個低頻組中取出,另一個頻率從四個高頻組中取出,不同的頻率組合代表的數字或實現的功能也不同。在電話機中通常有16個按鍵,每個鍵對應一個DTMF信號(表1所示)例如按鍵“1”由697 Hz和1209 Hz組成的DTMF信號表示。
撥號時,每按一個鍵就發送一個由高頻正弦信號和低頻正弦信號組成的DTMF信號,之后利用交換機進行解碼這些頻率組合并確定所對應的按鍵。
二、頻域分析教學案例的實施
1.DTMF信號檢測原理分析。根據DTMF編碼原理可知DTMF信號是由兩個不同頻率的正弦信號組成,而傅里葉變換可以將信號轉換成各個頻率分量,如公式(1)傅里葉變換,所以可以應用傅里葉分析方法檢測DTMF信號頻域。
在MATLAB仿真環境中應用DFT方法,檢測分析DTMF信號。本次案例采用DTMF編碼的電話按鍵音頻經MATLAB讀入并仿真得到DTMF信號x(n),x(n)包含1個DTMF信號,信號時長為0.1s,采樣率fs=8194Hz(由錄制方式決定),這里利用MATLAB中的快速傅里葉變換(FFT)進行時域頻域的轉換,因本次分析不需要得到精確的頻率,所以可以忽略頻譜泄露等誤差,其時域波形與頻譜圖分別如圖1(a)(b)所示。
由圖1(b)可得DTMF信號x(n)包含的兩個頻率成分為大約為702.9Hz和1334Hz,查表可得該DTMF信號對應的按鍵號碼為2。
2.按鍵號碼自動檢測。應用上述分析法,對含有N個按鍵音的信號y(N)進行按鍵號碼的自動檢測,并在MATLAB仿真環境中進行算例分析。
讀入并仿真音頻信號y(n),y(n)包含10個按鍵音即10個DTMF信號,每個信號時長為0.1s,信號間間隔為0.1s。為防止10個DTMF信號在時域到頻域轉換時造成頻率混疊從而無法識別對應的按鍵號碼,利用兩個矩陣Time(n,m)和Data(n,m)對y(n)進行時域的自動分割,將其分成10個獨立的信號,矩陣Time(n,m)存放橫坐標數據即時間,矩陣Data(n,m)存放縱坐標數據即信號幅值,步驟大致如下:
首先將y(n)中的10個DTMF信號按順序編號由1至10即y(1)-y(10),Time(n,m)和Data(n,m)初始n=1,m為y(1)信號的數據,當n=1時,截取并仿真第一個DTMF信號y(1),當n≠1時,使用循環語句進入循環,每次循環,Time(n,m)中的n增加1,m中數據增加0.2s,Data(n,m)中的n也增加1,m中數據變為下一個DTMF信號數據,循環9次后,10個DTMF信號就可以被獨立仿真,再利用循環對矩陣Data(n,m)中m內的數據進行時域頻域的轉換,便可得到10個信號的頻域波形。
接下來設計能夠自動識別號碼的部分,由表1可知DTMF編碼的低頻范圍是0-1000Hz,高頻范圍是1000Hz-2000Hz,利用矩陣AL(n,m)和AH(n,m)分別放置低頻0-1000Hz數據和高頻1000Hz-2000Hz數據,實現頻域分割,n放置序列號,m放置各個頻率對應幅度值,再利用MATLAB中的max函數分別找出AL(n,m)和AH(n,m)中m的最大值對應的頻率,至此可以確定組合成信號的兩個高低頻,再結合表1便可以確定按鍵號碼。以信號y(1)為例,矩陣AL(1,m)和AH(1,m)分割其高低頻率,max函數找出最大幅值對應的頻率后,結合表1利用條件語句自動檢測出對應的按鍵號碼。最后使用循環語句,就可以實現10個按鍵號碼的自動識別。信號y(n)最后號碼自動檢測的結果為:2004011737。
三、結束語
本文介紹了DTMF信號的概念以及應用,并分析DTMF信號檢測的原理,設計了DTMF信號頻域分析的教學案例實現按鍵號碼的自動檢測,這種案例教學的方法,將晦澀的理論知識具體化、形象化,在提高學生的學習積極性的同時,加深了學生對知識的理解與掌握,更提高了學生的動手能力和獨立解決問題能力,達到提高教學效果和學生學習效率的目的。
參考文獻:
[1]楊敏,羅錦榮.信號與系統課程案例教學的探討——以心率測量顯示系統為例[J].大學教育,2016,(2):141-142.
[2]虞正平,胡愛群.基于Goertzel算法的DTMF信號檢測[J].通訊世界,2016,(13):272-273.
[3]陶丹,胡健,陳后金.“信號與系統”課程案例教學探討[J].電氣電子教學學報,2015,(5):55-57.
[4]朱永紅.《信號與系統》的綜合案例教學方法[J].教育教學論壇,2014,(53):192-193.
[5]張文明,羅鵬飛,謝曉霞,蔡宣平.信號處理系列課程案例設計研究[J].高等理科教育,2014,(4):117-120.