日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Simulink中DPCM量化和编码仿真

發布時間:2025/3/12 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Simulink中DPCM量化和编码仿真 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DPCM編碼與解碼的介紹

DPCM是差分脈沖編碼調制的簡稱,是一種利用信號樣值之間的關聯特性進行高效率波形編碼的方法。當信號樣值序列中鄰近樣值之間存在明顯的關聯時,那么樣值的差值方差就會比樣值本身的方差要小。PCM中直接傳輸樣值本身,而在DPCM中,傳輸數據為樣值的差值,在量化誤差不變的條件下,就可以用較少的比特數來表示碼字,也就提高了波形編碼效率。DPCM編碼與解碼的仿真在Simulink中的仿真模型如圖

該系統的信號發生器產生一個幅度為1,頻率為1的正弦波,獲得輸出圖像Scope1,其表達式為x=sin?(2πft)x=\sin (2\pi ft) x=sin(2πft),通過DPCM編碼器,獲得輸出圖像Scope2,再通過DPCM解碼器解碼,獲得輸出圖像Scope3。通過Scope1與Scope3圖像的對比來驗證解碼后的信號是否和原信號相同。并且在MATLAB中通過代碼來驗證其正確性。

Simulink仿真設置

在仿真中,我們對DPCM encoder(差分脈沖編碼表調制編碼器)的主要參數做如下設置:

  • predictor numerator(預測分子)設置為[0.9999]
  • predictor denominator(預測分母)設置為[1]
  • quantization partition(量子化分區)設置為[-0.0848 -0.029 0.0298 0.0853]
  • quantization codebook(量化碼本)設置為[-0.06 0.0004 0.058]
  • sample time(采樣時間)設置為0.01
    設置結果如圖

    我們對DPCM Decoder(差分脈沖編碼表調制解碼器)的主要參數做如下設置:
  • predictor numerator(預測分子)設置為[0.9999]
  • predictor denominator(預測分母)設置為[1]
  • quantization codebook(量化碼本)設置為[-0.085 -0.03 0.03 0.085]
  • sample time(采樣時間)設置為0.01
    設置結果如圖

仿真結果

我們對設置好參數的仿真圖進行仿真,系統在信號發生器產生一段正弦波后,將正弦波送入DPCM編碼器中,再通過DPCM解碼器,得到輸出信號。其中Scope1中的圖像是信號發生器產生的原正弦波。Scope2中的圖像是原正弦波經過DPCM編碼器編碼后的信號2。Scope3中的圖像是信號2經過DPCM解碼器解碼后恢復的信號。



從仿真結果可以看出,從信號發生器產生的正弦波在經過DPCM的編碼與解碼后,能夠準確的還原出原信號。

在MATLAB中對比驗證仿真結果

代碼如下:

clf; clear all; Ts = 0.001; t = 0:Ts:10; x = sin(2*pi*1*t); delta = 0.4; D(1+length(t)) = 0; for k = 1:length(t)e(k) = x(k) - D(k);e_q(k) = delta * (2*(e(k) >= 0)-1);D(k+1) = e_q(k) + D(k);codeout(k) = (e_q(k) > 0); end %原信號 subplot(3,1,1); plot(t,x); axis([0 10 -2 2]); title('原信號'); ylabel('幅度'); xlabel('時間/s'); hold on; %編碼 subplot(3,1,2); stairs(t,codeout); axis([0 20*Ts -2 2]); title('編碼輸出結果'); ylabel('幅度'); xlabel('時間/s'); %解碼 Dr(1+length(t)) = 0; for k = 1:length(t)eq(k) = delta * (2*codeout(k) - 1);xr(k) = eq(k) + Dr(k);Dr(k+1) = xr(k); end subplot(3,1,3); stairs(t,xr); hold on; subplot(3,1,3); plot(t,x); title('解碼結果和原信號波形對比'); ylabel('幅度'); xlabel('時間/s');

輸出結果如圖

從MATLAB中的圖像結果可以看出,原信號經過DCMP編碼再解碼之后能夠還原出原信號,與Simulink仿真的結果一致。

總結

以上是生活随笔為你收集整理的Simulink中DPCM量化和编码仿真的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。