matlab 卷积改变步长,转载“MATLAB卷积函数改进”
雖然在MATLAB中我們已經(jīng)有一個(gè)函數(shù)來(lái)計(jì)算兩個(gè)序列的卷積——conv函數(shù)。但其中有個(gè)問(wèn)題,conv函數(shù)假定了兩個(gè)已知序列都是從n=0開始。我們從下面的例子來(lái)看看。
>> x = [3,11,7,0,-1,4,2];
>> nx = [-3:3];
>> h = [2,3,0,-5,2,1];
>> nh = [-1:4];
>> conv(x,h)
ans =
6?31?47?6?-51?-5?41?18?-22?-3?8?2
可見,已知的序列x和序列h都是給出了基底的,并不是從n=0開始,所以所得的結(jié)果只能說(shuō)是兩者卷積后的值,并不能說(shuō)是兩個(gè)序列卷積后得到的序列。因?yàn)榻Y(jié)果并沒(méi)有表現(xiàn)出基底來(lái),也就是沒(méi)有時(shí)間信息。所以我們必須對(duì)其進(jìn)行改進(jìn)。改后的函數(shù)定義為conv_m,如下。
function [y,ny] = conv_m(x,nx,h,nh)
nyb = nx(1) + nh(1);
nye = nx(length(x)) + nh(length(h));
ny = [nyb:nye];
y = conv(x,h);
重新計(jì)算卷積:
>> [y,ny] = conv_m(x,nx,h,nh)
y =
6?31?47?6?-51?-5?41?18?-22?-3?8?2
ny =
-4?-3?-2?-1?0?1?2?3?4?5?6?7
可以看出,不僅準(zhǔn)確的得出了我們所謂的卷積后的值,而且也準(zhǔn)確的得出了基底。比較兩次的結(jié)果如下圖。
總結(jié)
以上是生活随笔為你收集整理的matlab 卷积改变步长,转载“MATLAB卷积函数改进”的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 拼图算法分析...
- 下一篇: matlab卷积神经网络的实现,matl