在matlab中如何实现函数的抽样

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在matlab中如何实现函数的抽样相关的知识,希望对你有一定的参考价值。

syms x ;
y=sin(x)./x;
fplot(y,[-10,10]);

在matlab中实现函数抽样的方法:

dyaddown。功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列。 

格式:y = dyaddown(x, EVENODD)。当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。 2.y = dyaddown(x)EVENODD缺省,按EVENODD=0。

扩展资料:

matlab的相关要求规定:

1、MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

2、MATLAB有高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;MATLAB具有完备的图形处理功能,实现计算结果和编程的可视化。

3、MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

参考资料来源:百度百科-matlab

参考技术A   在matlab中实现函数的抽样用法:
  一、dyaddown
  功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列。
格式:
  1.y
=
dyaddown(x,
EVENODD)
  当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。
2.y
=
dyaddown(x)
  EVENODD缺省,按EVENODD=0
  二、dyadup
  功能:对时间序列进行二元插值,每隔一个元素插入一个0元素,得到一个时间序列。
格式:
  1.y
=
dyadup(x,
EVENODD)
  当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。
2.y
=
dyadup(x)
  EVENODD缺省,按EVENODD=0
  三、interp
  功能:对时间序列进行整数倍插值,使得时间序列曲线更光滑。
格式:
1.y
=
interp(x,
r)
  在x中插入一些数据,使得插值后的序列y的长度为x的r倍。
2.y
=
interp(x,
r,
l,
alpha)
  插值后得到的序列y的长度为x的r倍。
3.[y,
b]
=
interp(x,
r,
l,
alpha)
  插值后同时得到一个低通插值滤波器的系数,长度为2rl+1.
说明:
x--时间序列
r--插入点的倍数
l--插值滤波器长度
  alpha--滤波器的截止频率,0<alpha<=1,假设原序列的采样频率之半为1,缺省时l=4,alpha=0.5.
  y--插值后得到的时间学列
  b--低通插值滤波器的系数,长度为2rl+1
  四、downsample
  功能:对时间序列重采样,在原时间序列中等间隔地取出一些项,得到新序列。
格式:
  1.y
=
downsample(x,
n)
  从第一项开始,等间隔n对x采样,得到的序列为y。
2.y
=
downsample(x,
n,
phase)
  从第phase+1项开始,等间隔n对x采样,得到的序列为y,而0<=phase<n.
  五、decimate
  功能:对时间序列进行整数倍采样处理,使得时间序列的长度降低。
格式:
  1.y
=
decimate(x,
r)
  将时间序列x的采样频率降低为原来的1/r,即length(y)=length(x)/r。在抽取之前,默认地采用了8阶chebyshevI型低通滤波器压缩频带。
2.y
=
decimate(x,
r,
n)
  采用n阶chebyshevI型低通滤波器。
3.y
=
decimate(x,
r,
‘fir’)
  采用30阶的FIR型低通滤波器来压缩频带,对时间序列进行整数倍抽取。
4.y
=
decimate(x,
r,
n,
‘fir’)
  指定当对时间序列进行整数倍抽取的时候,采用n点FIR型低通滤波器来压缩频带,对时间序列进行整数倍抽取。
说明:
x--时间序列
r--采样要降低的倍数
  n--指定所采用的chebyshevI型低通滤波器的阶数
‘fir’--FIR滤波器
  六、resample
  功能:对时间序列进行重采样。
格式:
  1.y
=
resample(x,
p,
q)
  采用多相滤波器对时间序列进行重采样,得到的序列y的长度为原来的序列x的长度的p/q倍,p和q都为正整数。此时,默认地采用使用FIR方法设计的抗混叠的低通滤波器。
2.y
=
resample(x,
p,
q,
n)
  采用chebyshevIIR型低通滤波器对时间序列进行重采样,滤波器的长度与n成比例,n缺省值为10.
  3.y
=
resample(x,
p,
q,
n,
beta)
  beta为设置低通滤波器时使用Kaiser窗的参数,缺省值为5.
4.y
=
resample(x,
p,
q,
b)
  b为重采样过程中滤波器的系数向量。
5.[y,
b]
=
resample(x,
p,
q)
  输出参数b为所使用的滤波器的系数向量。
说明:
x--时间序列
  p、q--正整数,指定重采样的长度的倍数。
  n--指定所采用的chebyshevIIR型低通滤波器的阶数,滤波器的长度与n成比列。
