如何用matlab實現兩個函式的卷積運算

時間 2021-10-27 12:00:05

1樓:庹甜恬

卷積運算可以說是一種有別於其他運算的新型運算,在訊號處理工作中,它是一種常用的工具。隨著訊號與系統理論研究的深入以及計算機技術的發展,卷積運算被廣泛地運用到諸多新處理領域中,如:現代**勘測,超聲診斷,光學診斷,光學成像,系統辨識及其他。

訊號的卷積是針對時域訊號處理的一種分析方法,它一般用於求取訊號通過某系統後的響應。在訊號與系統中,我們通常求取某系統的單位衝激響應,所求得的h(k)可作為系統的時域表徵。任意系統的系統響應可用卷積的方法求得:

y(k)=x(k)*h(k)

本片我們就來說說如何利用matlab來實現兩個有限長序列的卷積。

開啟分步閱讀模式

工具材料:

配置不錯的電腦

正常工作的matlab軟體

原理方法

01基本數學原理

我們假設有兩個長度有限的任意序列a(n)和b(n),其中a(n)和b(n)的具體數學表示式可以看下圖一。那麼這兩個有限長序列的卷積就應該為c(n)=a(n)*b(n),其具體表示式請參看一下圖二。

02相關函式指令

matlab中的conv和deconv指令不僅可以用於多項式的乘除運算,還可以用於兩個有限長序列的卷積和解積運算。

matlab提供的函式conv,語法格式:w=conv(u,v),其中u和v分別是有限長度序列向量,w是u和v的卷積結果序列向量。如果向量u和v的長度分別為n和m,則向量w的長度為n+m-1.

如果向量u和v是兩個多項式的係數,則w就是這兩個多項式乘積的係數。下面我們看一下deconv指令。功能:

求向量反褶積和進行多項式除法運算。語法格式:[q,r]=deconv(v,u) ,引數q和r分別返回多項式v除以多項式u的商多項式和餘多項式。

具體例項請看下一步。

03conv和deconv指令例項

具體例項請看下圖,這裡我們求多項式(x2+2x+1)與多項式(2x2+x+3)的積,再求積與(x2+2x+1)的商。需要注意的是向量c代表多項式(2x4+5x3+7x2+7x+3)。

兩個有限長序列的卷積例項

01具體序列的數學形式

在這一步我們將具體的有限長時間序列按數學方式顯示

02解法一:迴圈求合法求卷積

在本例中我們將按照

原理方法第一步中圖二的方式進行卷積計算,即

迴圈求合法求卷積。具體的**及結果請看下圖。圖一是是生成有限長度時間序列,圖二是根據原理方法第一步中圖二的方式即迴圈求合法求卷積的具體**

03解法二:0起點序列法

下面就說一下第二種方法,即「0起點序列法」,所採用的指令就是我們在原理方法中介紹的conv函式指令。

04解法三:非平凡區間序列法

下面就說一下第二種方法,即「0起點序列法」,所採用的指令就是我們在原理方法中介紹的conv函式指令。

05繪圖比較

這一步我們將解法二和解法三的計算結果繪製在一張**中進行比較,其中第一幅是「0起點法」的計算結果圖,第二幅是「非平凡區間法」的計算結果圖。其中畫圖**為:

subplot(2,1,1),stem(kc,c),text(20,6,'0 起點法') %畫解法二的結果

cc=[zeros(1,kc(1)),c]; %補零是為了兩子圖一致

subplot(2,1,2),stem(kc,cc),text(18,6,'非平凡區間法') %畫解法三的結果

xlabel('n')

06小結

有以上可以得出如下結論:

1、「解法三」最簡潔、通用;

2、「解法二」使用於序列起點時刻n1或(和)m1小於0的情況,比較困難;

3、「解法一」最繁瑣,效率低下

2樓:

你好。只要使用conv函式就可以了。

例子:u=ones(1,100);

v=2*u;

w = conv(u,v);

plot(w);

如何用matlab求兩個函式的卷積

3樓:雙槍老椰子

function convolution();

t=-4:0.001:4

e=rectpuls(t-0.25,1.5);

plot(t,e),pause

h=tripuls(t-1,2,1);

plot(t,h),pause

s=-8:0.001:8

f=conv(e,h);

plot(s,f)

卷積後訊號就變長了,如果不想改變訊號,改為:f=conv(e,h,'same');

4樓:爾璐冷英彥

比如兩個訊號f1=sin(t)/t和f2=sin(t),我想得到兩個函式的卷積式不是不可能不是矩陣

matlab中所有資料都是矩陣表示不信你試試a=1size(a).

5樓:荀曾顏念雁

這段卷積使用的沒有問題啊,conv2不是在這段的,你有沒粘完的吧!!!

6樓:戴悅章佳吉敏

不可能不是矩陣

matlab中所有資料都是矩陣表示

不信你試試

a=1size(a)

7樓:有空飄過的

可以用傅立葉變換

先定義g, h

然後結果就是

ifourier(fourier(g)*fourier(h))

excel如何用if函式實現兩個條件中的為真時,就進行計算

裘娥戶宵 你的邏輯是 如果 碩導 輸出 200 如果 博導 輸出 350 否則輸出 0 完全正確。另外,豆號和括號應改為英文半形 if i4 碩導 200,if i4 博導 350,0 有問題再聯絡 你的a1單元格內輸入 星期六 星期日 時必須與公式中的一樣,不能有任何空格或者其他字元,如果顯示不正...

如何證明兩個函式互為反函式,如何判定兩個函式是否互為反函式

例如 y 2 x 和y 1 4x 2這兩個函式y 2 x 可得 x 1 2y 兩邊同時平方就得x 1 4y 2 將x用y替換專 y用x替換 就得y 1 4x 2 原函式的 屬x取值範圍是反函式的y的取值範圍 這樣的話就能證明兩個函式互為反函式了 反函式的性質有 函式f x 與它的反函式f 1 x 圖...

如何用EXCEL函式將兩個單元格內容合併成到單元格里面

某某 excel之用函式合併單元格內容 合併單元格內容的函式是concatenate也可以用 和號 運算子。一 concatenate函式的定義 將幾個文字字串合併為一個文字字串。語法concatenate text1,text2,text1,text2,為 1 到 30 個將要合併成單個文字項的文...