Matlab中的信号处理函数
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
z_conv = 3 10 23 36 34 24 z_conv_=3 10 23 36 34 24 z_filter = 3 10 23 36 z_filter_= 3 10 23
可见,conv(x,y)总是等于conv(y,x)。而filter(x,1,y)却不一定等于filter(y,1,x),但是它们 总是conv(x,y)截短的结果,截短的长度等于length(filter的第三个参数)
syms k
(k 1) (k 2) (k 3)
hk=sym('kroneckerDelta(k, 1) + kroneckerDelta(k, 2)+ kroneckerDelta(k, 3)')
Hz=ztrans(hk)
Hz=simplify(Hz)
运行结果如下:Fz= (z^2 + z + 1)/z^3
反变换
14
【例
】求
f
(t)
1 0
(1)求Fourier变换 syms t w ut=heaviside(t); UT=fourier(ut) UT = pi*dirac(w)-i/w (2)求Fourier反变换 Ut=ifourier(UT,w,t) Ut =heaviside(t)
t 0的Fourier变换。
MS=laplace(Mt,t,s)
MS =
[
exp(-s*a), exp(-s*b)/s]
[ 1/b/((s+a)^2/b^2+1),
2/(s+1)^3]
16
与系统响应、逆Z变换 相关的matlab 函数 1.filter.m
本文件用来求离散系统的输出y(n) 。 若系统的h(n)已知,由y(n)=x(n)*h(n),用conv.m 文件可求出y(n) 。 y=conv (x, h) filter文件是在A(z)、B(z)已知,但不知道h(n)的 情况下求y(n)的。
10
第三章 Z变换
. 在MATLAB语言中有专门对信号进行正反Z变换的函数 ztrans( ) 和itrans( )。其调用格式分别如下:
• F=ztrans( f ) 对f(n)进行Z变换,其结果为F(z) • F=ztrans(f,w) 对f(n)进行Z变换,其结果为F(w) • F=ztrans(f,k,w) 对f(k)进行Z变换,其结果为F(w) • f=itrans ( F ) 对F(z)进行Z反变换,其结果为f(n) • f=itrans(F,k) 对F(z)进行Z反变换,其结果为f(k) • f=itrans(F,w,k) 对F(w)进行Z反变换,其结果为f(k) • 注意: 在调用函数ztran( )及iztran( )之前,要用syms
0~1之间均匀分布的伪白噪声: u=rand(N,1)
(rand(N)生成N阶矩阵)
方差:
2 u
1 N
N 1 n0
u(n) u
2
,
2 u
1 12
方差函数var(u)
标准差函数std(u)
如何改变 u(n) 的方差为P
即如何确定a使au的方差为P?
将au代替u带入上面方差公式可得 a2 u2u(nP) 6
18
与逆Z变换 相关的matlab 函数
2.impz.m 在 A(z)、B(z)已知情况下, 求系统的单 位抽样响应 h(n)。调用格式是:
h = impz(b, a, N) 或 [h,t]=impz(b,a,N) N是所需的的长度。前者绘图时n从1开始, 而后者从0开始。
19
3. residuez.m 将X(z) 的有理分式分解成简单有理分式的和, 因此可用来求逆Z变换。调用格式:
关于MATLAB
MATLAB是美国MathWorks公司开发的 一种功能极其强大的高技术计算语言和 内容极其丰富的软件库。它以矩阵和向 量的运算以及运算结果的可视化为基础, 把广泛应用于各个学科领域的数值分析、 矩阵计算、函数生成、信号、图形及图 象处理、建模与仿真等诸多强大功能集 成在一个便于用户使用的交互式环境之 中,为使用者提供了一个高效的编程工 具及丰富的算法资源。
21
H (z) B(z) A(z)
5.filtfilt.m 本文件实现零相位滤波。其调用格
式是:y=filtfilt(B, A, x) 。式中B是 H (z) 的分子
多项式,A是分母多项式,x是待滤波信号,y是 滤波后的信号。
clear; N=32; n=-N/2:N+N/2; w=0.1*pi; x=cos(w*n)+cos(2*w*n); subplot(311);stem(n,x,'.');grid on; xlabel('n'); b=[0.06745 0.1349 0.06745]; a=[1 -1.143 0.4128]; y=filtfilt(b,a,x); % 用给定系统(b,a)对信号 x 作零相位滤波; y1=filter(b,a,x); % 用给定系统(b,a)对信号 x 作低通滤波; subplot(312);stem(n,y,'.');grid on; xlabel('n'); subplot(313);stem(n,y1,'.');grid on; xlabel('n');
与第二章内容有关的MATLAB文件
1. rand.m 用来产生均值为0.5、幅度在
0~1之间均匀分布的伪白噪声: u=rand(N,1) (rand(N)生成N阶矩阵)
2. randn.m 用来产生均值为零、方差为1
服从高斯(正态)分布的白噪声信号 u=randn(1, N)
x=randn(1000,1) y=randn(1000,1) v=var(x) h=std(y)
命令对所有需要用到的变量(如t,u,v,w)等进行说明, 即要将这些变量说明成符号变量
11
Z变换
例①.求数列 fn=e-n的Z变换及其逆变换。命令如下:
syms n z
fn=exp(-n);
Fz= z/(z - 1/exp(1))
Fz=ztrans(fn,n,z) %求fn的Z变换 f = (1/exp(1))^n
若x(n)和y(n)的长度分别为M和N, 则返回值是长度为M+N-1的序列。
例 x(n)=[3 4 5]; h(n)=[2 6 7 8],求其线性卷积。
MATLAB语句如下:
x=[3 4 5]; h=[2 6 7 8]; y=conv(x,h)
结果 y=6 26 55 82 67 40
x=[3 4 5]; h=[2 6 7 8]; y=xcorr(x,h) y=24 53 86 65 38 10 -0
Control System
(控制系统)
Communication (通信)
System Identification (系统辨识)
Statistics
(统计)
Neural Network
(神经网络)
4
例:
z=peaks; surf(z);
5
与第二章内容有关的MATLAB文件
1. rand.m 用来产生均值为0.5、幅度在
f=iztrans(Fz,z,n) %求Fz的逆Z变换
f=0.5 例② .用MATLAB求出离散序列
k的Z变换MATLAB程序如下:
syms k z
f=0.5^k;
%定义离散信号
Fz=ztrans(f) %对离散信号进行Z变换
运行结果如下:
Fz = 2*z/(2*z-1)
12
Z变换
•
例③ .已知一离散信号的Z变换式为
Biomedical Signal processing
matlab 信号处理函数
Zhongguo Liu Biomedical Engineering School of Control Science and Engineering, Shandong
University
2019/11/20
1
Zhongguo Liu_Biomedical Engineering_Shandong Univ.
F(z) 2z 2z 1
,求
出它所对应的离散信号f(k). MATLAB程序如下:
syms k z Fz=2*z/(2*z-1); %定义Z变换表达式 fk=iztrans(Fz,k) %求反Z变换 • 运行结果如下:fk = (1/2)^k
阶跃序列符号
例④: 求序列的Z变换.
f (k) (k 1) (k 4) u(k 1) u(k 4)
[r,p,k]= residuez(b,a) 假如知道了向量r, p和k,利用residuez.m还可反 过来求出多项式A(z)、B(z)。格式是
[b,a]= residuez(r,p,k)。
20
4.频率响应函数:freqz.m
已知A(z)、B(z), 求系统的频率响应。基本的调用格式是:
[H,w]=freqz(b,a,N,'whole',Fs)
t0
15
【例2.5-4】求
(t a)
eat sin bt
u(t t2
ebt 的) Laplace变换。
syms t s; syms a b positive; %不限定则无结果
Dt=dirac(t-a);
Ut=heaviside(t-b);
Mt=[Dt,Ut;exp(-a*t)*sin(b*t),t^2*exp(-t)];
7
u(n)
3.sinc :用来产生 “sinc” 函数:
sinc函数定义为: 1
t0
sin c(t) 0
t k
sin(t) t t为其它
t=-4:0.1:4;
x4=sinc(t); %
plot(t,x4)
8
4. conv.m 用来实现两个离散序列的线性卷 积。其调用格式是:y=conv(x,h).
N是频率轴的分点数,建议N为2的整次幂;w是返回频率轴座标向量,绘图用; Fs是抽样频率,若Fs=1,频率轴给出归一化频率;’whole’指定计算的频率 范围是从0~FS,缺省时是从0~FS/2.
幅频响应:Hr=abs(H); 相频响应: Hphase=angle(H); 解卷绕: Hphase=unwrap(Hphase);
调用格式是: y=filter(b, a, x) x, y, a 和 b都是向量。
17
与逆Z变换 相关的matlab 函数 1.filter.m
x=[1,2,3,4]; y=[3,4,6]
z_conv= conv(x,y) % x , y 为输入和单位脉冲响应时输出 z_conv_= conv(y, x) % x , y为输入和单位脉冲响应时输出 z_filter=filter(y,1,x) % x为输入, y为FIR单位脉冲响应时输出 z_filter_=filter(x,1,y) % y为输入, x为FIR单位脉冲响应时输出
2
MATLAB与信号处理直接有关的工具箱
( Toolbox)
Signal Processing (信号处理工具箱)
Wavelet
(小波工具箱)
Image Processing(图象处理工具箱)
Higher-Order Spectral Analysis
(高阶谱分析工具箱)
3
与信号处理间接有关的工具箱:
13
符号变换
Fourier变换及其反变换 • Fw=fourier(ft,t,w) 求“时域”函数ft的Fourier变换 • ft=ifourier(Fw,w,t) 求“频域”函数Fw的Fourier
反变换 Laplace变换及其反变换 • Fs=laplace(ft,t,s) 求“时域”函数ft的Laplace变换 • ft=ilaplace(Fs,s,t) 求“频域”函数Fs的Laplace
两序列的相关运算
y(m) x1(n)x2 (n m)
MATLAB实现:y=xcorr(x1,xn 2)。
9
5 . xcorr: 其 互 相 关 和 自 相 关 。 格 式 是 : (1)rxy=xcorr(x,y) : 求 x,y 的 互 相 关 ; (2)rx=xcorr(x,M,’flag’):求x的自相关,M: rx的单边长度,总长度为2M+1;‘flag’是定 标标志,若 flag=biased, 则表示是“有偏” 估计,需将rx(m)都除以N,若flag=unbiased, 则 表 示 是 “ 无 偏 ” 估 计 , 需 将 rx(m) 都 除 以 (N-abs(m));若’flag’缺省,则rx不定标。 M和‘flag’同样适用于求互相关。
可见,conv(x,y)总是等于conv(y,x)。而filter(x,1,y)却不一定等于filter(y,1,x),但是它们 总是conv(x,y)截短的结果,截短的长度等于length(filter的第三个参数)
syms k
(k 1) (k 2) (k 3)
hk=sym('kroneckerDelta(k, 1) + kroneckerDelta(k, 2)+ kroneckerDelta(k, 3)')
Hz=ztrans(hk)
Hz=simplify(Hz)
运行结果如下:Fz= (z^2 + z + 1)/z^3
反变换
14
【例
】求
f
(t)
1 0
(1)求Fourier变换 syms t w ut=heaviside(t); UT=fourier(ut) UT = pi*dirac(w)-i/w (2)求Fourier反变换 Ut=ifourier(UT,w,t) Ut =heaviside(t)
t 0的Fourier变换。
MS=laplace(Mt,t,s)
MS =
[
exp(-s*a), exp(-s*b)/s]
[ 1/b/((s+a)^2/b^2+1),
2/(s+1)^3]
16
与系统响应、逆Z变换 相关的matlab 函数 1.filter.m
本文件用来求离散系统的输出y(n) 。 若系统的h(n)已知,由y(n)=x(n)*h(n),用conv.m 文件可求出y(n) 。 y=conv (x, h) filter文件是在A(z)、B(z)已知,但不知道h(n)的 情况下求y(n)的。
10
第三章 Z变换
. 在MATLAB语言中有专门对信号进行正反Z变换的函数 ztrans( ) 和itrans( )。其调用格式分别如下:
• F=ztrans( f ) 对f(n)进行Z变换,其结果为F(z) • F=ztrans(f,w) 对f(n)进行Z变换,其结果为F(w) • F=ztrans(f,k,w) 对f(k)进行Z变换,其结果为F(w) • f=itrans ( F ) 对F(z)进行Z反变换,其结果为f(n) • f=itrans(F,k) 对F(z)进行Z反变换,其结果为f(k) • f=itrans(F,w,k) 对F(w)进行Z反变换,其结果为f(k) • 注意: 在调用函数ztran( )及iztran( )之前,要用syms
0~1之间均匀分布的伪白噪声: u=rand(N,1)
(rand(N)生成N阶矩阵)
方差:
2 u
1 N
N 1 n0
u(n) u
2
,
2 u
1 12
方差函数var(u)
标准差函数std(u)
如何改变 u(n) 的方差为P
即如何确定a使au的方差为P?
将au代替u带入上面方差公式可得 a2 u2u(nP) 6
18
与逆Z变换 相关的matlab 函数
2.impz.m 在 A(z)、B(z)已知情况下, 求系统的单 位抽样响应 h(n)。调用格式是:
h = impz(b, a, N) 或 [h,t]=impz(b,a,N) N是所需的的长度。前者绘图时n从1开始, 而后者从0开始。
19
3. residuez.m 将X(z) 的有理分式分解成简单有理分式的和, 因此可用来求逆Z变换。调用格式:
关于MATLAB
MATLAB是美国MathWorks公司开发的 一种功能极其强大的高技术计算语言和 内容极其丰富的软件库。它以矩阵和向 量的运算以及运算结果的可视化为基础, 把广泛应用于各个学科领域的数值分析、 矩阵计算、函数生成、信号、图形及图 象处理、建模与仿真等诸多强大功能集 成在一个便于用户使用的交互式环境之 中,为使用者提供了一个高效的编程工 具及丰富的算法资源。
21
H (z) B(z) A(z)
5.filtfilt.m 本文件实现零相位滤波。其调用格
式是:y=filtfilt(B, A, x) 。式中B是 H (z) 的分子
多项式,A是分母多项式,x是待滤波信号,y是 滤波后的信号。
clear; N=32; n=-N/2:N+N/2; w=0.1*pi; x=cos(w*n)+cos(2*w*n); subplot(311);stem(n,x,'.');grid on; xlabel('n'); b=[0.06745 0.1349 0.06745]; a=[1 -1.143 0.4128]; y=filtfilt(b,a,x); % 用给定系统(b,a)对信号 x 作零相位滤波; y1=filter(b,a,x); % 用给定系统(b,a)对信号 x 作低通滤波; subplot(312);stem(n,y,'.');grid on; xlabel('n'); subplot(313);stem(n,y1,'.');grid on; xlabel('n');
与第二章内容有关的MATLAB文件
1. rand.m 用来产生均值为0.5、幅度在
0~1之间均匀分布的伪白噪声: u=rand(N,1) (rand(N)生成N阶矩阵)
2. randn.m 用来产生均值为零、方差为1
服从高斯(正态)分布的白噪声信号 u=randn(1, N)
x=randn(1000,1) y=randn(1000,1) v=var(x) h=std(y)
命令对所有需要用到的变量(如t,u,v,w)等进行说明, 即要将这些变量说明成符号变量
11
Z变换
例①.求数列 fn=e-n的Z变换及其逆变换。命令如下:
syms n z
fn=exp(-n);
Fz= z/(z - 1/exp(1))
Fz=ztrans(fn,n,z) %求fn的Z变换 f = (1/exp(1))^n
若x(n)和y(n)的长度分别为M和N, 则返回值是长度为M+N-1的序列。
例 x(n)=[3 4 5]; h(n)=[2 6 7 8],求其线性卷积。
MATLAB语句如下:
x=[3 4 5]; h=[2 6 7 8]; y=conv(x,h)
结果 y=6 26 55 82 67 40
x=[3 4 5]; h=[2 6 7 8]; y=xcorr(x,h) y=24 53 86 65 38 10 -0
Control System
(控制系统)
Communication (通信)
System Identification (系统辨识)
Statistics
(统计)
Neural Network
(神经网络)
4
例:
z=peaks; surf(z);
5
与第二章内容有关的MATLAB文件
1. rand.m 用来产生均值为0.5、幅度在
f=iztrans(Fz,z,n) %求Fz的逆Z变换
f=0.5 例② .用MATLAB求出离散序列
k的Z变换MATLAB程序如下:
syms k z
f=0.5^k;
%定义离散信号
Fz=ztrans(f) %对离散信号进行Z变换
运行结果如下:
Fz = 2*z/(2*z-1)
12
Z变换
•
例③ .已知一离散信号的Z变换式为
Biomedical Signal processing
matlab 信号处理函数
Zhongguo Liu Biomedical Engineering School of Control Science and Engineering, Shandong
University
2019/11/20
1
Zhongguo Liu_Biomedical Engineering_Shandong Univ.
F(z) 2z 2z 1
,求
出它所对应的离散信号f(k). MATLAB程序如下:
syms k z Fz=2*z/(2*z-1); %定义Z变换表达式 fk=iztrans(Fz,k) %求反Z变换 • 运行结果如下:fk = (1/2)^k
阶跃序列符号
例④: 求序列的Z变换.
f (k) (k 1) (k 4) u(k 1) u(k 4)
[r,p,k]= residuez(b,a) 假如知道了向量r, p和k,利用residuez.m还可反 过来求出多项式A(z)、B(z)。格式是
[b,a]= residuez(r,p,k)。
20
4.频率响应函数:freqz.m
已知A(z)、B(z), 求系统的频率响应。基本的调用格式是:
[H,w]=freqz(b,a,N,'whole',Fs)
t0
15
【例2.5-4】求
(t a)
eat sin bt
u(t t2
ebt 的) Laplace变换。
syms t s; syms a b positive; %不限定则无结果
Dt=dirac(t-a);
Ut=heaviside(t-b);
Mt=[Dt,Ut;exp(-a*t)*sin(b*t),t^2*exp(-t)];
7
u(n)
3.sinc :用来产生 “sinc” 函数:
sinc函数定义为: 1
t0
sin c(t) 0
t k
sin(t) t t为其它
t=-4:0.1:4;
x4=sinc(t); %
plot(t,x4)
8
4. conv.m 用来实现两个离散序列的线性卷 积。其调用格式是:y=conv(x,h).
N是频率轴的分点数,建议N为2的整次幂;w是返回频率轴座标向量,绘图用; Fs是抽样频率,若Fs=1,频率轴给出归一化频率;’whole’指定计算的频率 范围是从0~FS,缺省时是从0~FS/2.
幅频响应:Hr=abs(H); 相频响应: Hphase=angle(H); 解卷绕: Hphase=unwrap(Hphase);
调用格式是: y=filter(b, a, x) x, y, a 和 b都是向量。
17
与逆Z变换 相关的matlab 函数 1.filter.m
x=[1,2,3,4]; y=[3,4,6]
z_conv= conv(x,y) % x , y 为输入和单位脉冲响应时输出 z_conv_= conv(y, x) % x , y为输入和单位脉冲响应时输出 z_filter=filter(y,1,x) % x为输入, y为FIR单位脉冲响应时输出 z_filter_=filter(x,1,y) % y为输入, x为FIR单位脉冲响应时输出
2
MATLAB与信号处理直接有关的工具箱
( Toolbox)
Signal Processing (信号处理工具箱)
Wavelet
(小波工具箱)
Image Processing(图象处理工具箱)
Higher-Order Spectral Analysis
(高阶谱分析工具箱)
3
与信号处理间接有关的工具箱:
13
符号变换
Fourier变换及其反变换 • Fw=fourier(ft,t,w) 求“时域”函数ft的Fourier变换 • ft=ifourier(Fw,w,t) 求“频域”函数Fw的Fourier
反变换 Laplace变换及其反变换 • Fs=laplace(ft,t,s) 求“时域”函数ft的Laplace变换 • ft=ilaplace(Fs,s,t) 求“频域”函数Fs的Laplace
两序列的相关运算
y(m) x1(n)x2 (n m)
MATLAB实现:y=xcorr(x1,xn 2)。
9
5 . xcorr: 其 互 相 关 和 自 相 关 。 格 式 是 : (1)rxy=xcorr(x,y) : 求 x,y 的 互 相 关 ; (2)rx=xcorr(x,M,’flag’):求x的自相关,M: rx的单边长度,总长度为2M+1;‘flag’是定 标标志,若 flag=biased, 则表示是“有偏” 估计,需将rx(m)都除以N,若flag=unbiased, 则 表 示 是 “ 无 偏 ” 估 计 , 需 将 rx(m) 都 除 以 (N-abs(m));若’flag’缺省,则rx不定标。 M和‘flag’同样适用于求互相关。