圓周卷積和畫圖技巧

來源:互聯網
上載者:User

數字訊號處理中講到圓周卷積,試著寫了下matlab程式。

根據圓周卷積的公式:


x1(m)不需要變,痛點是我們如何將x2((n-m))表示出來,既要沿著y軸反轉,還要周期拖延,並且用矩形序列將0-N-1數去讀取出來就ok了。

靈活運用了mod函數的功能,就可以達到目的。

這裡順便說下mod與rem的區別,對於整數和0,mod與rem是完全一樣的,但對於負數就有區別了,區別在於它們的定義:


rem(X,Y) if Y~= 0, returns X - n.*Y where n= fix(X./Y)

mod(X,Y) if Y~= 0, returns X - n.*Y where n= floor(X./Y)


通過例子就可以明白點:

mod(4,3)=1         rem(4,3)=1

mod(4,-3)=2       rem(4,-3)=1

mod(-4,3)=-1       rem(-4,3)=-1

mod(-4,-3)=-2       rem(-4,-3)=-1


為了將x軸0-4對應值為x=[1 2 3 4 5]反轉成-4-0的對應值[5 4 3 2 1],周期拓延為0-4的y=[1 5 4 3 2]就可以應用mod函數

因為矩陣的下表為1不是0,所以

y=x(mod(-[0:4],5)+1);便達到了目的也就是y=x(1 5 4 3 2);

同樣的y=x(abs(mod([0:4],-5))+1)也是可以的,而對於rem就沒有那麼方便了。


這樣就是n=0情況

而n=1是y=x(mod([0:4]-1,5)+1);

同理n=2是y=x(mod([0:4]-2,5)+1);......


剩下的就各自相乘,然後相加就好了,或用rem,mod!



另外畫圖的時間,發現一些對座標軸的操作還是挺有用的,上網搜了搜,總結下有用的:

1.僅僅想讓座標軸顯示XXXX

set(gca,'Xtick',[0:1:N]);或讓特定的數字顯示  set(gca,'Xtick',[a b c d]);或set(gca,'xtivklabel',{'a','b','c'});甚至也可以是

set(gca,'xticklabel',sprintf('  ',get(gca,'xtick')));


2.讓座標軸有如同尺子一樣的小格子,set(gca,'xminortick','on')還可以決定該tick的方向向外還是向內set(gca,'tickdir','out/in');

該tick的長度set(gca,'ticklength',[A B])(這裡沒搞清楚的是B代表什嗎?A是長度)。


3.反轉座標軸以及座標軸的位置

set(gca,'xdir',reverse)

將x軸放在上面且y軸左邊之類等等的

set(gca,'xaxisLocation','top') set(gca,'yaxisLocation','right')



4一些座標軸需要協商數學公式以及上下座標之類的。

a的下標:a_{} a的上標:a^{}

latex挺好的一個總結,這裡


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.