主要内容

cconv

模n循环卷积

描述

例子

c= cconv (一个,b)可变向量一个b

例子

c= cconv (一个,b,n)圆可变向量一个bn由此产生的向量的长度。您还可以使用cconv计算两个序列的循环互相关。

例子

全部折叠

生成两个不同长度的信号。比较他们的循环卷积和线性卷积。使用默认值n

一个= [1 2 1 1];b = (1 1 2 1 2 2 1 1);c = cconv (a, b);%循环卷积cref = conv (a, b);%的线性卷积dif =规范(c-cref)
dif = 9.7422 e-16

由此产生的规范几乎是零,这说明,这两个旋转机器精度产生相同的结果。

生成两个向量和计算其modulo-4循环卷积。

一个= (2 1 2 1);b = (1 2 3 4);c = cconv (a, b, 4)
c =1×414个16 14

生成两个复杂的序列。使用cconv计算循环互相关。翻转和共轭第二操作数遵守互关联的定义。指定输出向量的长度7。

一个=[1 2 2 1]+ 1我;b = [1 3 4 1] 2 * 1;c = cconv(连词(fliplr (b)), 7);

比较结果的互相关计算使用xcorr

cref = xcorr (a, b);dif =规范(c-cref)
dif = 3.3565 e15汽油

生成两个信号:five-sample三角波形和一阶滤波器响应 H ( z ) = 1 - - - - - - z - - - - - - 1

x1 = conv ((1 1 1), (1 1 1))
x1 =1×51 2 3 2 1
x2 = [1]
x2 =1×21

计算循环卷积与默认输出长度。结果是相当于两个信号的线性卷积。

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×61 1 1 1 1 1

模2循环卷积等价于分裂的线性卷积成双元素数组和数组求和。

ccn2 = cconv (x1, x2, 2)
ccn2 =1×21
问=元素个数(lcnv);mod2 =总和(重塑(lcnv 2问/ 2)”)
mod2 =1×21

计算modulo-3循环卷积和比较线性卷积的别名。

ccn3 = cconv (x1, x2, 3)
ccn3 =1×30 0 0
mod3 =总和(重塑(lcnv 3问/ 3)”)
mod3 =1×30 0 0

如果输出长度小于卷积,不把它完全垫0之前添加的卷积。

c = 5;z = 0 (c * (nl / c),即:1);z(1:问)= lcnv;国家气候变化委员会= cconv (x1, x2, c)
国家气候变化委员会=1×50.0000 -1.0000 -1.0000 1.0000 1.0000
modc =总和(重塑(z c元素个数(z) / c)”)
modc =1×50 1 1 1 1

如果输出长度等于或大于卷积长度,垫卷积,不添加。

d = 13;z = 0 (d * (nl / d),即:1);z(1:问)= 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
modd = z '
modd =1×131 1 1 1 1 1 0 0 0 0 0 0 0

下面的示例需要并行计算工具箱™软件。指GPU计算的需求(并行计算工具箱)看看支持gpu。金宝app

创建两个信号组成的1 kHz正弦波在加性高斯白噪声。采样率是10 kHz

Fs = 1 e4;t = 0:1 / Fs: 10 - (1 / Fs);x = cos (2 * pi * 1 e3 * t) + randn(大小(t));y =罪(2 * pi * 1 e3 * t) + randn(大小(t));

xy在GPU上使用gpuArray。获得使用GPU的循环卷积。

x = gpuArray (x);y = gpuArray (y);中国保监会= cconv (x, y,长度(x) + (y) 1);

比较结果的x和y的线性卷积。

林肯= conv (x, y);规范(linC-cirC, 2)
ans = 1.4047 e-08

返回循环卷积,中国保监会,使用MATLAB®工作空间收集

中国保监会=收集(保监会);

输入参数

全部折叠

输入数组,或指定为向量gpuArray对象。看到运行在GPU MATLAB函数(并行计算工具箱)有关gpuArray对象。使用cconvgpuArray对象需要并行计算工具箱™软件。指GPU计算的需求(并行计算工具箱)看看支持gpu。金宝app

例子:罪(2 *π* (0:9)/ 10)+ randn (10 [1]) / 10指定一个嘈杂的正弦信号作为一个行向量。

例子:gpuArray(罪(2 *π* (0:9)/ 10)+ randn (10 [1]) / 10)指定一个嘈杂的正弦信号作为gpuArray对象。

数据类型:|
复数的支持:金宝app是的

卷积长度指定为一个正整数。如果你不指定n,那么卷积长度长度(a) + 1 (b)

输出参数

全部折叠

循环卷积的输入向量,作为一个向量或返回gpuArray

提示

长时间序列,循环卷积可以比线性卷积。

引用

[1]Orfanidis,索福克勒斯J。介绍了信号处理。恩格尔伍德悬崖,新泽西:新世纪,1996年,页524 - 529。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2007a