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

評論