给你些资料,希望对你有帮助~~~
模拟原型法
采用经典低通滤波器作为连续域上的设计模型,通过频域变换得到IIR数字滤波器,最后还要进行离散化处理。Matlab提供的低通模拟滤波器原型函数包括:besselap,buttap,cheb1lp,cheb2ap,ellipap;频域变换函数包括:lp2bp,lp2bs,lp2hp,lp2lp;离散化处理函数有bilinear和impinvar。
完全设计法
Matlab信号处理工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用就可以设计滤波器,这为设计通用滤波器提供了方便。
设计Butterworth滤波器用函数butter(),可以设计低通、高通、带通和带阻的数字和模拟滤波器,其特性是通带内的幅度响应最大限度的平滑,但损失了截止频率处的下降斜度。
设计Chebyshev I型滤波器用函数chebyl()。可以设计低通、高通、带通和带阻的数字和模拟ChebyshevI型滤披器,其通带内为等波纹,阻带内为单调。Chebyshev I型滤波器的下降斜度比II型大,但其代价是通带内波纹较大。
设计Chebyshev II型滤波器用函数cheby2()。可以设计低通、高通、带通和带阻的数字和模拟Chebyshev II型滤波器,其通带内为单调,阻带内等波纹。Chebyshev II型滤波器的下降斜度比I型小,但其阻带内波纹较大。
设计椭圆滤波器用函数ellip(),与cheby1,cheby2类似,可以设计低通、高通、带通和带阻的数字和模拟滤波器。与Butterworth和chebyshev滤波器相比,ellip函数可以得到下降斜度更大的滤波器,得到通带和阻带均为等波纹。一般情况下,椭圆滤波器能以最低的阶实现指定的性能指标。
直接设计法
直接设计方法的思想是基于给定的滤波器参数直接在离散域上寻找合适的数字滤波器,他不限于常规的滤波器类型,如低通、高通、带通和带阻等。这种方法甚至可以设计多带的频率响应,Matlab提供yulewalk函数用于辅助设计。
通用Butterworth设计方法
使用这种方法设计的Butterworth数字滤波器可以有不同数目的零点和极点,Matlab提供的maxflat函数实现了这一功能。这个函数与butter函数很相似,但他可以指定两个阶参数,其中归一化和非归一化各一个。如果这两个参数的值相同,那么他与butter函数的结果就是相同的。
参数建模法
寻找接近于所需要设计的滤波器的通用模型,时域上的建模函数为lpc,prony,Stmcb;频域上的建模函数有invfreqs和invfreqz
假设是32点的高斯窗,用以下matlab语句就可以看到高斯窗时域和频域的情况:
N = 32;wvtool(gausswin(N));或者:window=gausswin(n);[h,w]=freqz(window,1);subplot(1,2,1)stem(window);subplot(1,2,2);plot(w/pi,20log(abs(h)/abs(h(1))));
我的看法是:
1 程序不一定能帮你。
程序只管运行,但是你还是不知道其原理,所以无法判断是否正确。对于FFT的理解,需要深入的分析公式。
2 如何得到幅度为1的复正弦波?
用ifft(u,1024)是正确的,这个时候得到的时域波形为1024个点。关键是u是多少
21 如果u是[1024,0,0,…,0],1023个0,那么得到的是一条直线,频率为0的复正弦。
22 如果u是[0,1024,0,…,0],1023个0,那么得到的是一条直线,频率为1的复正弦。
23 如果u是[0,0,1024,0,…,0],1023个0,那么得到的是一条直线,频率为2的复正弦。
依次类推。
3 如何得到指定幅度15,指定相位45°,指定频率为8的复正弦波?
u=[0,…,0,102415exp(1jpi/4),0,…,0],前面8个0,后面1015个0。即可。
未完待续,先等分
以上就是关于请帮我用matlab在时域和频域上分别设计低通和高通滤波器程序全部的内容,包括:请帮我用matlab在时域和频域上分别设计低通和高通滤波器程序、混凝土损伤因子如何用matlab高斯积分法、matlab 已知一系列离散的频域解,如何求时域解 跪谢!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)