beta--设计低通滤波器时使用Kaiser窗的参数,缺省值为5。
参考技术B   在matlab中实现函数的抽样用法:
  一、dyaddown
  功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列。 格式:
  1.y = dyaddown(x, EVENODD)
  当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。 2.y = dyaddown(x)
  EVENODD缺省,按EVENODD=0
  二、dyadup
  功能:对时间序列进行二元插值,每隔一个元素插入一个0元素,得到一个时间序列。 格式:
  1.y = dyadup(x, EVENODD)
  当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。 2.y = dyadup(x)
  EVENODD缺省,按EVENODD=0
  三、interp
  功能:对时间序列进行整数倍插值,使得时间序列曲线更光滑。 格式: 1.y = interp(x, r)
  在x中插入一些数据,使得插值后的序列y的长度为x的r倍。 2.y = interp(x, r, l, alpha)
  插值后得到的序列y的长度为x的r倍。 3.[y, b] = interp(x, r, l, alpha)
  插值后同时得到一个低通插值滤波器的系数,长度为2rl+1. 说明: x--时间序列 r--插入点的倍数 l--插值滤波器长度
  alpha--滤波器的截止频率,0<alpha<=1,假设原序列的采样频率之半为1,缺省时l=4,alpha=0.5.
  y--插值后得到的时间学列
  b--低通插值滤波器的系数,长度为2rl+1
  四、downsample
  功能:对时间序列重采样,在原时间序列中等间隔地取出一些项,得到新序列。 格式:
  1.y = downsample(x, n)
  从第一项开始,等间隔n对x采样,得到的序列为y。 2.y = downsample(x, n, phase)
  从第phase+1项开始,等间隔n对x采样,得到的序列为y,而0<=phase<n.
  五、decimate
  功能:对时间序列进行整数倍采样处理,使得时间序列的长度降低。 格式:
  1.y = decimate(x, r)
  将时间序列x的采样频率降低为原来的1/r,即length(y)=length(x)/r。在抽取之前,默认地采用了8阶chebyshevI型低通滤波器压缩频带。 2.y = decimate(x, r, n)
  采用n阶chebyshevI型低通滤波器。 3.y = decimate(x, r, ‘fir’)
  采用30阶的FIR型低通滤波器来压缩频带,对时间序列进行整数倍抽取。 4.y = decimate(x, r, n, ‘fir’)
  指定当对时间序列进行整数倍抽取的时候,采用n点FIR型低通滤波器来压缩频带,对时间序列进行整数倍抽取。 说明: x--时间序列 r--采样要降低的倍数
  n--指定所采用的chebyshevI型低通滤波器的阶数 ‘fir’--FIR滤波器
  六、resample
  功能:对时间序列进行重采样。 格式:
  1.y = resample(x, p, q)
  采用多相滤波器对时间序列进行重采样,得到的序列y的长度为原来的序列x的长度的p/q倍,p和q都为正整数。此时,默认地采用使用FIR方法设计的抗混叠的低通滤波器。 2.y = resample(x, p, q, n)
  采用chebyshevIIR型低通滤波器对时间序列进行重采样,滤波器的长度与n成比例,n缺省值为10.
  3.y = resample(x, p, q, n, beta)
  beta为设置低通滤波器时使用Kaiser窗的参数,缺省值为5. 4.y = resample(x, p, q, b)
  b为重采样过程中滤波器的系数向量。 5.[y, b] = resample(x, p, q)
  输出参数b为所使用的滤波器的系数向量。 说明: x--时间序列
  p、q--正整数,指定重采样的长度的倍数。
  n--指定所采用的chebyshevIIR型低通滤波器的阶数,滤波器的长度与n成比列。 beta--设计低通滤波器时使用Kaiser窗的参数,缺省值为5。
参考技术C 区间[0,1]上的均匀分布随机数的系统函数R=rand(n)
R=rand(m,n),产生m*n阶均匀随机矩阵本回答被提问者采纳

Matlab系列数字信号处理:抽样定理和卷积的matlab实现

DATE:2021.5.9


1、前言

在大学《信号与系统》 课程中,学习了抽样定理和卷积的原理,本文采用Matlab GUI实现了抽样定理,线性卷积和循环卷积。

若需要相关代码可以在关注和订阅博主专栏之后,加博主QQ(2963033731)获取。

2、仿真实现

在这里插入图片描述

在这里插入图片描述

以上是关于在matlab中如何实现函数的抽样的主要内容,如果未能解决你的问题,请参考以下文章

Matlab系列数字信号处理:抽样定理和卷积的matlab实现

matlab抽样法恢复信号的最大恢复误差这3怎么计算

抽样函数是冲激脉冲函数吗

风光负荷出力各场景及概率场景削减负荷点的拉丁超立方抽样(Matlab代码实现)

基于频率抽样法的FIR数字滤波器实现matlab仿真

如何在matlab中进行数据的平移和旋转