信號的基本運算
1.序列相加與相乘
信號相加的運算式為x(n)=x1(n)+x2(n),信號相乘,即兩個序列的乘積(或者點乘),運算式為x(n)=x1(n)·x2(n),即x=x1+x2 ; x=x1.*x2 這里就不放代碼了,大概步驟就是生成兩個序列,然后單獨畫圖,再把運算后的序列顯示出來,
2.序列累加與序列值乘積
序列累加就是求序列x(n)兩點n1和n2之間的所有序列值之和,序列累加可以利用sum函式實作,序列值的乘積是求x(n)兩點n1和n2之間所有序列值的乘積可以用prod函式實作,
- 注意序列值相乘和序列相乘的區別
3.序列翻轉與序列移位
序列翻轉的運算式為y(n) = x(-n),matlab 中,翻轉運算用函式fliplr實作,
y= fliplr(x) 序列值翻轉
ny= - fliplr(nx) 序列位置的翻轉(即坐標)
序列位移的運算式為y(n) = x (n-n0)
y = x 值不變
ny = nx+n0 位置變化
4.連續時間信號的尺度變換
連續時間信號的尺度變換,是指將信號的橫坐標進行擴展或壓縮,即將信號f(t)的自變數t更換為at,當a>1時,信號f(at)以原點為基準,沿時間軸壓縮到原來的1/a; 當a<1時,信號f(at)沿時間軸擴展至原來的1/a倍,
用下面的命令實作連續時間信號的尺度變換及其結果可視化,其中f是用符號運算式表示的連續時間信號,t是符號變數,subs命令則將連續時間信號中的時間變數t用a*t替換,
y= subs(f,a* t);
ezplot(y)
信號的奇偶分解原理:任何信號都可以分解為一個偶分量與一個奇分量之和的形式,因為任何信號總可以寫成
f(t)= 1/2[f(t)+ f(t)+ f(-t)- f(-t)]=1/2[ f(t)+ f(-t)]+ 1/2[f(t)- f(- t)],這就分別對應信號的偶分量與奇分量,
代碼如下:對函式f(t) = cos (t+1) +t 進行奇偶分解
f= cos(t+1)+t';
f1 = subs(f,t,-t);
g= 1/2* (f + f1);
h= 1/2* (f - f1);
subplot(311);ezplot(f,[-8,8]);title('原信號');
subplot(312);ezplot(g,[-8,8]);title('偶分量');
subp1ot(313);ezplot(h,[-8,8]);title('奇分量');
結果如下:

5.信號的積分和微分
信號的微分和積分:對于連續時間信號,其微分運算是用diff函式來完成的,其陳述句格式為:diff( function, 'variable', n),其中,function表示需要進行求導運算的信號,或者被賦值的符號運算式: variable 為求導運算的獨立變數;n為求導的階數,默認值為求一階導數,
連續信號的積分運算用int函式來完成,陳述句格式為int( function, 'variable',a, b)其中,function表示需要進行被積信號,或者被賦值的符號運算式: variable 為求導運算的獨立變數: a.b 為積分上.下限,a和b省略時為求不定積分,
6.卷積運算
卷積運算在信號處理中是十分重要的工具,MATLAB提供卷積計算的函式有CONV ,CONV2和CONVN,例如:
A= ones(1,3)
B=[1 8 8 5]
C= conv(A, B)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286499.html
標籤:其他
