このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。
C转换
nを法する畳み込み畳み込み
说明
例
循环畳み込みと線形畳み込み
2つさつの信号生成ますそれらの循环畳み込みと线形畳み込み畳み込みを比较しますn
の既定値を使用。。
a = [1 2 -1 1];b = [1 1 2 1 2 2 1 1];c = cconv(a,b);% Circular convolutioncref = conv(a,b);% Linear convolutiondif = norm(c-cref)
DIF = 9.7422E-16
結果のノルムは実質的にゼロで、これら 2 つの畳み込みがマシンの精度に与える結果はほぼ同じであると言えます。
循环畳み込み
循环相互相关
2 つの複素数シーケンスを生成します。C转换
をしそれらの循环相关を比较しますます。の定义定义にに适合适合适合适合适合するするするするするするようににににににににに番目番目2
a = [1 2 2 1]+1i;b = [1 3 4 1] -2*1i;c = cconv(a,conj(fliplr(b)),7);
この结果を,xcorr
を使用计算し相互相关とし。。。
cref = xcorr(a,b);dif = norm(c-cref)
DIF = 3.3565E-15
さまざまな长での畳み込み畳み込み
5サンプルの応答応答 1 firフィルターフィルターののつの信号を生成。。。
x1 =转换(([1 1 1],[1 1 1])
x1 =1×51 2 3 2 1
x2 =[-1 1]
x2 =1×2-1 1
既定の出力長でそれらの循環畳み込みを計算します。結果は、2 つの信号の線形畳み込みと等価になります。
ccnv = cconv(x1,x2)
ccnv =1×6-1.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000
lcnv = conv(x1,x2)
lcnv =1×6-1 -1 -1 1 1 1 1
2をと循环は,畳み込み畳み込み畳み込みつのをもつ配列に分割してからから配列を加算加算するする。
ccn2 = cconv(x1,x2,2)
ccn2 =1×2-1 1
nl = numel(lcnv);mod2 = sum(reshape(lcnv,2,nl/2)')
mod2 =1×2-1 1
3をする畳み込みをしエイリアシングし线形畳み込みと比较し。
ccn3 =C转换((X1,,,,X2,3)
ccn3 =1×30 0 0
mod3 = sum(reshape(lcnv,3,nl/3)')
mod3 =1×30 0 0
出力长长小さく,长出力でない场合场合は,加算するする前にに畳み込みをゼロゼロでで
C = 5;z =零(c*ceil(nl/c),1);z(1:nl)= lcnv;ccnc = cconv(x1,x2,c)
ccnc =1×50.0000 -1.0000 -1.0000 1.0000 1.0000
modc =sum(reshape(z,c,numel(z)/c)')
modc =1×50 -1 -1 1 1
出力长长等しいか,それ大きい场合は畳み込み畳み込みをパディングし,,加算加算んんん
d = 13;z =零(d*ceil(nl/d),1);z(1:nl)= lcnv;ccnd = cconv(x1,x2,d)
ccnd =1×13-1.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000
modd = z'
modd =1×13-1 -1 -1 1 1 1 0 0 0 0 0 0 0 0 0 0
GPU を使用した循環畳み込み
平行计算工具箱™ソフトウェアソフトウェアが必要ですです。。どのどのどのどのどのどのどのががサポートリリース別の GPU サポート(并行计算工具箱)を参照しください。
1 khzのののののから构成されるれるれるれるれるつつの信号を作成作成ししますますます。。。。レートレートレートレートレートレートレートレートはははははははははははははは
FS = 1E4;t = 0:1/fs:10-(1/fs);x = cos(2*pi*1e3*t)+randn(size(t));y = sin(2*pi*1e3*t)+randn(size(t));
gpuarray
を使用してX
とy
をgpuにします。。。ををし循环畳み込みを取得ます。
x = gpuArray (x);y = gpuArray (y);中国保监会= cconv (x, y,,,,length(x)+length(y)-1);
结果x x yと线形畳み込みと比较し。。。
linc = conv(x,y);规范(linc-cir,2)
ANS = 1.4047E-08
收集
を使用て,循环畳み込み循环
をmatlab®ワークワークに返し。。。
circ =聚集(circ);
入力引数
一个
,,,,b
-入力配列
ベクトル|gpuarray
オブジェクト
入力配列。またはgpuarray
オブジェクトとして指定ます。gpuarray
オブジェクトの详细は,gpuでmatlab关数关数実行実行(并行计算工具箱)を参照しください。C转换
をgpuarray
平行计算工具箱™ソフトウェアソフトウェアソフトウェアが必要必要です。。どのどのどのどのリリース別の GPU サポート(并行计算工具箱)を参照しください。
例:罪(2*pi*(0:9)/10) + randn([1 10])/10
では,ベクトルノイズ含んだ正弦波指定します。
例:gpuarray((罪(2*pi*(0:9)/10) + randn([1 10])/10)
は,
オブジェクトとしてをだ正弦波指定します。gpuarray
データ型:单身的
|双倍的
复素数サポート:あり
n
-畳み込みの長さ
正の整数
畳み込みのさ正のとして指定します。n
を指定しない場合、畳み込みの長さは长度(a)+长度(b)-1
です。
出力引数
C
- 循环畳み込み
ベクトル|gpuarray
オブジェクト
入力ベクトル循环畳み込み。またはまたはgpuarray
として返され。
ヒント
长いシーケンス,畳み込みの方线形畳み込みもなる场合ががます。
参照
[1] Orfanidis,Sophocles J.信号处理简介。新泽西州Englewood Cliffs:Prentice-Hall,1996年,第524-529页。
拡张机能
C/C ++コード生成
MATLAB®编码器™を使用てC ++コードを生成し。。。
GPU 配列
并行计算工具箱™をしグラフィックス(GPU)上上実行ことにより,ををますますます。。。。
この関数は、GPU 配列を完全にサポートします。詳細については、gpuでmatlab关数关数実行実行(并行计算工具箱)を参照しください。
matlabコマンド
Matlabコマンドコマンドにするがクリックされまし。。
matlabコマンドコマンドに入力しててください。。。。ブラウザー
您还可以从以下列表中选择一个网站:
如何获得最佳网站性能
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
美洲
- América Latina((Español)
- 加拿大(英语)
- 美国(英语)