1、这些是我在学习数字信号处理时整理的一些函数,这样在用时可以很方便的查找,做matlab时还可以直接将函数copy过去。希望大家都能够把自己的一些好的东西放到网上和大家一起分享,不要总是做“拿来主义者”Aabs(Xk32):求模值angle(Xk32):求相位axis(a, b, c, d): (a, b)定义域和(c, d)值域范围BZ,P,K=buttap(N): 该格式用于计算N阶巴特沃斯归一化(3dB截止频率)模拟低通原型滤波器系统函数的零极点和增益因子。返回长度为N的列向量Z和P,分别给出N个零点和极点的位置,K表示滤波器增益。得到的系统函数为如下形式:式子中,Z(k)和P(k)分别为
2、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表示数字频率(对应模拟频率,为采样频率)。Rp和As分别为通带最大衰减和阻带最小衰减(dB).当ws=wp时为高通滤波器;当wp和ws为二元矢量时为带通或带阻滤波器,这时wc也是二元向量。N和wc作为butter函数的调用参量。
3、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)调用函数b
4、uttord计算N和wc。由系数向量B和A可以写出数字滤波器系统函数:式子中,B(k)和A(k)分别为向量B和A的第k个元素B,A=butter(N,wc,ftype,s): 计算N阶巴特沃斯模拟滤波器系统函数分子和分母多项式的系数向量B和A。调用参数N和wc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际频率)。由系数向量B和A可以写出模拟滤波器系统函数:Ftype=high时,设计3dB截止频率为wc的高通滤波器,缺省时默认为低通滤波器。Ftype=stop时,设计3dB截止频率为wc的带阻滤波器,缺省时默认为带通滤波器,当然此时的wc和ws为二元向量。Cceil(A):朝正无穷方向舍
5、入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=cheb
6、2ord(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): 卷积 Ddisp: 显示函数,例如 disp(welcome);Eexp(x). : e的多少次方,注意还有一个点不要少z,p,k=ellipap(N,Rp,As): 椭圆滤波器,wpo为通带边界频率N,wpo= ellipord(wp,ws,Rp,As):参见巴特沃斯N,wpo= ellipord(w
7、p,ws,Rp,As,s): 参见巴特沃斯B,A=ellip(N,Rp,As,wpo, ftype): 参见巴特沃斯B,A=ellip(N,Rp, As ,wpo, ftype,s): 参见巴特沃斯ezplot: ezmesh:Ffft(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表示全响应。filt
8、ic(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归一化的数字频率
9、,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 (
10、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, fwr
11、ite, , fgets, fgetl freqs: 计算模拟滤波器H(s)的频率响应(1)H=freqs(B,A,w) 计算由向量w指定的模拟频率点上模拟滤波器H(s)的频率响应H(),结果存于H向量中。B, A仍为H(s)的分子和分母多项式系数向量。freqz: 计算数字滤波器H(z)的频率响应(1)H=freqz(B,A,w) 计算由向量w指定的数字频率点上数字滤波器H(z)的频率响应H(),结果存于H向量中。B, A仍为H(z)的分子和分母多项式系数向量。(2)H,w=freqz(B,A,M)计算出M个频率点上的频率响应,存放在H向量中,M个频率存在向量w中。Freqz函数自动将这M个
12、频率点均匀设置在范围0,pi上。(3)H,w=freqz(B,A,M,whole) M个频率点均匀设置在范围0,2*pi上。(4)freqz(B,A) 自动选取512个频率点计算。不带输出向量的freqz函数将自动绘出固定格式的幅频响应和相频响应曲线。所谓固定格式,是指频率范围为0,pi,频率和相位是线性坐标,幅频响应是对数坐标。GGrid on :画网格Iifft(XK,16) :16点的离散傅里叶反变换impz(B,A,N): 单位脉冲响应。A表示差分方程y(n)的各项系数,B为x(n)各项系数。N为显示的输出个数 Bz,Az=impinvar(B,A,Fs): 用脉冲响应不变法将模拟滤波
13、器转化为数字滤波器,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)Llength(yn1):求yn1的长度linspace(0,
14、2*pi,30): 生成一组线性等距的数值.x=linspace(0,2*pi,30);Oones(1,4) :4个1open+函数名:打开一个函数Pplot(x,y,线形,颜色,线条宽度),后三个是可选项, 线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.pretty(): 显示一个表达式,如:f=0.5n+(1/3)n;pretty(f);Rround(A):四舍五入Sstem:根据一个x对应一个y,绘制火柴梗图subplot(m,n,k):
15、m行n列,在第k块画图Xxlabel(string): x轴显示xlabel(omega/pi): Zzero(1,4) : 4个0zplane 绘制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)