發表文章

目前顯示的是有「Matlab」標籤的文章

Matlab深度學習

圖片
  Download Deep Learning Toolbox Model of Matlab for AlexNet Network, GoogLeNet Network, ResNet-50 Network, VGG 16 Network. (4 network models are required) Deep Learning Toolbox Model for AlexNet Network alexnet.mlpkginstall Deep Learning Toolbox Model for GoogLeNet Network googlenet.mlpkginstall Deep Learning Toolbox Model for ResNet-50 Network resnet50.mlpkginstall Deep Learning Toolbox Model for VGG-16 Network vgg16.mlpkginstall 這邊下載到安裝過程由於大同小異就以alexnet來示範,其他的比照辦理就不多做贅述了。 下載完成之後,windows 是無法執行該檔案的 通常你雙擊後先自動開啟Matlab相應安裝檔案所在路徑後再次雙擊才會開出如下跳窗 做後續安裝動作 等他跑完 安裝好後的資訊應該要顯示如下 可以寫一小段測試程式確認alexnet有沒有成功安裝系統讀取的到 nnet = alexnet; nnet.Layers

影像壓縮DCT_IDCT

圖片
靜態影像壓縮技術(分如下兩種) 無失真壓縮(Information Lossless):採用差值訊號編碼(DPCM , Differential PCM) 通常壓縮不到10倍,比方:TIFF 用於醫學影像,不可能用失真壓縮(會出人命)。 失真壓縮(Information Loss):採用離散餘弦轉換(DCT , Discrete Cosine Transform) 壓縮率極高,壓縮大概30倍但仍可獲得高品質,通常應用於網頁應用圖片呈現。 比方: JPEG 「JPEG標準」 是由「聯合攝影專家組」開發的損失式圖像壓縮標準,於1992年被正式接受為國際標準,採用基於DCT(離散餘弦變換)的變換編碼方法。 在JPEG壓縮中,圖像被視為在空間域中的i和j(或傳統上的x和y)的函數。 JPEG使用2D DCT作為壓縮過程中的一個步驟,以產生空間頻率域中的頻率響應,這個響應是由兩個整數u和v索引的函數F(u v)。 JPEG的DCT轉換編碼方法的有效性 基於三個層面來觀察會被推廣和使用如此成熟的原因 1.有用的圖像內容變化相對較慢:例如,在8×8的圖像塊內,像素強度值的變化通常不會出現快速且頻繁的變化,這表示圖像中存在「空間冗餘」。 2.人類對高空間頻率組件的損失不太敏感:心理物理學實驗表明,人們對於非常高空間頻率成分的損失不如低頻成分那麼容易察覺。因此,可以通過大幅減少高空間頻率成分來減少空間冗餘。 3.對於灰度(黑白)比彩色的視覺敏感度更高:因此,JPEG使用色度子採樣(4:2:0)。 JPEG壓縮流程 Step1.將圖像轉換為YIQ或YUV格式。 Step2.進行DCT變換。 Step3.量化DCT變換後的結果。 Step4.在量化後,圖像數據通過編碼表和熵編碼進行進一步處理。 主要流程圖如下 JPEG圖像壓縮的主要步驟 將RGB轉換為YIQ或YUV格式,並進行色彩子採樣。 對影像塊進行DCT(離散餘弦變換)。 將每個圖像分割成8×8的塊,對每個塊進行2D DCT,輸出為每個塊的DCT係數F(u v)。 使用塊的方法會使得每個塊與其鄰近上下文隔離,這就是為什麼當用戶指定高壓縮比時,JPEG圖像看起來會有“塊狀”(choppy)現象。 量化過程(量化公式如下) -> 量化步驟是JPEG壓縮中主要的損失來源。 F(u v)代表DCT係數,Q(u v)是量化矩陣的條目, ...

量化誤差信號的直方圖(Plot histogram of error signals)_自相關及交叉相關(Autocorrelation and Cross-correlation)

