學(xué)好數(shù)字信號(hào)處理的三大訣竅之一——運(yùn)用MATLAB
采用數(shù)字信號(hào)處理的優(yōu)勢(shì)
前面比較了數(shù)字信號(hào)相對(duì)于模擬信號(hào)的優(yōu)點(diǎn),如噪聲不積累;差錯(cuò)可以控制;易于加密,安全性好;便于實(shí)現(xiàn)信息融合;便于采用大規(guī)模集成電路實(shí)現(xiàn),等等。此外,采用數(shù)字信號(hào)處理還有一些重要的優(yōu)勢(shì),即精度高、靈活性強(qiáng)、性能好和應(yīng)用廣等。
①數(shù)字信號(hào)系統(tǒng)相對(duì)模擬信號(hào)系統(tǒng)更容易實(shí)現(xiàn)高精度,并且并且較為穩(wěn)定,因?yàn)閿?shù)字系統(tǒng)不容易受外界溫濕度等的影響,而模擬系統(tǒng)的工作狀態(tài)常常受到外界環(huán)境的影響,發(fā)生參數(shù)的改變。
②數(shù)字信號(hào)系統(tǒng)處理更加靈活。模擬系統(tǒng)的硬件結(jié)構(gòu)一旦形成,不容易添加、刪除或者更改元器件,而數(shù)字系統(tǒng)很容易通過修改參數(shù)實(shí)現(xiàn)所需要的功能。當(dāng)信號(hào)處理既可以用硬件實(shí)現(xiàn)、也可以用軟件實(shí)現(xiàn)時(shí),它們各有其優(yōu)缺點(diǎn):硬件實(shí)現(xiàn)速度快,但是不靈活;軟件速度較慢,但是靈活性好。比如,手機(jī)的語音編解碼將復(fù)雜的算法用集成電路實(shí)現(xiàn),處理速度很快,因而能實(shí)現(xiàn)實(shí)時(shí)通信。
③性能好。數(shù)字系統(tǒng)可以實(shí)現(xiàn)嚴(yán)格的線性相位,這在某些對(duì)相位要求較高的場(chǎng)合如圖像傳輸非常有利,因?yàn)橄辔坏姆蔷€性會(huì)導(dǎo)致圖像的畸變;數(shù)字系統(tǒng)可以方便地存儲(chǔ)數(shù)據(jù),因而可以實(shí)現(xiàn)非因果系統(tǒng);數(shù)字系統(tǒng)可以利用信息論理論和語音、圖像壓縮理論,對(duì)數(shù)據(jù)進(jìn)行壓縮,大大降低數(shù)據(jù)傳輸率,壓縮的依據(jù)有兩個(gè):一是熵壓縮,利用空間和時(shí)間冗余度,二是利用人耳或人眼的感知特性。數(shù)字系統(tǒng)可以實(shí)現(xiàn)很精細(xì)的譜分析,而模擬系統(tǒng)則要粗糙得多,比如數(shù)字系統(tǒng)的譜分析精度可以達(dá)到千分之一赫茲,而模擬系統(tǒng)只能達(dá)到10赫茲。
④數(shù)字系統(tǒng)利用強(qiáng)大的儲(chǔ)存和運(yùn)算能力實(shí)現(xiàn)多維信號(hào)處理,如多維濾波、多維譜分析等,因而應(yīng)用更加廣泛。
教材中介紹了大量數(shù)字信號(hào)處理的應(yīng)用,這里再介紹兩個(gè)新穎的例子。將人體切片進(jìn)行數(shù)字化,可以對(duì)人體進(jìn)行三維重建,在醫(yī)學(xué)教育和臨床上都得到應(yīng)用。對(duì)文物進(jìn)行數(shù)字化,可以實(shí)現(xiàn)三維數(shù)字博物館,更加方便游客欣賞,也方便文物的復(fù)制。
學(xué)好數(shù)字信號(hào)處理的三大訣竅之一——運(yùn)用MATLAB
江志紅在《深入淺出數(shù)字信號(hào)處理》中提出,理解數(shù)字信號(hào)處理有三把“萬能”的鑰匙,即①時(shí)域與頻域的相互切換;②向量;③MATLAB軟件。對(duì)這種提法,本人深以為然。下面首先談MATLAB在數(shù)字信號(hào)處理中的應(yīng)用。
很多學(xué)生一旦接觸數(shù)字信號(hào)處理這門課,就被繁瑣的公式推導(dǎo)嚇倒了。高等數(shù)學(xué)固然公式很多,而數(shù)字信號(hào)處理公式之多,比高等數(shù)學(xué)有過之而無及,況且這些公式大都有一定的物理意義,要把公式及其物理意義緊密結(jié)合起來,因此就更加困難了。探索這門課程的更加友好的教學(xué)方法和更加有效的學(xué)習(xí)方法,顯得迫在眉睫。將理論和實(shí)踐加以結(jié)合,利用MATLAB實(shí)現(xiàn)各種理論和算法,運(yùn)用于解決實(shí)際問題,是學(xué)好數(shù)字信號(hào)處理的一個(gè)訣竅。
MATLAB是一個(gè)面向科學(xué)計(jì)算與工程數(shù)值分析的軟件,具有強(qiáng)大的仿真、計(jì)算和可視化能力。由于它是一種高級(jí)語言,因而編程非常簡(jiǎn)單,易學(xué)易用。將數(shù)字信號(hào)處理的學(xué)習(xí)和MATLAB工具緊密結(jié)合起來,學(xué)習(xí)才不會(huì)枯燥,因?yàn)榉爆嵉墓交蛩惴ǘ伎梢缘玫綄?shí)在的結(jié)果,這些結(jié)果甚至是可以聽到(語音、音頻)或者看到(圖像、頻率譜、相位譜)的,那么必然加深對(duì)基本理論的理解。數(shù)字信號(hào)處理是一門工科性質(zhì)非常強(qiáng)的課程,僅僅學(xué)一堆理論和公式而不能實(shí)現(xiàn)它,和學(xué)純數(shù)學(xué)有什么區(qū)別呢?況且數(shù)學(xué)課程也在改革中,也在運(yùn)用MATHEMATICA和MATLAB等工具進(jìn)行計(jì)算、直觀化,解決實(shí)際問題。
大多數(shù)字信號(hào)處理課程教學(xué)是把理論學(xué)習(xí)和MATLAB分開的,以理論課的學(xué)習(xí)為主,中間穿插一些實(shí)驗(yàn)或者課程設(shè)計(jì)環(huán)節(jié)。而我們會(huì)嘗試將MATLAB貫穿于整個(gè)數(shù)字信號(hào)處理課程的學(xué)習(xí),采取理論密切聯(lián)系實(shí)際的方法。一個(gè)不那么直觀的理論或公式,我們都試圖將其直觀起來,用MATLAB運(yùn)行得到實(shí)際結(jié)果來說明問題。理論和實(shí)驗(yàn)是不分主次的,理論學(xué)得好的可以多花點(diǎn)時(shí)間做實(shí)驗(yàn),而實(shí)驗(yàn)做得好的也可以多花點(diǎn)時(shí)間學(xué)習(xí)理論。
下面以圓周率的仿真計(jì)算為例,說明MATLAB的強(qiáng)大威力。下面是用面積法計(jì)算圓周率的仿真程序,整個(gè)程序只有一行:
N = 10000000; pi = 4*length(find(sum(rand(2, N).^2)《 1))/N
把上述命令輸入MATLAB的命令窗口運(yùn)行,即得到圓周率的近似值3.1417(重復(fù)試驗(yàn)可以得到不同的結(jié)果,但都是圍繞3.1416而變動(dòng)的,偶然性中包含著必然性)。上述各個(gè)命令的含義可以在以后的學(xué)習(xí)中逐步熟悉。
總之,學(xué)習(xí)數(shù)字信號(hào)處理這門課,一定要密切結(jié)合MATLAB,做到理論聯(lián)系實(shí)際,理性認(rèn)識(shí)和感性認(rèn)識(shí)相結(jié)合。下面舉一個(gè)有趣的例子來結(jié)束本節(jié)。
例1 有高矮各不相同的100名同學(xué),隨機(jī)地排成一個(gè)10×10的方陣。每行取最高的一個(gè)同學(xué),一共10個(gè)高個(gè)子,記為集合T;每列取最矮的一個(gè)同學(xué),一共10個(gè)矮個(gè)子,記為集合S。問題:(1) T中最矮的同學(xué)(記為T[S])和S中最高的同學(xué)(記為S[T])相比誰更高?(2) 如果T[S]和S[T]一樣高(即為同一個(gè)人),求其概率為多少?
分四種情況討論:T[S]和S[T]既不在同一行,也不在同一列;T[S]和S[T]在同一行;T[S]和S[T]在同一列;T[S]和S[T]為同一個(gè)人。容易知道,前三種情形,都是高個(gè)子中最矮的比矮個(gè)子中最高的要高,那么在100個(gè)人隨機(jī)排列的情況下,T[S]和S[T]為同一個(gè)人的概率多大呢?只要做一下試驗(yàn),只要試驗(yàn)的次數(shù)足夠高,就可以得到充分準(zhǔn)確的概率。如下代碼進(jìn)行10,000,000次試驗(yàn),統(tǒng)計(jì)T[S]和S[T]為同一個(gè)人的頻率。
clc,clear all;
tic
jj =0;
for ii= 1:10000000
A = randperm(100);
B = reshape(A, 10, 10);
C1 = max(B‘);
D1 = min(C1);
C2 = min(B);
D2 = max(C2);
if (D1-D2) 《= eps
jj = jj + 1;
end
end
rate =jj/10000000
time =toc
在Intel Celeron CPU G1820(2.70GHz)上運(yùn)行結(jié)果為:
rate =
1.0990e-004
time =
169.1524
即T[S]和S[T]為同一個(gè)人的概率約為萬分之一點(diǎn)一,在任一次試驗(yàn)中,幾乎可以肯定地說,高個(gè)子中的矮個(gè)子比矮個(gè)子中的高個(gè)子高。同時(shí),10,000,000次重復(fù)試驗(yàn)所花的機(jī)器時(shí)間約為169秒,即不到3分鐘。
原文標(biāo)題:學(xué)習(xí)數(shù)字信號(hào)處理的訣竅:運(yùn)用MATLAB
文章出處:【微信公眾號(hào):數(shù)字信號(hào)處理輔導(dǎo)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
數(shù)字信號(hào)
+關(guān)注
關(guān)注
2文章
982瀏覽量
47677
原文標(biāo)題:學(xué)習(xí)數(shù)字信號(hào)處理的訣竅:運(yùn)用MATLAB
文章出處:【微信號(hào):digital_signals,微信公眾號(hào):數(shù)字信號(hào)處理輔導(dǎo)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論