前言

其实卷积可以说是DSP 数字信号处理的入门操作,

基本思路:我们想测试一个系统的性能,得到这个系统的传递函数,得到你信号的响应(response),说白了就是往系统里面扔信号,出来的东西是啥?我咋知道呢?

其实方法就是我扔个小石子 投石问路即可。 这里的小石子,就是一个最简单的脉冲信号δ(n)\delta(n)δ(n),我放进去看看效果,这个效果就是脉冲响应 h(n)h(n)h(n)
那别的信号咋办?很简单,把你的源信号分解成一个个脉冲响应就行,这样,把所有的脉冲响应(线性)叠加起来就好了:)

那么 这和卷积有什么关系?卷积就是一个计算公式,就好像长方形面积就是底乘高。我们想要得到输出信号y(n) 可以将源信号与脉冲响应h(n)卷积:
y(n)=x(n)∗h(n)=Σx(m)h(n−m)y(n)=x(n)*h(n)=\Sigma x(m)h(n-m)y(n)=x(n)∗h(n)=Σx(m)h(n−m)

题目

循环偏移函数cirshiftd

%x 输入序列
%m 偏移值
%N 循环长度
%y 输出循环序列function y=cirshiftd(x,m,N)
if length(x)>Nerror('x > N');
end
x=[x,zeros(1,N-length(x))];
n=[0:1:N-1];y=x(mod(n-m,N)+1);

循环卷积函数circonv

function yc=circonv(x1,x2,N)% 非法输入控制
if length(x1)>Nerror('N < x1');
end
if length(x2)>Nerror('N < x2');
endx1 = [x1,zeros(1,N-length(x1))];
x2 = [x2,zeros(1,N-length(x2))];n=[0:1:N-1];
x2=x2(mod(-n,N)+1);
H=zeros(N,N);for n=1:1:NH(n,:)=cirshiftd(x2,n-1,N);
endyc=x1*H';

总程序 运用循环卷积函数

% 输入序列
Xn=[1,2,3,4,5];
Hn=[1,2,1,2];% 调用线性卷积、循环卷积的计算函数 进行多点循环卷积的运算
Yline=conv(Xn,Hn);
Yc5=circonv(Xn,Hn,5);
Yc6=circonv(Xn,Hn,6);
Yc9=circonv(Xn,Hn,9);
Yc10=circonv(Xn,Hn,10);% 计算出横坐标序列长度 以便作图
Nyline=[0:1:length(Yline)-1];
Ny5=[0:1:length(Yc5)-1];
Ny6=[0:1:length(Yc6)-1];
Ny9=[0:1:length(Yc9)-1];
Ny10=[0:1:length(Yc10)-1];% 将5张图放置于同一版面% 线性卷积
subplot(5,1,1);
stem(Nyline,Yline,'r*');
axis([0,9,0,25]);
title('Linear convolution');
% 5点循环卷积
subplot(5,1,2);
stem(Ny5,Yc5,'r*');
axis([0,9,0,25]);
title('Circular convolution with N=5');
% 6点循环卷积
subplot(5,1,3);
stem(Ny6,Yc6,'r*');
axis([0,9,0,25]);
title('Circular convolution with N=6');
% 9点循环卷积
subplot(5,1,4);
stem(Ny9,Yc9,'r*');
axis([0,9,0,25]);
title('Circular convolution with N=9');
% 10点循环卷积
subplot(5,1,5);
stem(Ny10,Yc10,'r*');
axis([0,9,0,25]);
title('Circular convolution with N=10');

运行结果


工作区情况

