数字信号处理-matlab函数
这些是我在学习《数字信号处理》时整理的一些函数,这样在用时可以很方便的查找,做matlab时还可以直接将函数copy过去。希望大家都能够把自己的一些好的东西放到网上
和大家一起分享,不要总是做“拿来主义者”
A
abs(Xk32):求模值
angle(Xk32):求相位
axis([a, b, c, d]): (a, b)定义域和(c, d)值域范围
B
[Z,P,K]=buttap(N): 该格式用于计算N阶巴特沃斯归一化(3dB截止频率c1)模拟低通原型滤波器系统函数的零极点和增益因子。返回长度为N的列向量Z和P,分别给出N个零点和极点的位置,K表示滤波器增益。得到的系统函数为如下形式:
(pZ(1))(pZ(2))(pZ(N))(pP(1))(pP(2))(pP(N))
Ga(p)K式子中,Z(k)和P(k)分别为Z和P的第k个元素。如果要从计算得到的零、极点得到系统函数的分子和分母多项式系数向量B和A,可以调用结构转换函数[B,A]=zp2tf(Z,P,K).
[N,wc]=buttord(wp,ws,Rp,As): 该格式用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。调用参数wp和ws分别为数字滤波器的通带边界频率和阻带边界频率
的归一化值,要求0<=wp<=1, 0<=ws<=1,1表示数字频率(对应模拟频率Fs/2,Fs为采样频率)。Rp和As分别为通带最大衰减和阻带最小衰减(dB).当ws<=wp时为高通滤波器;当wp和ws为二元矢量时为带通或带阻滤波器,这时wc也是二元向量。N和wc作为butter函数的调用参量。
[N,wc]=buttord(wp,ws,Rp,As,’s’): 该格式用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc、wp、ws和wc是实际模拟角频率(rad/s)。其他参数与[N,wc]=buttord(wp,ws,Rp,As)相同。(同样的设计指标用巴特沃斯数字的和模拟的调用公式计算的阶数、wc可能会不一样,但都是正确的)
[B,A]=butter(N,wc,’ftype’): 计算N阶巴特沃斯数字滤波器系统函数分子和分母多项式的系数向量B和A。调用参数N和wc分别为巴特沃斯数字滤波器的阶数和3dB截止频率的归一化值(关于归一化),一般按格式[N,wc]=buttord(wp,ws,Rp,As)调用函数buttord计算N和wc。由系数向量B和A可以写出数字滤波器系统函数:
B(z)B(1)B(2)z1B(N)z(N1)B(N1)zNH(z)A(z)A(1)A(2)z1A(N)z(N1)A(N1)zN
式子中,B(k)和A(k)分别为向量B和A的第k个元素
[B,A]=butter(N,wc,’ftype’,’s’): 计算N阶巴特沃斯模拟滤波器系统函数分子和分母多项式的系数向量B和A。调用参数N和wc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际频率)。由系数向量B和A可以写出模拟滤波器系统函数:
B(s)B(1)sNB(2)sN1B(N)sB(N1)Ha(s)A(s)A(1)sNA(2)sN1A(N)sA(N1)
Ftype=high时,设计3dB截止频率为wc的高通滤波器,缺省时默认为低通滤波器。Ftype=stop时,设计3dB截止频率为wc的带阻滤波器,缺省时默认为带通滤波器,当然此时的wc和ws为二元向量。
C
ceil(A):朝正无穷方向舍入
[z,p,k]=cheb1ap(N,Rp):切比雪夫1型滤波器,其中Rp,As,N,z,p,k,B,A均和巴特沃斯相同,不过参数wpo是切比雪夫1型滤波器的通带截止功率,而不是3dB的截止频率。
[N,wpo]=cheb1ord(wp,ws,Rp,As):参见巴特沃斯
[N,wpo]= cheb1ord(wp,ws,Rp,As,’s’): 参见巴特沃斯
[B,A]=cheby1(N,Rp,wpo,’ftype’): 参见巴特沃斯
[B,A]=cheby1(N,Rp,wpo, ’ftype’,’s’): 参见巴特沃斯
[z,p,G]=cheb2ap(N,Rs): 切比雪夫2型滤波器,Rs为阻带最小衰减,wso为阻带截止频率
[N,wso]=cheb2ord(wp,ws,Rp,As):参见巴特沃斯
[N,wso]= cheb2ord(wp,ws,Rp,As,’s’): 参见巴特沃斯
[B,A]=cheby2(N,Rp,wso, ’ftype’): 参见巴特沃斯
[B,A]=cheby2(N,Rp,wso, ’ftype’,’s’): 参见巴特沃斯
conv(xn, yn): 卷积
D
disp: 显示函数,例如 disp(‘welcome’);
E
exp(x). : e的多少次方,注意还有一个点不要少
[z,p,k]=ellipap(N,Rp,As): 椭圆滤波器,wpo为通带边界频率
[N,wpo]= ellipord(wp,ws,Rp,As):参见巴特沃斯
[N,wpo]= ellipord(wp,ws,Rp,As,’s’): 参见巴特沃斯
[B,A]=ellip(N,Rp,As,wpo, ’ftype’): 参见巴特沃斯
[B,A]=ellip(N,Rp, As ,wpo, ’ftype’,’s’): 参见巴特沃斯
ezplot:
ezmesh:
F
fft(xn) :默认长度为length(xn)的离散傅里叶变换
fft(xn,16) :16点的离散傅里叶变换
figure(2):重新创建一个图形界面,figure(3)当然也可
filter(B,A,xn,xi): xn为输入信号的向量表示。xi是零输入下的y(0)(初始条件,可以为向量). yn= filter(A, B, xn, xi) 中yn表示全响应。
filtic(B,A,ys,xs): A为差分方程Y前的系数向量,B为差分方程X前的系数向量,ys=[ y(-1), y(-2), y(-3), ……,y(-N)]; xi=[ x(-1), x(-2), x(-3), ……,x(-M)]; xi= filtic(A, B, ys, xs) 得到的xi 是由初始条件得到的y(0).
fir1:窗函数的设计
hn=fir1(M,wc),返回6dB的截止频率为wc(单位脉冲响应h(n)长度为M+1)的FIR低通滤波器向量hn,默认选用hamming窗。
h(n)=hn(n+1),n=0,1,2,……M.
而且满足线性相位条件:h(n)=h(N-1-n),wc为对pi归一化的数字频率,0<=wc<=1。当wc=[wcl,wcu]时,得到的是带通滤波器,其-6dB通带为wcl<=wc<=wcu。
hn=fir1(M,wc,’ftype’),可设计高通和带阻FIR滤波器。当ftype=high时,设计高通FIR滤波器,当ftype=stop,且wc=[wcl,wcu]时,设计带阻滤波器。
应当注意,再设计高通和带阻FIR滤波器时,阶数M只能取偶数(N=M+1为奇数)。不过当用户将M设置为奇数时,fir1会将M自动加1。
hn=fir1(M,wc,window),可以指定窗函数向量window。如果缺省window参数,则fir1默认为hanmming窗。hn=fir1(M,wc, bartlett (M+1)),使用bartlett三角形窗设计,boxcar(M+1):矩形窗 /hanning(M+1) /hamming(M+1) /Blackman(M+1) /kaiser(M+1,alph)
fix(A):朝零方向舍入
floor(A):朝负无穷方向舍入
fopen: 例fid = fopen('D:/cos_coe.txt','wt'); fid返回值为-1表示不能打开
fprintf: 例fprintf(fid, ' %16.0f \\n ' , yn); fid 是从fopen得到的值, %16.0f \\n 和C中输出格式是一致的
fclose: 例如fclose(fid);
frewind, fread, fwrite, , fgets, fgetl
freqs: 计算模拟滤波器H(s)的频率响应
(1)H=freqs(B,A,w) 计算由向量w指定的模拟频率点上模拟滤波器H(s)的频率响应H(e),结果存于H向量中。B, A仍为H(s)的分子和分母多项式系数向量。
jfreqz: 计算数字滤波器H(z)的频率响应
(1)H=freqz(B,A,w) 计算由向量w指定的数字频率点上数字滤波器H(z)的频率响应H(e),结果存于H向量中。B, A仍为H(z)的分子和分母多项式系数向量。
j(2)[H,w]=freqz(B,A,M)计算出M个频率点上的频率响应,存放在H向量中,M个频率存在向量w中。Freqz函数自动将这M个频率点均匀设置在范围[0,pi]上。
(3)[H,w]=freqz(B,A,M,’whole’) M个频率点均匀设置在范围[0,2*pi]上。
(4)freqz(B,A) 自动选取512个频率点计算。不带输出向量的freqz函数将自动绘出固定格式的幅频响应和相频响应曲线。所谓固定格式,是指频率范围为[0,pi],频率和相位是线性坐标,幅频响应是对数坐标。
G
Grid on :画网格
I
ifft(XK,16) :16点的离散傅里叶反变换
impz(B,A,N): 单位脉冲响应。A表示差分方程y(n)的各项系数,B为x(n)各项系数。
N为显示的输出个数
[Bz,Az]=impinvar(B,A,Fs): 用脉冲响应不变法将模拟滤波器转化为数字滤波器,B,A分别为模拟滤波器函数分子和分母多项式系数向量,Bz,Az分别为数字滤波器函数分子和分母多项式系数向量,Fs为采样频率,缺省时为1Hz。
f=itrans ( F ) :对F(z)进行Z反变换,其结果为f(n) (注意:在调用函数ztrans( )及iztrans( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。)
f=itrans(F,u) :对F(z)进行Z反变换,其结果为f(u)
f=itrans(F,v,u ):对F(v)进行Z反变换,其结果为f(u)
L
length(yn1):求yn1的长度
linspace(0,2*pi,30): 生成一组线性等距的数值.x=linspace(0,2*pi,30);
O
ones(1,4) :4个1
open+函数名:打开一个函数
P
plot(x,y,线形,颜色,线条宽度),后三个是可选项,
线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。
线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆
颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.
pretty(): 显示一个表达式,如:f=0.5^n+(1/3)^n;pretty(f);
R
round(A):四舍五入
S
stem:根据一个x对应一个y,绘制火柴梗图
subplot(m,n,k): m行n列,在第k块画图
X
xlabel(‘string’): x轴显示
xlabel('\\omega/\\pi'): /
Z
zero(1,4) : 4个0
zplane 绘制H(z)的零、极点图
(1)zplane(z,p) 绘制出列向量z中的零点和列向量P中的极点,同时画出参考单位圆,并在多阶零点和极点右上角标出其阶数。如果z和p为矩阵,则zplane 以不同颜色分别绘出z和p各列中的零点和极点。
(2)zplane(B,A) 绘制出系统函数H(z) 的零极点图。其中B,A分别为系统函数H(z)=B(z)/A(z)的分子多项式和分母多项式系数向量。
F=ztrans( f ):对f(n)进行Z变换,其结果为F(z)(注意:在调用函数ztran( )及iztran( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。)
F=ztrans(f,v):对f(n)进行Z变换,其结果为F(v)
F=ztrans(f,u,v):对f(u)进行Z变换,其结果为F(v)
因篇幅问题不能全部显示,请点此查看更多更全内容