fp=1000
fc=1200
as=100
ap=1
fs=22000
wp=2*fp/fs
wc=2*fc/fs
N=ceil((as-7.95)/(14.36*(wc-wp)/2))+1
beta=0.1102*(as-8.7)
window=Kaiser(N+1,beta)
b=fir1(N,wc,window)
freqz(b,1,512,fs)
结果:
高通滤波器:
fs=22000
Wp=2*5000/fs
Ws=2*4800/fs
Ap=1
As=100
N=ceil(8*pi/(Wp-Ws))+1
N=N+mod(N+1,2)+1
Wc=(Wp+Ws)/2/pi
h=fir1(N,Wc,'high')
omega=linspace(0,pi,512)
freqz(h,1,omega)
结果:
带通滤波器:
fs=22000
Wp1=2*1200/fs
Wp2=2*3000/fs
Wc1=2*1000/fs
Wc2=2*3200/fs
Ap=1
As=100
W1=(Wp1+Wc1)/2
W2=(Wp2+Wc2)/2
wdth=min((Wp1-Wc1),(Wc2-Wp2))
N=ceil(11*pi/wdth)+1
b = fir1(N,[W1 W2])
freqz(b,1,512,fs)
结果:
双线性法设计低通滤波器:
fp=1000
fc=1200
as=100
ap=1
fs=22000
wp=2*fp/fs
wc=2*fc/fs%归一化截止频率
[n,wn]=ellipord(wp,wc,ap,as)%求数字滤波器的最小阶数和归一化截止频率
[b,a]=ellip(n,ap,as,wn)%求传递函数的分子分母系数
freqz(b,a,512,fs)
结果:
滤波:
d=filter(b,a,y)
我已经查过,没有这个命令。Matlab可以支持一些希腊字母和数学符号的输入,但是支持是极其有限的。相信支持的信息见:http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/text_props.html&http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f0-4741.html#String
其实很简单的。
比如你有一个名叫sj的txt文件,
里面有如下内容(就是你的数据):
0 0 3
1 1 1
2 2 2
你把这个txt文件复制到你的matlab安装目录的work文件夹里,
然后在命令窗口中输入如下命令:
load 'sj.txt'
matlab就把sj里面的数据加载到了系统里自动建立了一个名叫sj的3X3的矩阵,你就可以直接调用了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)