在MATLAB中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积。

(1)即y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y的系数,p表示输入x的系数,而x表示输入序列。输出结果长度数等于x的长度。

实现差分方程,先从简单的说起:

filter([1,2],1,[1,2,3,4,5]),实现y[k]=x[k]+2*x[k-1]

y[1]=x[1]+2*0=1 (x[1]之前状态都用0)

y[2]=x[2]+2*x[1]=2+2*1=4

(2)y=conv(x,h)是用来实现卷级的,对x序列和h序列进行卷积,输出的结果个数等于x的长度与h的长度之和减去1。

卷积公式:z(n)=x(n)*y(n)= ∫x(m)y(n-m)dm.

程序一:以下两个程序的结果一样

(1)h = [3 2 1 -2 1 0 -4 0 3]; % impulse response

x = [1 -2 3 -4 3 2 1]; % input sequence

y = conv(h,x);

n = 0:14;

subplot(2,1,1);

stem(n,y);

xlabel('Time index n'); ylabel('Amplitude');

title('Output Obtained by Convolution'); grid;

(2)x1 = [x zeros(1,8)];

y1 = filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel('Time index n'); ylabel('Amplitude');

title('Output Generated by Filtering'); grid;

程序二:filter和conv的不同

x=[1,2,3,4,5];

h=[1,1,1];

y1=conv(h,x)

y2=filter(h,1,x)

y3=filter(x,1,h)

结果:y1 = 1 3 6 9 12 9 5

y2 = 1 3 6 9 12

‍ y3 = 1 3 6

可见:filter函数y(n)是从n=1开始,认为所有n<1都为0;而conv是从卷积公式计算,包括n<1部分。

因此filter 和conv 的结果长短不同

程序三:滤波后信号幅度的变化

num=100; %总共1000个数

x=rand(1,num); %生成0~1随机数序列

x(x>0.5)=1;

x(x<=0.5)=-1;

h1=[0.2,0.5,1,0.5,0.2];

h2=[0,0,1,0,0];

y1=filter(h1,1,x);

y2=filter(h2,1,x);

n=0:99;

subplot(2,1,1);

stem(n,y1);

subplot(2,1,2);

stem(n,y2);

MATLAB中提供了卷积运算的函数命令conv2,其语法格式为:

C = conv2(A,B)

C = conv2(A,B)返回矩阵A和B的二维卷积C。若A为ma×na的矩阵,B为mb×nb的矩阵,则C的大小为(ma+mb-1)×(na+nb-1)。

例:

A=magic(5)

A =

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

>> B=[1 2 1 ;0 2 0;3 1 3]

B =

1 2 1

0 2 0

3 1 3

>> C=conv2(A,B)

C =

17 58 66 34 32 38 15

23 85 88 35 67 76 16

55 149 117 163 159 135 67

79 78 160 161 187 129 51

23 82 153 199 205 108 75

30 68 135 168 91 84 9

33 65 126 85 104 15 27

MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为:

Y = filter2(h,X)

其中Y = filter2(h,X)返回图像X经算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。例如:

其实filter2和conv2是等价的。MATLAB在计算filter2时先将卷积核旋转180度,再调用conv2函数进行计算。

Fspecial函数用于创建预定义的滤波算子,其语法格式为:

h = fspecial(type)

h = fspecial(type,parameters)

参数type制定算子类型,parameters指定相应的参数,具体格式为:

type='average',为均值滤波,参数为n,代表模版尺寸,用向量表示,默认值为[3,3]。

type= 'gaussian',为高斯低通滤波器,参数有两个,n表示模版尺寸,默认值为[3,3],sigma表示滤波器的标准差,单位为像素,默认值为0.5

取消

评论

