matlab中udt函數,《MATLAB信號處理超級學習手冊》——2.5 離散時間信號中的運算...

本節書摘來自異步社區《MATLAB信號處理超級學習手冊》一書中的第2章,第2.5節,作者:MATLAB技術聯盟 , 史潔玉著,更多章節內容可以訪問云棲社區“異步社區”公眾號查看

2.5 離散時間信號中的運算

MATLAB信號處理超級學習手冊

2.5.1 離散時間系統響應

離散時間LTI系統可用線性常系數差分方程來描述,即:

eaa1f93ad123b80a9e4665ae908ed377.png

其中,a i(i=0,1,…,N)和b j(j=0,1,…,M)為實常數

MATLAB中函數filter可對式(2-24)的差分方程在指定時間范圍內的輸入序列所產生的響應進行求解。函數filter的語句格式為

y=filter(b,a,x)

其中,x為輸入的離散序列;y為輸出的離散序列,y的長度與x的長度一樣;b與a分別為差分方程右端與左端的系數向量。

1553ea348a5f19bb0c3cd4dc2cee0a62.png

運行程序如下:

a=[1 -0.25 0.5];

b=[1 1];

t=0:20;

x=(1/2).^t;

y=filter(b,a,x)

subplot(2,1,1)

stem(t,x)

title('輸入序列')

grid on

xlabel('n'); ylabel('h(n)');

subplot(2,1,2)

stem(t,y)

xlabel('n'); ylabel('h(n)');

title('響應序列')

grid on

運行結果如圖2-27所示。

01c66ab477e48c79cce9e7654262b00a.png

2.5.2 離散時間系統的沖激響應和階躍響應

在MATLAB中,求解離散時間系統單位沖激響應,可應用信號處理工具箱提供的函數impz,其調用形式為:

h=impz(b, a, k)

式中,a,b分別是差分方程左、右端的系數向量,k表示輸出序列的取值范圍(可省略),h就是系統單位沖激響應(如果沒有輸出參數,直接調用impz(b, a, k),則MATLAB將會在當前繪圖窗口中自動畫出系統單位沖激響應的圖形)。

對于MATLAB 6.x及以上版本,在信號處理工具箱中還提供了求解離散時間系統單位階躍響應的函數stepz,其調用形式為:

h=stepz(b,a,k)

式中參數與impz函數相同,如果沒有輸出參數,直接調用stepz(b,a,k),則MATLAB將會在當前繪圖窗口中自動畫出系統單位階躍響應的圖形。

【例2-28】用impz函數求下列離散時間系統的單位沖激響應,并與理論值進行比較:

y(k)+3y(k-1)+2y(k-2)=f(k)。

運行程序如下:

k=0:10;

a=[1 3 2];

b=[1];

h=impz(b,a,k);

subplot(2,1,1);stem(k,h);

xlabel('n'); ylabel('h(n)');

title('單位沖激響應的近似值');

grid on;

hk=-(-1).^k+2*(-2).^k;

subplot(2,1,2);stem(k,h);

xlabel('n'); ylabel('h(n)');

title('單位沖激響應的理論值');

grid on;

運行結果如圖2-28所示。

03e7ed51780924a96477b7e3f6fb3e49.png

2.5.3 離散時間信號的卷積和運算

卷積是用來計算系統零狀態響應的有力工具。例如:對于連續時間系統,有y(t)=x(t)h(t),其中h(t)為系統傳遞函數(即沖激響應);對于離散時間系統,有y(n)=x(n)h(n),其中h(n)為系統傳遞函數(即單位沖激響應)。

由于系統的零狀態響應是激勵與系統的單位取樣響應的卷積,因此卷積運算在離散時間信號處理領域被廣泛應用。離散時間信號的卷積定義為:

f3dcf1155dbd7a64c766fc51d96ccc9d.png

可見,離散時間信號的卷積運算是求和運算,因而常稱為“卷積和”。

MATLAB信號處理工具箱提供了一個計算兩個離散序列卷積和的函數,其調用形式為:

c=conv(a,b)

式中,a、b分別為待卷積的兩序列的向量表示,c是卷積結果。向量c的長度為向量a、b的長度之和減1,即length(c)=length(a)+length(b)1。事實上,研究conv.m函數的源代碼可知,conv函數其實就是利用前面介紹過的函數來實現的。

【例2-29】已知序列x[n]={1,2,3,4;n=0,1,2,3},y[n]={1,1,1,1;n=0,1,2,3,4};利用MATLAB計算x[n]*y[n]并畫出卷積結果。

運行程序如下:

x=[1,2,3,4];

y=[1,1,1,1];

