matlab验证线性卷积与圆周卷积的关系
来源:互联网 发布:131458淘宝信誉查询心 编辑:程序博客网 时间:2024/05/18 21:11
数字信号处理实验
一.线性卷积和圆周卷积的关系
1.线性卷积
设X1为N1点的有限长序列,X2为N2点的有限长序列(0 < n < N2)
则两序列的线性卷积为:
线性卷积y1(n)的长度为N2+N2-1
2.圆周卷积
设有限长序列x(n)和h(n)的长度分别为N1和N2,取N>=max(N1,N2),分别对x(n)和h(n)取N点的DFT,将结果取
N点的IDFT得到y(n)
3.圆周卷积与线性卷积之间的关系
当有限长序列x(n)和h(n)的长度分别为N1和N2,取N>=max(N1,N2),当N>=N1+N2-1,则线性卷积与圆周卷积相同。
二.使用Matlab验证其关系
1.子函数编写
- cirshiftd.m
`
function yc=circonv(x1,x2,N)%功能 : 计算圆周卷积%输入 : 需计算圆周卷积的序列x1,x2和圆周卷积的点数N%输出 : 圆周卷积结果%判断两个序列的长度是否小于Nif length(x1) > N error('N must not be less than length of x1');endif length(x2) > N error('N must not be less than length of x2');endx1 = [x1,zeros(1,N - length(x1))]; %填充序列x1使其长度为N1+N2-1x2 = [x2,zeros(1,N - length(x2))]; %填充序列x2使其长度为N1+N2-1n =0:1:N-1;x2 = x2(mod(-n,N)+1); %生成序列x2((-n))NH = zeros(N,N); %生成N * N 的零矩阵for n = 1:1:N H(n,:) = cirshiftd(x2,n-1,N); %该矩阵的k行为 x2(k-1-(n mod N))end yc = x1 * H'; %计算循环卷积`
- cirshiftd.m
`
function y = cirshiftd(x,m,N)%对于序列x直接实现圆周移位%x:输入序列长度小于N%m:移位量%N:圆长%y:移位后的序列if length(x) > N error('the length of x must be less than N');endx = [x,zeros(1,N-length(x))];n = 0:1:N-1;y = x(mod(n-m,N)+1);
`
- 主函数relation.m
‘
clear all;n = 0:1:12;m = 0:1:5;N1 = length(n);N2 = length(m);xn = 0.8.^n; %生成xnhn = ones(1,N2); %生成hnyln = conv(xn,hn); %计算线性卷积ycn = circonv(xn,hn,15); %计算圆周卷积nyl = 0:1:length(yln)-1;ny2 = 0:1:length(ycn)-1;%图形显示时分割窗口命令,把一个窗口分成m行,n列,并指定第i个敞口为当前窗口subplot(2,1,1);stem(nyl,yln); %绘制散点图ylabel('线性卷积'); %Y轴标签axis([0,25,0,4]);subplot(2,1,2);stem(ny2,ycn);ylabel('圆周卷积');%x范围为0-16 y范围为0-4axis([0,25,0,4]);
‘
三.实验结果
验证程序中,固定DFT点数为15
ycn = circonv(xn,hn,15); %计算圆周卷积
改变序列xn的长度
当 n = 0:1:12 时 此时N < N1 + N2 -1 线性卷积与圆周卷积不相等。结果如下图所示。
当 n = 0:1:5 时,此时N > N1 + N2 -1 线性卷积与圆周卷积相等。结果如下图所示。
临界条件 N = N1+N2-1时线性卷积与圆周卷积相等,结果如下
四.实验结论
通过上述结果,可以得出结论:
当DFT点数N满足 N>=N1+N2-1时,圆周卷积与线性卷积相等
阅读全文
1 0
- matlab验证线性卷积与圆周卷积的关系
- 线性卷积与圆周卷积
- 关于圆周卷积和fft求卷积的一些看法
- 图解圆周卷积
- 线性卷积和循环卷积的比较与理解
- 线性滤波与卷积的基本概念
- MATLAB中几种卷积的实现与比较
- Matlab卷积与反傅里叶变换的问题
- matlab中的线性卷积函数conv的用法
- 圆周卷积和画图技巧
- 圆周卷积(circular convolution)
- 线性滤波与图像卷积
- 线性卷积
- 关于matlab矩阵卷积conv2和傅里叶变换求卷积ifft2的关系
- 用matlab 对序列卷积算法的验证
- MATLAB卷积
- 卷积操作的线性性质
- 图像卷积与滤波器关系
- 平衡二叉树之红黑树
- JVM调优总结(十)-调优方法
- ArraryList与Vector区别
- 玩转链表和指针,才算是精通C语言。
- Python-class,继承和多态,异常处理
- matlab验证线性卷积与圆周卷积的关系
- 两数之和
- 0520
- 带权最短路 51Nod
- C语言 随机函数详解
- 原型链
- Mybatis绑定错误的原因
- Qt 之QDialog的模态与非模态
- vivado使用自带IP核和创建自己定义的IP核