圖片
量化誤差(error signals) 量化誤差是指原始信號與量化信號之間的差異 對於給定的位元/樣本數(7、4、2 和 1),計算原始語音信號和量化後語音信號之間的差異。 針對指定的bits數陣列進行尋訪,垂直呈現量化誤差直方圖。 延續使用之前自定義的量化函數 UquantAudio 對信號進行量化 量化誤差程式碼 % 讀取原始語音信號 [speech, Fs_speech] = audioread( 'speech.au' ); % 設定量化的位元/樣本 bits = [ 7 , 4 , 2 , 1 ]; % 創建一個新圖形來繪製直方圖 figure; orient tall; % 計算並繪製每個量化誤差信號的直方圖 for i = 1 : length (bits) % 量化語音信號 quantized_speech = UquantAudio(speech, 2 ^bits( i )); % 計算誤差 error_signal = speech - quantized_speech; % 使用 subplot 在同一圖形中繪製直方圖 subplot( 4 , 1 , i ); hist(error_signal, 20 ); title([ '誤差直方圖 - ' , num2str(bits( i )), ' 位元/樣本' ]); end % 保存直方圖圖片 saveas(gcf, 'error_histograms.png' ); 從顯示圖可觀察到,當量化級別較少時(如1位元/樣本),誤差分布可能會更廣泛,顯示出更大的誤差範圍。 7位元量化誤差直方圖: 顯示了當信號被量化到128個可能的級別時(2的7次方)的誤差分布。 誤差值範圍較小,分布相對均勻,這表明在高量化級別下誤差較小且分布平均。 4位元量化誤差直方圖: 當信號被量化到16個級別(2的4次方)時的誤差分布更為集中。 誤差的絕對值增加了,這是因為隨著量化級別的減少,可能的誤差範圍擴大了。 2位元量化誤差直方圖: 在僅僅只有4個級別(2的2次方)下誤差分布非常極端。 大多數誤差集中在四個明顯的峰值附近,這些峰值對應於可用量化級別之...

3-4.Audio Quantization

圖片
在Matlab版本分水嶺較新版本(R2012以後) 讀取聲音檔的API都用audioread,早期版本用wavread。 audioread( 'speech.au' ) 通常可支援的音訊檔格式如下 Platform Support File Format All platforms AIFC ( .aifc ) AIFF ( .aiff ,  .aif ) AU ( .au ) FLAC ( .flac ) OGG ( .ogg ) OPUS ( .opus ) WAVE ( .wav ) Windows ®  7  (or later),  Macintosh , and Linux ® MP3 ( .mp3 ) MPEG-4 AAC ( .m4a ,  .mp4 ) https://www.mathworks.com/help/matlab/ref/audioread.html 此函數的對應輸出有兩個 1.取樣點: 音頻的矩陣型態,單聲道還是有左右兩聲道。 2.取樣頻率:8K , 16K....Hz 因此需用以下語法來承接對應輸出的變數結果 [y,Fs] = audioread(filename) 第一階段.讀音檔程式 要確保你兩個音檔在當前matlab運行的所在目錄下 % 讀取音頻檔案 [speech, Fs_speech] = audioread( 'speech.au' ); [music, Fs_music] = audioread( 'music.au' ); 效果(對應輸出) 可以見到以下兩個音檔各自的矩陣型態是double 都是8k hz的取樣頻率 speech.au 是 23759x1的維度 music.au  是 82543x1的維度 這裡可打開workspace中的變數監看式查看 取樣點值域位於-1~+1之間 讀取進來後若想播放出來聽看看怎麼辦? 可藉由sound的函數來傳入剛剛兩個參數即可 第二階段.將讀進來的音檔進行可視化plot呈現 % 讀取音頻檔案 [speech, Fs_speech] = audioread( 'speech.au' ); [music, Fs_music] = audioread( 'music.au' ); %sound(...