z=conv(x,y)

subplot(3,1,1);

stem(0:length(x)-1,x);

ylabel('x[n]'); xlabel('n');

grid on

subplot(3,1,2);

stem(0:length(y)-1,y);

ylabel('y[n]'); xlabel('n');

grid on

subplot(3,1,3);

stem(0:length(z)-1,z);

ylabel('z[n]'); xlabel('n');

grid on

運行結果如下:

z =

1 3 6 10 9 7 4

運行結果如圖2-29所示。

b01858489356fd657736c42d24406826.png

【例2-30】已知某系統的單位取樣響應為hleft( n right) = 0.8^n left[ {uleft( n right) - uleft( {n - 8} right)} right] ,試用MATLAB求當激勵信號為x(n) = u(n) - u(n - 4) 時,系統的零狀態響應。

運行程序如下:

clear

nx=-1:5;

nh=-2:10;

x=uDT(nx)-uDT(nx-4);

h=0.8.^nh.*(uDT(nh)-uDT(nh-8));

y=conv(x,h);

ny1=nx(1)+nh(1);

ny=ny1+(0:(length(nx)+length(nh)-2));

subplot(311)

stem(nx,x,'fill'),grid on

xlabel('n'),ylabel('x(n)');

title('x(n)')

axis([-4 16 0 3])

subplot(312)

