Matlab 进行离散时间信号序列的生成
目錄
1. 認(rèn)識離散時間序列
2. 生成一些常用信號
(1) 正弦信號
(2) 指數(shù)信號
(3) 單位沖擊信號
(4) 階躍信號
(5) 隨機信號
3. 生成離散時間信號
(1) 正弦信號
(2) 指數(shù)信號
(3) 通過輸入?yún)?shù)來實現(xiàn)信號
(4)數(shù)字信號處理中的一道題
1. 認(rèn)識離散時間序列
一般來說,我們在現(xiàn)實中遇到的都是一些模擬信號,但如果使用計算機處理信號的話,在時間上不連續(xù)的數(shù)字信號有更好的精度以更低的噪聲敏感度,所以要進(jìn)行數(shù)字信號處理,即對離散時間信號的處理。
認(rèn)識數(shù)字信號處理
離散時間信號表示的就是在時域不連續(xù)的信號,而它的不連續(xù)性可能是周期的,也有可能不是周期的,看具體情況進(jìn)行判斷
2. 生成一些常用信號
(1) 正弦信號
正弦信號的生成比較簡單,確定了自變量的范圍就可以直接使用相應(yīng)的表達(dá)式進(jìn)行生成:
xn=cos(0.6*pi*n + 0.3*pi); figure plot(n,xn) axis([-40,60,-1.5,1.5]) title('正弦信號')通過以上代碼可以得到下面的圖像:
如果需要調(diào)整信號的頻率直接在信號表達(dá)式內(nèi)部進(jìn)行修改即可:
xn=cos(0.1*pi*n + 0.3*pi); figure plot(n,xn) axis([-40,60,-1.5,1.5]) title('正弦信號')得到如下結(jié)果:
(2) 指數(shù)信號
確定了指數(shù)函數(shù)的指數(shù)以及系數(shù),就可以進(jìn)行繪制:
A=2; a=0.2; t=-10:0.01:10; ft=A*exp(a*t); plot(t,ft); grid on; %在圖上畫方格得到的圖像如下(使用 grid on 可以繪制表格):
(3) 單位沖擊信號
單位沖擊信號,即 ,當(dāng)? t? 為零時該信號值為1,t 為其他值時該信號值為 0:
n = -5:5; x = n == 0;% 當(dāng)n為0時,x的值為1 stem(n, x, 'filled'); axis([-5 5 0 1.1*max(x)]);%規(guī)定坐標(biāo)軸的范圍 xlabel('時間(n)');ylabel('幅度(n)');得到的信號如下:
(4) 階躍信號
當(dāng) t < 0 時信號全為0,當(dāng) t > 0 時信號全為1
n = -2:8; x = n >= 0; % 當(dāng)n大于等與零時,其值為1 stem(n, x, 'filled'); axis([-4, 4, 0, 1.1*max(x)]); title('階躍信號'); xlabel('時間(n)');ylabel('幅度(n)');得到如下所示的圖像:
(5) 隨機信號
代碼如下:
tn=0:0.2:15; N=length(tn); x=rand(1,N); subplot(2,1,1); plot(tn,x);tn=0:0.5:15; N=length(tn); y=rand(1,N); subplot(2,1,2); stem(tn,y,'.');在確定的范圍內(nèi)得到的連續(xù)時間和離散時間信號如下圖:
3. 生成離散時間信號
即在時域內(nèi)離散不連續(xù)的信號
(1) 正弦信號
n = -40:60; xn=cos(0.1*pi*n + 0.3*pi); stem(n,xn,'.'); axis([-40,60,-1.5,1.5]) title('正弦信號')得到圖像如下:
(2) 指數(shù)信號
實現(xiàn)上圖的代碼如下:
n1=-10; n2=10; a1=0.5; a2=2; na1=n1:0; x1 = a1.^na1; na2 = 0:n2; x2 = a2.^na2; subplot(2,1,1); stem(na1,x1,'filled'); title('實指數(shù)序列(a<1)'); subplot(2,1,2); stem(na2,x2,'filled'); title('實指數(shù)序列(a>1)');(3) 通過輸入?yún)?shù)來實現(xiàn)信號
L = input('Please input L:\n'); A = input('Please input A:\n'); w = input('Please input w:\n'); ph = input('Please input ph:\n'); n = 0:L;xn = A*sin(w*n + ph); stem(n,xn,'.') axis([0,L,-1-A,A+1]) title('M2.4 2.40f')通過上述代碼可以實現(xiàn)輸入系數(shù)、序列長度、頻率以及相位進(jìn)行信號序列的輸出
(4)數(shù)字信號處理中的一道題
n=-40:40; xnb=cos(0.6*pi*n + 0.3*pi); figure subplot(4,1,1) stem(n,xnb,'.'); axis([-40,40,-1.5,1.5]) title('2.39b')xnc = real(exp(1j*pi*n/8)) + imag(exp(1j*pi*n/5)); subplot(4,1,2) stem(n,xnc,'.') axis([-40,40,-1,2]) title('2.39c')xnd = 6*sin(0.15*pi*n) - cos(0.12*pi*n + 0.1*pi); subplot(4,1,3) stem(n,xnd,'.'); axis([-40,40,-10,10]) title('2.39d')xne = sin(0.1*pi*n + 0.75*pi) - 3*cos(0.8*pi*n + 0.2*pi) + cos(1.3*pi*n); subplot(4,1,4) stem(n,xne,'.'); axis([-40,40,-5,5]) title('2.39e')效果如下:
總結(jié)
以上是生活随笔為你收集整理的Matlab 进行离散时间信号序列的生成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G 非独立组网链路预算公式(笔记)
- 下一篇: M-point moving-avera