Matlab怎么计算信号的能量,用Matlab求离散讯号的能量与功率怎么编程相关推荐

  1. Matlab怎么计算信号的能量,学习用Matlab计算离散信号的功率和能量.PPT

    学习用Matlab计算离散信号的功率和能量 实验23 迭代法及离散卷积的计算 实验目的 学习用Matlab计算离散信号的功率和能量. 学习并掌握用迭代法求解差分方程的方法 . 掌握用Matlab进行离 ...

  2. 基于matlab的脉搏信号参数提取,基于Matlab的脉搏信号参数提取.pdf

    基于Matlab的脉搏信号参数提取.pdf 第25卷第1期 2010年2月 山东建筑大学学报Vo1 25 No 1 JOURNAL OF SHANDONG JIANZHU UNIVERSITY Feb ...

  3. 最大流matlab代码,计算最小费用最大流MATLAB源代码.doc

    计算最小费用最大流MATLAB源代码,文件名为mp_mc.mfunction[Mm,mc,Mmr]=mp_mc(a,c)A=a; %各路径最大承载流量矩阵C=c; %各路径花费矩阵Mm=0; %初始可 ...

  4. 空间谱估计matlab实现,相干信号空间谱估计测向Matlab仿真研究

    相干信号空间谱估计测向Matlab 仿真研究 1. 引言 由于多径传播.电磁干扰等因素的影响,相干信源存在的电磁环境是经常碰到的.当空间存在相干源时,经典的超分辨DOA 估计方法:MUSIC 算法和E ...

  5. Matlab怎么计算信号的能量,Matlab小波包分解后如何求各频带信号的能量值? [转]...

    clear; clc; n=3; wpname='db3'; % [b,a]=butter(8,[5/100 99/100]); % load a1_1-1; load k301_1-4; % Dat ...

  6. matlab计算信号得频谱,用MATLAB分析离散信号的频谱与信号的采样

    <用MATLAB分析离散信号的频谱与信号的采样>由会员分享,可在线阅读,更多相关<用MATLAB分析离散信号的频谱与信号的采样(7页珍藏版)>请在人人文库网上搜索. 1.实验六 ...

  7. matlab信号分割与比对,matlab测量计算信号的相似度

    本示例说明如何测量信号相似度.将回答以下问题:如何比较具有不同长度或不同采样率的信号?如何确定测量中是否存在信号或仅有噪声?有两个信号相关吗?如何测量两个信号之间的延迟? 比较具有不同采样率的信号 考 ...

  8. matlab如何寻找波谷,波峰波谷法计算信号的周期及其Matlab程序

    波峰波谷法原理是:查找信号相邻波峰波谷间隔采样点的数量,乘上采样间隔的时间,最后求平均值即是信号的周期.但该方法对噪声较为敏感,采用波峰波谷法计算滤波后信号的周期,如图所示. 该方法主要是需要找到信号 ...

  9. matlab接收电视信号,DRM接收及matlab实验 (转载)

    文中有图,不过没费劲插进去,看含图的完整版请直接下载附件. 先给出一些跟本文有点关系的一些网站链接: http://drm.sourceforge.net/    drm的ofdm一直到声音解码源程序 ...

最新文章

  1. 首位猪心移植患者去世!术后存活2个月,创造医学里程碑;官方讣告:哀悼并感谢所作巨大贡献...
  2. 搞死了 报错【libc-client.a: could not read symbols: ...
  3. Scala学习(八)练习
  4. 007_Redis的Set数据类型
  5. [转载] python通过adb获取android手机耗电量
  6. Manifold learning-based methods for analyzing single-cell RNA-sequencing data
  7. python一张图学懂_【python系统学习07】一张图看懂字典并学会操作
  8. android 数据持久化——读写SD卡中的内容
  9. 【NLP预训练】复旦邱锡鹏超全NLP预训练模型综述论文:两张图带你梳理完整脉络...
  10. 用深度强化学习玩atari游戏_深度强化学习从入门到大师:以刺猬索尼克游戏为例讲解PPO(第六部分)...
  11. KORG Opsix Native Mac - 音频数字合成器
  12. js实现上传文件实时显示缩略图
  13. 调研时报表的相关信息
  14. VB编程:GetSetting控制软件试用期-56
  15. [经验教程]中国民生银行信用卡积分怎么兑换免费腾讯视频VIP会员?
  16. STM32F103C8T6+ST7735TFT LCD彩屏驱动程序
  17. UE4 简单记录EQS的使用方法
  18. python基础知识有哪些需要背(记住是基础知识)我是初学者
  19. AltiumDesigner
  20. SQL Server 数据库设计规范

热门文章

  1. 消息队列 RabbitMQ
  2. git没有changId解决方法
  3. 互联网创业如何与传统行业人士合作?
  4. [收藏] Java 编程的动态性
  5. 1分钟解决VS每次运行都显示“正在还原nuget程序包”问题
  6. 以ajax请求方式进行文件下载操作失败的原因及解决方案
  7. mac Hbuilder 无法打开的解决方案
  8. websocket采用tomcat方式,IOC类对象无法注入的解决方案
  9. Java多层的异常捕获
  10. 解决AttributeError: XXX instance has no attribute ‘xxx‘的问题(新手必备)