数字信号处理实验(一) —— 线性卷积与循环卷积相关推荐

  1. 数字信号处理实验1:线性卷积与圆周卷积的计算、利用FFT快速卷积

    杭电_数字信号处理课程设计_实验1 一.实验目的 实验一目的: 1.掌握计算机的使用方法和常用系统软件及应用软件的使用. 2.通过MATLAB编程,上机调试程序,进一步增强使用计算机解决问题的能力. ...

  2. matlab实现线性卷积和循环卷积,仿真实验四 循环卷积和线性卷积的实现

    实验四 循环卷积和线性卷积的实现 一.实验目的 1.进一步了解并掌握循环卷积与线性卷积的概念 2.掌握线性卷积与循环卷积软件实现的方法,理解掌握二者的关系 二.实例分析与计算 实验原理: 两个序列的N ...

  3. 信号处理--线性卷积与循环卷积

    文章目录 一.线性卷积 1. 应用背景 2. 定义式 3. 计算方法 3.1 定义式 3.2 作图法 3.3 列表法 二.循环卷积 1. 序列的循环移位 2. 循环卷积的定义 3. 用矩阵计算循环卷积 ...

  4. 基于matlab实现信号的线性卷积与循环卷积

    系列文章目录 数字信号处理(DSP:Digital Signal Process)是电子通信领域非常重要的研究方向,博主汇总了数字信号处理(DSP)中常用的经典案例分析,主要基于算法分析.MATLAB ...

  5. Matlab验证dtft共轭性质,数字信号处理实验4重点.docx

    深 圳 大 学 实 验 报 告 课程名称: 数字信号处理实验 实验项目名称: 实验4 学院: 信息工程学院 专业: 电子信息工程 指导教师: 陈佳义 报告人: 学号: 班级: 实验时间: 11.12 ...

  6. 数字信号处理实验matlab版答案刘舒帆,数字信号处理实验(MATLAB版) 刘舒帆,费诺,陆辉 西安电子科技大学出版社 9787560620060...

    商品描述: 基本信息 书名:数字信号处理实验(MATLAB版) 原价:31.00元 作者:刘舒帆,费诺,陆辉 著 出版社:西安电子科技大学出版社 出版日期:2013-7-1 ISBN:97875606 ...

  7. 离散卷积的c语言编程实验,数字信号处理实验一离散卷积c语言编程.ppt

    数字信号处理实验一离散卷积c语言编程 实验一 离散卷积的C语言编程实验 DSP实验室 2005 实验性质 综合设计性实验 实验目的 1 了解和认识常用的各种信号: 2 掌握卷积的定义和计算方法: 3 ...

  8. MATLAB GUI设计(线性卷积和循环卷积的比较--笔记)

    原创循环卷积代码,转载需注明出处 线性卷积与循环卷积的比较 实验目的和要求 掌握循环卷积和线性卷积的原理,与理论分析结果比较,加深理解循环卷积与线性卷积之间的关系. 实验内容和步骤 1) 已知两序列X ...

  9. @数字信号处理实验1

    @数字信号处理实验1 #实验程序: %实验1:系统响应及系统稳定性 close all;clear all; %============================================ ...

最新文章

  1. codeforces 266A-C语言解题报告
  2. 十年磨一剑,阿里云RDS MySQL和AWS RDS谁的性能更胜一筹?
  3. linux rpm安装软件笔记
  4. php 的html头部代码,HTML 列表
  5. 利用sort对数组快速排序
  6. Julia: array =tuple, 与 ...
  7. Unity首次运行下载游戏资源
  8. HorizontalScrollView+recyclerView
  9. 联想服务器重装系统后usb无法启动,联想启天装win7系统的详细教程完美解决USB不能用的问题...
  10. 一句话说明白IRQL
  11. 仿生机制算法——细胞吸引子模型(附Matlab代码)
  12. 微信注册验证成功之后不跳转_微信公众号申请教程,怎么创建公众号?
  13. 诚之和:年轻人的尽头,是回老家买房吗?
  14. android+拨打电话弹出无法连接到移动网络,呼叫转移设置网络异常怎么办
  15. vmware虚拟服务器数据备份,爱数VMware虚拟化平台备份恢复方案.pdf
  16. 大数据扫黄,是怎样发现你的?
  17. 从两句偈语开始写的一首诗《看花》,以及创造思路、过程
  18. 蓝桥杯练习系统之基础训练Java版(2-26)—— 报时助手
  19. C语言概述(三)-- 宏定义、指针、结构体
  20. 亚像素边缘提取的例子

热门文章

  1. linux内核通用显卡驱动,一种通用的显卡驱动方法
  2. 最新kali之nbtscan
  3. php保留两位小数并且不四舍五入
  4. angular 使用ng-zorro添加iconfont图标
  5. 晨曦记账本的功能有哪些
  6. 晨曦记账本怎么导出明细的详细步骤
  7. javascript中 .eq()的用法
  8. S60 手机操作系统数字签名安全机制与软件签名原理
  9. 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)
  10. thinkphp 5.0 “No input file specified”问题