日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc

發(fā)布時(shí)間:2024/7/19 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)字信號(hào)處理

課程設(shè)計(jì)

題目:通過(guò)重疊相加法實(shí)現(xiàn)卷積

院系:自動(dòng)化與信息工程學(xué)院

專業(yè):通信工程

班級(jí): 通信091

學(xué)號(hào): 3090432028

姓名: 雷帛川

指導(dǎo)教師: 李建勛

職稱: 副教授

2012年7月1日2012年7月14日

用結(jié)構(gòu)化設(shè)計(jì)方法。一個(gè)程序劃分成若干模塊,每一個(gè)模塊的函數(shù)功能要?jiǎng)澐趾?#xff0c;總體設(shè)計(jì)應(yīng)畫出流程圖;

輸入輸出界面要友好;

源程序書寫要規(guī)范,加必要的注釋;

要提供通過(guò)Matlab函數(shù)進(jìn)行檢驗(yàn)的結(jié)果;

程序一定要要能運(yùn)行起來(lái)。

原理

經(jīng)常遇到兩個(gè)序列的長(zhǎng)度相差很大的情況,解決這個(gè)問(wèn)題的方法就是將長(zhǎng)序列分段計(jì)算,運(yùn)用分段處理方法中的重疊相加法計(jì)算兩個(gè)序列的卷積運(yùn)算。

設(shè)一個(gè)給定序列是長(zhǎng)度為n1的A,另一個(gè)導(dǎo)入序列是長(zhǎng)度為n2的B,其中B序列是相對(duì)A序列比較長(zhǎng)的,所以可以把B分為和A一樣長(zhǎng)的若干段段,即B分后每一小段長(zhǎng)度為n1。根據(jù)公式:

可知將B序列的每一小段與A序列做現(xiàn)行卷積,然后將所有的n2/n1段的線性卷積結(jié)果相加起來(lái)就是整個(gè)B序列和A序列的線性卷積結(jié)果,而又在本設(shè)計(jì)中,B序列的一小段和A序列的線性卷積又可由循環(huán)卷積來(lái)實(shí)現(xiàn),只要讓循環(huán)卷積的點(diǎn)數(shù),循環(huán)卷積的結(jié)果就和線性卷積的結(jié)果等價(jià),在本實(shí)驗(yàn)中取,故A序列和B序列的線性卷積可認(rèn)為是由A序列和B的每一小段做點(diǎn)的循環(huán)卷積的最終累加和,

另外還有兩個(gè)個(gè)問(wèn)題需要考慮,首先是做循環(huán)卷積時(shí)要對(duì)A序列和B序列的那一小段補(bǔ)零做卷積后,最終做累加的時(shí)候要考慮重疊的片段,必須將重疊的兩段加起來(lái)。不重疊的片段直接賦值。其次是如果B序列長(zhǎng)度n2不是A序列長(zhǎng)度n1的整數(shù)倍時(shí),必須將B序列余下的那幾個(gè)數(shù)補(bǔ)零后和A序列做點(diǎn)循環(huán)卷積再加到最終的結(jié)果的相應(yīng)位置。

下列是計(jì)算循環(huán)卷積的過(guò)程:

在本次課設(shè)題中序列A和B序列的某一小段做循環(huán)卷積,由于已知A序列的長(zhǎng)度為n1,故可取B序列的每一小段都和A序列相等長(zhǎng)度,并且取循環(huán)卷積的點(diǎn)數(shù)為,這就保證每一組的循環(huán)卷積都等效于線性卷積。做循環(huán)卷積可運(yùn)用循環(huán)卷積矩陣做,其第一步是將A序列和B序列的某一小段補(bǔ)零到長(zhǎng)度為,然后把A序列通過(guò)變換生成的循環(huán)卷積矩陣,將補(bǔ)零后的B的某一小段轉(zhuǎn)置,然后用循環(huán)卷積矩陣乘以它就可以得到循環(huán)卷積的結(jié)果,在此也即線性卷積。

重疊相加法的圖示如下:

設(shè)計(jì)過(guò)程

1.循環(huán)卷積子函數(shù)流程圖

2.主函數(shù)流程圖

3.循環(huán)卷積子函數(shù)源程序:

function y=Convmy4(A,B,L) %創(chuàng)建循環(huán)卷積函數(shù)

if L

error('出錯(cuò)');

end

if L>length(A) %如果A序列長(zhǎng)度小于L則補(bǔ)零到L

A=[A,zeros(1,L-length(A))];

end

if L>length(B) %給B序列補(bǔ)零到L

B=[B,zeros(1,L-length(B))];

B=B'; %B轉(zhuǎn)置

end

E=A(1,1);

C=A(1,[2:L]); %寫循環(huán)矩陣的第一行

D=fliplr(C);

A=[E,D];

y(1)=A(1,1).*B(1,1);

for h=2:1:L

y(1)=y(1)+A(1,h).*B(h,1); % %計(jì)算循環(huán)卷積序列的第一個(gè)值

end

for k=2:1:L

t=A(1,L);

for i=L:-1:2

A(1,i)=A(1,i-1); %得到矩陣的第二到L行并計(jì)算循環(huán)卷積的

end %另外幾個(gè)值

A(1,1)=t;

y(k)=0;

for m=1:1:L

y(k)=y(k)+A(1,m).*B(m,1);

end

end

4.主

總結(jié)

以上是生活随笔為你收集整理的matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。