Matlab中的信号处理函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

21
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');
已知A(z)、B(z), 求系统的频率响应。基本的调用格 式是:
[H,w]=freqz(b,a,N,'whole',Fs)
N是频率轴的分点数,建议N为2的整次幂;w是返回 频率轴座标向量,绘图用;Fs是抽样频率,若Fs= 1,频率轴给出归一化频率;’whole’指定计算的 频率范围是从0~FS,缺省时是从0~FS/2. 幅频响应:Hr=abs(H); B( z ) H ( z) 相频响应: A( z ) Hphase=angle(H); 解卷绕: Hphase=unwrap(Hphase);
2. randn.m 用来产生均值为零、方差为1
服从高斯(正态)分布的白噪声信号 u=randn(1, N)
x=randn(1000,1) y=randn(1000,1) v=var(x) h=std(y)
7
u(n )
3.sinc :用来产生 “sinc” 函数:
sinc函数定义为:
t 0 1 sin c(t ) 0 t k sin( t ) t t为其它
F=ztrans(f,w) 对f(n)进行Z变换,其结果为F(w) 对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命令对所有需要用到的变量(如t,u,v,w)等进行 说明,即要将这些变量说明成符号变量
对应chebyii椭圆iir滤波器资料仅供参考42给出数字高通的技术要求得到模拟高通的技术要求step得到模拟低通的技术要求step设计出step得到模拟高通转移函数step最后得到数字高通转移函数dhp数字高通滤波器设计步骤数字高通带通及带阻滤波器的设计资料仅供参考43对带通bp带阻bs数字滤波器的设计只需改变图中step2和step4
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 f=iztrans(Fz,z,n) %求Fz的逆Z变换
例② .用MATLAB求出离散序列f=0.5k的Z变换 MATLAB程序如下: syms k z f=0.5^k; %定义离散信号 Fz=ztrans(f) %对离散信号进行Z变换 运行结果如下: Fz = 2*z/(2*z-1) 12
Ut=ifourier(UT,w,t)
Ut =heaviside(t)
15
(t a) u(t b) 【例2.5-4】求 at 的Laplace变换。 2 t e sin bt t e 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)]; MS=laplace(Mt,t,s) MS = [ exp(-s*a), exp(-s*b)/s]
将X(z) 的有理分式分解成简单有理分式的和, 因此可用来求逆Z变换。调用格式: [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
如何改变 u(n) 的方差为P
即如何确定a使au的方差为P? 将au代替u带入上面方差公式可得 a P
2 2 u
u(n )
6
与第二章内容有关的MATLAB文件
1. rand.m 用来产生均值为0.5、幅度在 0~1之间均匀分布的伪白噪声: u=rand(N,1) (rand(N)生成N阶矩阵)
Biomedical Signal processing
matlab 信号处理函数
Zhongguo Liu
Biomedical Engineering School of Control Science and Engineering, Shandong University
2015-4-13
1
Zhongguo Liu_Biomedical Engineering_Shandong Univ.
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
[ 1/b/((s+a)^2/b^2+1),
16
2/(s+1)^3]
与系统响应、逆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)的。
Control System Communication (控制系统) (通信)
System Identification (系统辨识)
Statistics (统计)
Neural Network
(神经网络)
4
例:
z=peaks; surf(z);
5
ቤተ መጻሕፍቲ ባይዱ
与第二章内容有关的MATLAB文件
1. rand.m 用来产生均值为0.5、幅度在 0~1之间均匀分布的伪白噪声: u=rand(N,1) (rand(N)生成N阶矩阵) 2 N 1 1 1 2 2 方差: u u(n) u , u N n 0 12 方差函数var(u) 标准差函数std(u)
10
第三章 Z变换
. 在MATLAB语言中有专门对信号进行正反Z变换的函数
ztrans( ) 和itrans( )。其调用格式分别如下:
F=ztrans( f ) F=ztrans(f,k,w) f=itrans ( F )
对f(n)进行Z变换,其结果为F(z) 对f(k)进行Z变换,其结果为F(w)
ft=ilaplace(Fs,s,t)
求“时域”函数ft的Laplace变换
求“频域”函数Fs的Laplace
反变换
14
【例 】求
1 f (t ) 0
t0 t0
的Fourier变换。
(1)求Fourier变换
syms t w
ut=heaviside(t); UT=fourier(ut) UT = pi*dirac(w)-i/w (2)求Fourier反变换
Z变换
例③ .已知一离散信号的Z变换式为 , 求出它所对应的离散信号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) (k 1) (k 2) (k 3) syms k hk=sym('kroneckerDelta(k, 1) + kroneckerDelta(k, 2)+ kroneckerDelta(k, 3)') Hz=ztrans(hk) Hz=simplify(Hz) 运行结果如下:Fz= (z^2 + z + 1)/z^3 13
9
y(m) x1 (n) x2 (n m)
n
MATLAB实现:y=xcorr(x1,x2)。
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’同样适用于求互相关。
%
t=-4:0.1:4;
x4=sinc(t); plot(t,x4)
8
4. conv.m 用来实现两个离散序列的线性卷 积。其调用格式是:y=conv(x,h).
若x(n)和y(n)的长度分别为M和N, 则返回值是长度 为M+N-1的序列。
例 x(n)=[3 4 5]; h(n)=[2 6 7 8],求其线性卷积。 x=[3 4 5]; MATLAB语句如下: h=[2 6 7 8]; x=[3 4 5]; y=xcorr(x,h) h=[2 6 7 8]; y=24 53 86 65 38 10 -0 y=conv(x,h) 结果 y=6 26 55 82 67 40 两序列的相关运算
关于MATLAB
MATLAB是美国MathWorks公司开发的 一种功能极其强大的高技术计算语言和 内容极其丰富的软件库。它以矩阵和向 量的运算以及运算结果的可视化为基础, 把广泛应用于各个学科领域的数值分析、 矩阵计算、函数生成、信号、图形及图 象处理、建模与仿真等诸多强大功能集 成在一个便于用户使用的交互式环境之 中,为使用者提供了一个高效的编程工 具及丰富的算法资源。
2
MATLAB与信号处理直接有关的工具箱
( Toolbox)
Signal Processing (信号处理工具箱)
Wavelet (小波工具箱)
Image Processing(图象处理工具箱)
Higher-Order Spectral Analysis (高阶谱分析工具箱)
3
与信号处理间接有关的工具箱:
F ( z) 2z 2z 1
符号变换
Fourier变换及其反变换 Fw=fourier(ft,t,w) 求“时域”函数ft的Fourier变换 ft=ifourier(Fw,w,t) 求“频域”函数Fw的Fourier
反变换
Laplace变换及其反变换
Fs=laplace(ft,t,s)
调用格式是: 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单位脉冲响应时输出 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的第三个参数)
相关文档
最新文档