本文給出了前兩次信號與系統(tǒng)作業(yè)中的視頻講解。大家可以參考挂疆,在此基礎(chǔ)上自行探索完成實驗改览。
第二次作業(yè)第 10小題
作業(yè)的第10小題是MATLAB的實驗題。要求使用MATLAB對于兩段音樂所表示的信號進行變換缤言,生成相應(yīng)的音頻信號宝当。通過聆聽生成的音樂來體會信號變化所制造出的聽覺效果。從而拓展對于信號變化的感知空間胆萧。
在課堂上庆揩,介紹了十種常見到的信號操作卷積和相關(guān)運算將會在第二章進行進一步的講解,所以跌穗,在這次作業(yè)中僅僅對其他八種信號操作進行練習(xí)订晌。在MATLAB中,對于音頻信號的操作的命令蚌吸,最常見的是audioread,和audiowrite,這兩個命令分別完成音頻數(shù)據(jù)文件的讀取和存儲锈拨。在MATLAB中對于信號處理實際上都是通過對存儲離散時間信號的矩陣來完成。因此羹唠,在尺度變換的時候奕枢,需要滿足整數(shù)倍數(shù)的關(guān)系。但是肉迫,可以通過改變采樣頻率參數(shù)验辞,在音頻數(shù)據(jù)重新播放的時候產(chǎn)生相同的尺度效果。
下面來具體看一下在MATLAB中對這兩個命令如何對音頻文件進行操作的喊衫。
假設(shè)音頻文件存儲在d:盤中temp目錄下跌造,文件名稱為by.mp3.使用audioread命令,可以讀取該MP3文件族购,返回音頻數(shù)據(jù)f1,和采用率參數(shù)fs.如果音頻文件是立體聲音樂壳贪,則返回的數(shù)組是兩列的矩陣.可以使用mean,求數(shù)組列平均將立體聲兩個通道數(shù)據(jù)轉(zhuǎn)換成 一個通道數(shù)據(jù)寝杖。這只是為了使得后面的變化語句更加的簡潔而已违施。使用相類似的過程,完全可以對立體聲進行操作瑟幕。
使用audiowrite命令磕蒲,可以將生成的新的音頻文件重新寫入磁盤中的數(shù)據(jù)文件留潦。請注意,MATLAB所能夠接受的存儲音頻文件格式只包括有:.wav, .mp4等幾類格式辣往。建議大家在做實驗的時候存儲成.wav文件兔院。
當(dāng)然,這個作業(yè)題站削,也可以對二維圖像信號進行相應(yīng)的變換坊萝,觀察信號變換后的效果。在MATLAB重視使用imread,imshow,imwrite等命令對于圖像數(shù)據(jù)進行讀寫和顯示许起。下面十偶,我們同時展現(xiàn)一下音樂和圖片在上述八種信號操作中所得到的結(jié)果。對比一下人類的聽覺和視覺對于信號感知方面的差異园细。
作業(yè)中第一種信號運算是對因變量惦积,即信號的幅值進行運算。這反映在信號的放大與衰減方面珊肃。在放大時荣刑,信號的幅度乘以一個大于1的常數(shù),信號衰減時伦乔,則乘以一個小于1的常熟厉亏。如果常熟小于0,則信號不僅幅值變化烈和,同時上下反褶爱只。下面聽一下信號幅值乘以0.5時的效果;可以覺察出招刹,聲音只是在音量上略微減小恬试,其他方面沒有變化。需要說明一點疯暑,人在感知聲音的時候训柴,聲音的大小與聲音的幅值的對數(shù)成正比。如果想使得聲音挺起來減少一倍妇拯,聲音的幅值應(yīng)該減少10倍左右幻馁。對于圖像中的交流成分縮小一半,可以感到圖像對比度下降了越锈。
聽一下信號幅度增加50%的音效仗嗦。仍然由于聽覺的強度對數(shù)原理,幅度放大
的音樂聽起來感到是增加了一點甘凭,并不是增加了50%的強度稀拐。將圖片中交流成分的幅度增加50%,圖像看起來對比度增加了丹弱。將音頻的幅度乘以-1德撬,聽聽聲音的變化铲咨。聽出變化了嗎?我是沒有聽出任何變化砰逻。
如果震動的信號幅值上下翻轉(zhuǎn)鸣驱,可以看成其相位改變了180度。人的耳朵對于相位并不敏感蝠咆。對于聲音信號,乘以-1北滥,人的耳朵是感知不到的刚操。但對于圖片中的交流信號乘以-1,則原來的圖片就變成了照相底片了再芋。對于這以變化菊霜,人的
視覺是很容易感知的。
對于信號的幅度改變济赎,人的耳朵和眼睛具有不同的特性鉴逞。而且人的耳朵對于聲音的感知是一個非線性的關(guān)系,即對數(shù)關(guān)系司训。這個能力是人類經(jīng)過長期的進化過程演變而來的构捡。
第二個信號運算是對信號的自變量進行改變,包括有尺度壳猜、平移和反褶勾徽。這一小題是對信號的尺度變化。請注意统扳,連續(xù)時間信號和離散時間信號在尺度變化方面有一定的差異喘帚。離散時間信號,通常情況下采用補零拉伸和抽樣壓縮的方式咒钟。這就要求離散時間信號的尺度變化是整數(shù)倍數(shù)的變化吹由。對于非整數(shù)倍數(shù)的變化,可以采用近似朱嘴,或者插值的方式進行逼近倾鲫。在MATLAB中,可以采用這個命令腕够,直接對于數(shù)組進行抽取壓縮兩倍级乍。相應(yīng)的說明,請大家參見MATLAB中的基本操作命令幫助文件帚湘。對于數(shù)組進行擴展玫荣,為了不影響信號的連續(xù)性,
往往采用插值大诸,或者取最近鄰的方法來產(chǎn)生新的信號捅厂。
而不再使用插零的方式進行拉伸贯卦。這個命令就是將原來的信號拉伸1.5倍。其中
當(dāng)拉伸后的下標(biāo)不位于整數(shù)點上的時候焙贷,則取前面相連數(shù)據(jù)值撵割。下面聽聽尺度變化所帶來的音效效果。這是壓縮兩倍后聲音效果辙芍。節(jié)奏變快啡彬,音高增加。聲音拉伸之后故硅,節(jié)奏變慢庶灿,音高降低。
同樣的音樂吃衅,在壓縮后感覺變的歡快往踢。在拉伸后,則感到憂傷徘层。對于圖片來講峻呕,拉伸和壓縮只是帶來了大小的變化,人們對于圖片本身的信息并沒有感到太多的改變趣效。這方面也反映了人類在聽覺和視覺方面的差異瘦癌。
對于信號進行反褶,在MATLAB可以使用flip來簡單實現(xiàn)英支。有一點請注意佩憾,flip只是沿著信號中心進行反褶,而不是沿著坐標(biāo)的 原點進行反褶干花。下面聽聽聲音反褶后的效果妄帘。怎么樣?時間反褶后池凄,聲音聽起來就怪怪的了抡驼。如果將語言信號進行反褶,則一般情況下肿仑,就很難理解了理解了致盟。
下面聽取一個聲音信號在反褶后的效果。它對應(yīng)的反褶之后是這樣的尤慰。應(yīng)該說馏锡,聲音反褶后就無法理解了。利用這種方法可以對語音進行加密伟端。將來學(xué)習(xí)傅里葉變換后杯道,還可以通過對于頻譜的高低頻的對調(diào),也可以完成對于聲音的加密责蝠。對于圖片進行反褶党巾,則情形比較復(fù)雜萎庭。這里顯示了圖片沿著水平和垂直方向進行反褶后的結(jié)果。
對于信號的平移齿拂,表現(xiàn)就是信號延遲驳规,或者提前,它本身并沒有什么變化署海。剛才的音頻實際上在播放之后吗购,延遲了兩秒鐘,聽起來只是延遲了叹侄。對于圖片的平移巩搏,表現(xiàn)在圖片在空間中的位置的改變。
對于連續(xù)時間信號可以進行微分和積分運算趾代,對于離散時間信號則對應(yīng)的是差分和累加運算。在MATLAB中可以使用數(shù)組和它的延遲進行相減完成差分丰辣;也可以直接使用diff命令進行查復(fù)撒强。下面聽聽音頻信號差分后的變化。聽覺上笙什,可以感到聲音變的比較尖銳了飘哨。原來豐富的低頻部分消失了。這說明信號的微分琐凭、差分突出了信號中的變化部分芽隆,對于平緩部分,或者直流分量則進行了衰減统屈。對于圖片也可以使用diff進行差分胚吁;可以看到查分后,圖片中只剩下邊緣部分的信息了愁憔。將差分后放大五倍腕扶,可以更加明顯的看出圖頻差分后是提取了邊緣信息。
信號的積分吨掌,在離散時間信號中表現(xiàn)為對信號的累加操作半抱。在MATLAB中使用COMSUM進行數(shù)組的累加。如果使用這個函數(shù)對音頻信號進行累加膜宋,會發(fā)現(xiàn)輸出結(jié)果范圍會大大超出了0至1所允許的取值范圍窿侈。數(shù)值溢出1的范圍之后,則在播放的時候就會飽和秋茫,聽不到任何聲音史简。因此,可以使用MOVSUM命令進行信號的窗口累加学辱。這里使用了前后100個數(shù)據(jù)進行累加平均乘瓤』沸危可以聽出來,聲音中的高頻分量被大大衰減了衙傀。積分抬吟、累加抑制了信號中的變化快的成分。對于圖片使用MOVSUM則起到了對于圖像進行模糊的作用统抬。
兩個信號之間可以進行相加火本。聲音中可以聽到他們疊加后的效果。信號中的噪聲也通常以疊加的形式加在了信號的上面聪建。將來钙畔,可以知道一些濾波的方法去除這些疊加的噪聲。同樣金麸,將來也會有一些方法擎析,能夠使得我們能夠盡可能精確的將疊加在一起的信號進行分離。圖片也可以通過疊加重合在一起挥下。
信號也可以通過相乘運算作用在一起揍魂。這是兩個聲音信號相乘之后的結(jié)果,顯得比較凌亂棚瘟。當(dāng)一個高頻信號和一個低頻信號相乘的時候现斋,則會聽到幅度在變換中的音調(diào)。這是音樂演奏中的技巧偎蘸。這兩兩個圖片中的交流成分相乘后的結(jié)果庄蹋。
信號的基本運算為我們打開了操作信號的大門。這也為設(shè)計和實現(xiàn)更復(fù)雜信號處理系統(tǒng)提供了基礎(chǔ)手段迷雪。在未來的課程中限书,將會學(xué)習(xí)更多,更基本的信號處理方法振乏,為迎接工程挑戰(zhàn)打下良好的基礎(chǔ)蔗包。
第二次作業(yè)第11小題
作業(yè)第11題,是根據(jù)信號的波形慧邮,求取信號表達式中的參數(shù)调限。
在實際測量得到的信號數(shù)據(jù)中,通常包含有大量的加性噪聲误澳。為了獲得更加精確的信號參數(shù)耻矮,往往需要更多的信號測量數(shù)據(jù)來估計信號的參數(shù)。獲取信號波形數(shù)據(jù)可以通過示波器忆谓、計算機的AD采集卡裆装。對于變化緩慢的信號,還可以通過手工的方式進行采集數(shù)據(jù)。
作業(yè)第11題哨免,是假定需要測量一個未知電容的容值茎活。可以使用一個已知阻值的電阻與其串聯(lián)琢唾,然后再施加一個正弦交流信號载荔,通過測量RC串聯(lián)電路的輸入信號U和分壓后信號V的參數(shù),便可以求得電容的容值采桃。這是根據(jù)電路原理中關(guān)于穩(wěn)定交流電路分析方法懒熙,所得到的RC電路的分壓公式。
利用上面公式普办,便可以求出交流信號在RC分壓電路上的幅度分壓比與R工扎、C、F之間的關(guān)系衔蹲。RC電路也會引起輸入輸出信號之間的相位變化肢娘。這是相位差與R、C舆驶、F之間的關(guān)系蔬浙。因此,可以通過測量信號的幅度贞远、或者相位差,再加上信號的頻率和已知的電阻笨忌,計算出電容的容值蓝仲。作業(yè)中的數(shù)據(jù)是使用一個可以聯(lián)網(wǎng)的示波器直接測量實際RC電路所獲得的信號波形數(shù)據(jù)。電路中電阻通過5位半數(shù)字萬用表測量官疲,阻值為1009歐姆袱结。使用標(biāo)準(zhǔn)的信號源給出幅度為1V,頻率為400Hz左右的正弦信號途凫,使用示波器測量輸入信號和RC分壓后的信號波形垢夹,并通過網(wǎng)絡(luò)讀入MATLAB內(nèi)存。最終存儲在CH12.MAT數(shù)據(jù)文件中供作業(yè)使
用维费。
可以使用load命令將數(shù)據(jù)文件讀入MATLAB工作區(qū)果元;其中兩列數(shù)據(jù)分別是分壓后,和分壓前交流信號數(shù)值犀盟。在前面分析中而晒,由于只需要獲得信號前后分壓比,或者相位差便可以進行求解阅畴,所以倡怎,并不需要信號波形的絕對數(shù)值。信號的采樣率,可以從示波器設(shè)置上讀出监署,是10微妙颤专,這個參數(shù)對于測量信號頻率非常重要。在MATLAB中钠乏,可以通過fit命令栖秕,來對測量信號波形進行參數(shù)估計。其中第三個參數(shù)缓熟,指明信號函數(shù)類型累魔。這里fourier參數(shù),說明信號是一個帶有直流量够滑、相位角的正弦信號垦写。
fit命令可以根據(jù)測量數(shù)據(jù)獲得該正弦信號的直流、cos彰触、sin梯投、以及角頻率等參數(shù)。關(guān)于MATLA中fit指令况毅,大家可以通過MATLAB的聯(lián)機幫助分蓖,或者其它參考書進行學(xué)習(xí)。在這里就不再累述了尔许。
這里給出了具體實驗的步驟么鹤。使用load命令調(diào)入示波器讀取的波形數(shù)據(jù);得到數(shù)據(jù)維度:兩個通道味廊,每個通道1400個采樣數(shù)據(jù)蒸甜;采樣頻率為10微妙;使用x表示采樣時間點向量余佛;使用plot繪制出兩個通道的信號波形柠新。使用fit命令對于兩個通道波形分別計算出它們的參數(shù);這是第一通道的波形參數(shù)這是第二通道的波形參數(shù)辉巡;根據(jù)這些參數(shù)恨憎,可以分別是算出兩個通道內(nèi)正弦波參數(shù);這是對應(yīng)的表達式郊楣;他們各自的幅值憔恳;相位。以及信號的頻率痢甘。這是RC電路的分壓比值喇嘱。
再往后便可以通過信號幅度的比值,或者相位差計算電容容值了塞栅。
這是根據(jù)測量的頻率者铜、電阻以及RC分壓比值計算出電容的大小腔丧。這與電容上標(biāo)稱值基本一致。這是一個無極性的電解電容作烟,容值為1微分左右愉粤。
這個題目本應(yīng)該是在第一次作業(yè)給出,說明信號的波形可以傳遞出很多的信息拿撩。不僅可以告訴我們信號的種類衣厘,同時開可以進一步獲得信號參數(shù)。在此基礎(chǔ)上压恒,可以進行進一步的計算測量影暴,獲得更多的信息。
在這里探赫,再給出另外一個信號波形參數(shù)估計的應(yīng)用例子型宙。在智能車比賽的時候,使用法拉電容存儲從無線接收線圈獲得的電能伦吠。使用普通的電容表妆兑,是無法測量法拉電容的容值的∶牵可以使用RC放電電路來測量法拉電容的容值搁嗓。比如右邊的電路,給被測法拉電容充上一定電能箱靴,然后在已知阻值的電阻上放電腺逛,測量電阻放電曲線。根據(jù)電路原理可知衡怀,放電曲線是一個指數(shù)衰減的信號屉来,指數(shù)衰減信號的時間常數(shù)與RC成正比。這是通過能夠聯(lián)網(wǎng)的萬用表測量得到的法拉電容放電曲線狈癞,的確是一個指數(shù)衰減的形式。下面一個問題茂契,就是如何通過信號波形曲線蝶桶,獲得精確的信號參數(shù)呢?
這里給出了實驗的步驟掉冶。使用fit命令真竖,對于數(shù)據(jù)進行曲線擬合,曲線的種類選擇一個指數(shù)衰減信號的形式厌小。指數(shù)信號的幅值a和參數(shù)b;參數(shù)b是衰減時間常數(shù)取倒數(shù)恢共,再乘以-1.由此,可以根據(jù)已經(jīng)知道的放電電阻R璧亚,計算出對應(yīng)的法拉電容的數(shù)值讨韭。法拉電容大約為20法拉,這與它的標(biāo)稱值基本一致。
掌握信號參數(shù)估計的方法透硝,是未來利用實際數(shù)據(jù)的基礎(chǔ)狰闪。當(dāng)然,這只是信號分析的一種方法濒生。在第三章將要學(xué)習(xí)的傅里葉變換埋泵,是對信號進行分析的另外一個重要的手段。這道題將分析到這里罪治。
第一次作業(yè)第6小題
作業(yè)第六小題是應(yīng)用MATLAB中的信號短時傅里葉變換獲得信號的時頻聯(lián)合分析丽声。
電話中的雙音頻編碼是BELL實驗室提出的電話撥碼方案;它是利用聲音中的兩組不同頻率信號的組合傳遞電話撥碼信息觉义;低頻群中包括了四個頻域雁社,分別是697赫茲;770赫茲;852赫茲以及941赫茲;高頻群眾定義了三個頻率港令,包括1209赫茲毙石;1336赫茲;1477赫茲膊畴。
這樣就可以組合成12個編碼;對于一個聲音,如果能夠檢測出其中高頻和低
頻的頻率崭参;就可以指出對應(yīng)的按鍵編碼。現(xiàn)在可以通過專用的數(shù)字處理芯片直接獲得雙音頻解碼款咖;也可以通過計算軟件進行解碼何暮。
下面為了介紹信號的時頻聯(lián)合分析所能夠帶來的信息。我們使用MATLAB錄制一段塑料喇叭的音節(jié)铐殃,來看一下對應(yīng)的時頻分布海洼。在MATLAB中使用audiorecorder命令建立錄音對象。然后使用命令recordblocking開始錄制五秒
中的聲音富腊;現(xiàn)在已經(jīng)錄制完畢坏逢,使用play命令回放一下;使用getaudiodata命令獲得錄音數(shù)據(jù)赘被,使用plot命令繪制錄制聲音的波形;下面使用spectrogram命令繪制聲音信號的短時傅里葉變換是整,即信號的時頻聯(lián)合分析。
下面介紹一下實驗中所使用的幾個常用命令民假。通過audioread讀取錄制好的音頻文件浮入。可以是wav格式文件羊异,也可以MP3格式的音頻文件事秀。函數(shù)返回兩個參數(shù)彤断;
前面的是音頻文件對應(yīng)的數(shù)據(jù),如果是立體聲音頻秽晚,則數(shù)據(jù)是2維數(shù)組瓦糟;后一個參數(shù)是音頻的采樣頻率。使用spectrogram命令可以獲得信號的短時傅里葉變換赴蝇。第一個參數(shù)是進行變換的數(shù)據(jù)菩浙;
第二個參數(shù)是短時傅里葉變換的窗口數(shù)據(jù)長度;第三個參數(shù)是相鄰窗口重疊數(shù)據(jù)長度句伶;第四個參數(shù)指明顯示頻率范圍劲蜻。第五個參數(shù)為數(shù)據(jù)的采樣頻率。最后一個說明頻譜數(shù)據(jù)顯示的格式考余。
作業(yè)第一個音頻是使用MATLAB合成的雙音頻數(shù)據(jù)先嬉,先聽一下對應(yīng)的聲音。這個音頻總共包括了23個按鍵編碼聲音楚堤。通過對照可以看到疫蔓,它實際上是圓周率前23位有效數(shù)字。
第二個音頻中嵌入了一個首先的“信號”文字身冬。大家聽一下對應(yīng)的音頻衅胀。這個聲音是我使用MATLAB合成的音響。
第三個音頻中嵌入了圖片酥筝,如果使用2048,1024作為變換參數(shù)滚躯。會發(fā)現(xiàn)圖像不是特別清楚。如果提高一下短時傅里葉變換的數(shù)據(jù)幀長度嘿歌,時頻聯(lián)合分布中的圖像就會清晰起來掸掏。將圖片的對比度增加一下,可以看清聲音中的人物肖像的模樣了宙帝。
關(guān)于信號的頻譜分析丧凤,將會在信號與系統(tǒng)課程的第三章進行重點學(xué)習(xí)。