cyfile / Matlab-miscellanies

各种Matlab代码
0 stars 0 forks source link

fir1 firls #6

Open 213cy opened 8 years ago

213cy commented 8 years ago

tyrty

213cy commented 8 years ago
n=32;
Wn=0.5;
b = fir1(n,Wn);
subplot(211)
plot(abs(fft(b)))
% freqz(b,1,512)
% fvtool(b,1)
[h,t] = impz(b,1);
sum(abs(h-b'))
%%
Wind = hamming(n+1);
c=firls(n,[0 Wn Wn 1],[1 1 0 0]);
b2=c.*Wind';
b2=b2/sum(b2);
sum(abs(b2-b))
subplot(212)
plot(b),hold on,plot(b2,'ro')
%%
% 因为sinc(1)=0,以及奈奎斯特频率(Wc=1)的一半就算截止频率(0.5)
% 截止频率的倒数的一半为第一次 sinc(t)=0,的时刻t1
% 0 到 t1时刻中间只有一个抽样点,即包含两个抽样间隔
% 所以:
x=Wn*(-n/2:1:n/2);
y = sinc(x);
% 频域中直流功率为Wn*1/Wc=0.5*1/1=0.5
% 所以 y(0)=0.5;
yc = y/2;
sum(abs(yc-c))