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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Matlab 进行离散时间信号序列的生成

發布時間:2025/3/19 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab 进行离散时间信号序列的生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1. 認識離散時間序列

2. 生成一些常用信號

(1) 正弦信號

(2) 指數信號

(3) 單位沖擊信號

(4) 階躍信號

(5) 隨機信號

3. 生成離散時間信號

(1) 正弦信號

(2) 指數信號

(3) 通過輸入參數來實現信號

(4)數字信號處理中的一道題


1. 認識離散時間序列

一般來說,我們在現實中遇到的都是一些模擬信號,但如果使用計算機處理信號的話,在時間上不連續的數字信號有更好的精度以更低的噪聲敏感度,所以要進行數字信號處理,即對離散時間信號的處理。

認識數字信號處理

離散時間信號表示的就是在時域不連續的信號,而它的不連續性可能是周期的,也有可能不是周期的,看具體情況進行判斷

2. 生成一些常用信號

(1) 正弦信號

正弦信號的生成比較簡單,確定了自變量的范圍就可以直接使用相應的表達式進行生成:

xn=cos(0.6*pi*n + 0.3*pi); figure plot(n,xn) axis([-40,60,-1.5,1.5]) title('正弦信號')

通過以上代碼可以得到下面的圖像:

如果需要調整信號的頻率直接在信號表達式內部進行修改即可:

xn=cos(0.1*pi*n + 0.3*pi); figure plot(n,xn) axis([-40,60,-1.5,1.5]) title('正弦信號')

得到如下結果:

(2) 指數信號

確定了指數函數的指數以及系數,就可以進行繪制:

A=2; a=0.2; t=-10:0.01:10; ft=A*exp(a*t); plot(t,ft); grid on; %在圖上畫方格

得到的圖像如下(使用 grid on 可以繪制表格):

(3) 單位沖擊信號

單位沖擊信號,即 ,當? t? 為零時該信號值為1,t 為其他值時該信號值為 0:

n = -5:5; x = n == 0;% 當n為0時,x的值為1 stem(n, x, 'filled'); axis([-5 5 0 1.1*max(x)]);%規定坐標軸的范圍 xlabel('時間(n)');ylabel('幅度(n)');

得到的信號如下:

(4) 階躍信號

當 t < 0 時信號全為0,當 t > 0 時信號全為1

n = -2:8; x = n >= 0; % 當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,'.');

在確定的范圍內得到的連續時間和離散時間信號如下圖:

3. 生成離散時間信號

即在時域內離散不連續的信號

(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) 指數信號

實現上圖的代碼如下:

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('實指數序列(a<1)'); subplot(2,1,2); stem(na2,x2,'filled'); title('實指數序列(a>1)');

(3) 通過輸入參數來實現信號

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')

通過上述代碼可以實現輸入系數、序列長度、頻率以及相位進行信號序列的輸出

(4)數字信號處理中的一道題

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')

效果如下:

總結

以上是生活随笔為你收集整理的Matlab 进行离散时间信号序列的生成的全部內容,希望文章能夠幫你解決所遇到的問題。

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