stem(nh,h','fill'),grid on

xlabel('n');ylabel('h(n)');

title('h(n)')

axis([-4 16 0 3])

subplot(313)

stem(ny,y,'fill'),grid on

xlabel('n');ylabel('y(n)');

title('y(n)=x(n)*h(n)')

axis([-4 16 0 3])

運行結果如圖2-30所示。

2c094416f121573c4cc7090c88e85b19.png

程序中產生單位階躍子程序如下:

function y=uDT(n)

y=n>=0;

%當參數為非負時輸出1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259535.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259535.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259535.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS 將16進制顏色轉換成UIColor

很多地方我們都使用16進制顏色,但iPhone使用的是UIColor對象,不直接支持16進制顏色,為此,需要我們手動將16進制顏色轉換為UIColor - (UIColor *) hexStringToColor: (NSString *) stringToConvert {NSString *cString [[stringTo…

OBJ 文件格式

OBJ文件是一種標準的3D模型文件格式,很適合用于3D軟件模型之間的互導。比如在3dsMax或LightWave中建了一個模型,想把它調到Maya里面渲染或動畫,導出OBJ文件就是一種很好的選擇。目前幾乎所有知名的3D軟件都支持OBJ文件的讀寫,不過…

構建Docker鏡像(三)

作者:李曉輝聯系方式:Xiaohui_lifoxmail.comQQ:939958092一、建立Dockerfile1、準備文件新建一個目錄和一個 Dockerfilemkdir /steventouch /steven/Dockerfile2、更新Dockerfile這個步驟是在設計鏡像,如果你需要在鏡像內包含什么軟件,將來開放哪些端口&…

centos 配置php開發環境變量配置,CentOS中配置PHP和Nginx環境變量

搜索熱詞一、摘要在Linux CentOS系統上 安裝完PHP和Nginx后,一般需要執行查看版本命令’PHP -v’和’Nginx -v’,確認是否安裝成功,如果在沒有添加到環境變量之前,執行“PHP -v”命令查看當前PHP版本信息時,則會提示命令不存在的錯誤&#xf…

你必須很努力,才能看上去毫不費力

世上沒有一件工作不辛苦,沒有一處人事不復雜。 從今天起,每天微笑吧, 世上除了生死,都是小事。 不管遇到了什么煩心事,都不要自己為難自己; 無論今天發生多么糟糕的事,都不應該感到悲傷。 今天是…

HDU 4631 Sad Love Story 平面內最近點對

http://acm.hdu.edu.cn/showproblem.php?pid4631 題意: 在平面內依次加點,求每次加點后最近點對距離平方的和 因為是找平面最近點對...所以加點以后這個最短距離一定是遞減的...所以最后會形成這樣一個函數圖像 所以我們只要從后往前依次刪點即可... 15秒驚險水過...不過我最小…

c++三/五法則

如果這個類需要一個析構函數,我們幾乎可以肯定它也需要一個拷貝構造函數和一個拷貝賦值運算符。 如果一個類需要拷貝構造函數,幾乎可以肯定它也需要一個拷貝賦值運算符,反之亦然。 然而,無論是需要拷貝構造函數還是需要拷貝賦值運…

itoa的用法

功能&#xff1a;將任意類型的整數轉換為字符串。在<stdlib.h>中與之有相反功能的函數是atoi。 用法&#xff1a;char*itoa(int value,char*string,int radix); int value 被轉換的整數&#xff0c;char *string 轉換后儲存的字符數組&#xff0c;int radix 轉換進制數…

Tomcat與Gzip與緩存

國內私募機構九鼎控股打造APP&#xff0c;來就送 20元現金領取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html內部邀請碼&#xff1a;C8E245J &#xff08;不寫邀請碼&#xff0c;沒有現金送&#xff09;國內私募機構九鼎控股打造&#xff0c;九鼎投資是在全國股份…

java豎向菜單,垂直滑動菜單

www.lanrentuku.comtd {font-size: 12px;}width"200" />height9 src"images/bit05.gif" width8alignabsMiddle> href"javascript:void(null)">文管產品 src"images/bit06.gif" width8 alignabsMiddle> href"http://w…

作為IT從業者,你是如何做好個人職業規劃?

前言 寫這篇文章的原因是因為你前端時間看到朋友在公眾號&#xff08;Marno&#xff09;發的一篇文章《27歲程序員職業生涯的“中年危機”》有感而發&#xff0c;談談自己對IT從業人員的一些職業規劃上的想法。本篇文章是我在坐地鐵的時候在手機上碼出來的&#xff0c;寫的不好…

將一句話的單詞進行倒置,標點符號不倒換。比如一句話:“i love you.”倒換后變為you. love i

#include <string.h> #include <stdio.h> #include <stdlib.h>//將一句話的單詞進行倒置&#xff0c;標點符號不倒換。比如一句話:“i love you.”倒換后變為"you. love i" void reverse(char *str) {int i0,jstrlen(str)-1;int begin,end;char te…

JS一些實用的方法

1、首次為變量賦值時務必使用var關鍵字變量沒有聲明而直接賦值得話&#xff0c;默認會作為一個新的全局變量&#xff0c;要盡量避免使用全局變量。2、使用取代和!操作符會在需要的情況下自動轉換數據類型。但和!不會&#xff0c;它們會同時比較值和數據類型&#xff0c;這也使得…

[轉]第一章 Windows Shell是什么 【來源:http://blog.csdn.net/wangqiulin123456/article/details/7987862】...

一個操作系統外殼的不錯的定義是它是一個系統提供的用戶界面&#xff0c;它允許用戶執行公共的任務&#xff0c;如訪問文件系統&#xff0c;導出執行程序&#xff0c;改變系統設置等。MS-DOS有一個Command.COM扮演著這個角色。然而Windows已經有了圖形界面環境&#xff0c;他的…

20155222盧梓杰 《Java程序設計》第1周學習總結

20155222 《Java程序設計》第1周學習總結 教材學習內容總結 JDK是一個工具程序&#xff0c;包括了JAVA程序語言&#xff0c;工具程序與JRE&#xff0c;JRE包括了部署技術&#xff0c;JAVA SE API 與 JVM。 教材學習中的問題和解決過程 第一章&#xff1a;JDK的變量和選項如何設…

字符串常量與字符串變量

參考&#xff1a;http://blog.csdn.net/chenwenshi/article/details/6702576 定義&#xff1a;在一個雙引號“ ”內的字符序列或者轉義字符序列稱為字符串常量 例如&#xff1a;“HI HI&#xff01;” “a” “\n\t” 這些字符串常量是不能改變的&#xff0c;如果試圖改變指針…

java資源分配算法,java - 資源分配與動態規劃算法 - 堆棧內存溢出

給定一組函數f1 ... fn(離散時間)和時間限制(int)&#xff0c;應找到最大輸出&#xff0c;即在不同函數之間分配時間以最大化所用函數輸出的總和。對于任何函數&#xff0c;任何時候的值表示如果用于所述時間的函數的總輸出。 即F(2)函數的總輸出&#xff0c;如果使用2秒。 不是…

Factorial Trailing Zeroes 172

題目描述&#xff1a; 給出一個integer n&#xff0c;計算n&#xff01;結尾0的個數 題目分析&#xff1a; 考慮暴力&#xff0c;計算n&#xff01;統計最后面0的個數。先不說數字溢出&#xff0c;其次n是一個integer &#xff0c;O(n)復雜度超時 我們接著考慮&#xff0c;產生…

DateTime.Now.ToString() 用法

//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString("d"); //2008年4月24日 16:30:15 System.DateTime.Now.ToString("F"); //2008年4月24日 16:30 System.DateTime.No…

GAP平臺

2019獨角獸企業重金招聘Python工程師標準>>> 轉載于:https://my.oschina.net/u/2441327/blog/846754