⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filter_p300k_s600k_fir_kaiser.m

📁 通带300K
💻 M
字号:
%通带频率300k,阻带频率600k,通带衰减1dB,通带衰减1dB
%采样频率Fs=3M,若改变Fs就可以改变通带频率和阻带频率
%采样点书数N=1024
%用kaiser窗函数


%产生采样信号
f1=100000;f2=200000;f3=800000;f4=900000;%两个在带内,两个在带外
Fs=3000000;Num=1024;%采样点数,最好取2^n,否则会产生其他分量
n=(0:Num-1);
x1=cos(2*pi*f1*n/Fs);%采样了30个周期
x2=cos(2*pi*f2*n/Fs);%采样了60个周期
x3=cos(2*pi*f3*n/Fs);%采样了200个周期
x4=cos(2*pi*f4*n/Fs);%采样了300个周期
x=x1+x2+x3+x4;

%分析原信号的频谱
X=fft(x);
F_max=(Num/2-1)*Fs/Num;%最高频率
f_pos=linspace(0,F_max,Num/2);%只分析正频率分量
X_pos=X(1:Num/2);%正频率分量
subplot(3,1,1);stem(f_pos,abs(X_pos));%必须用abs()不然会有负数产生

%设计滤波器
fpts=[0.2 0.4];%frequency points to sample,Wp=0.2pi,Ws=0.4pi,1 对应于1/2 Fs,2f/Fs
mag=[1 0];%magnitude
delta_p=1-10^(-1/20);delta_s=1*10^(-80/20);%ripple
dev=[delta_p delta_s];%deviation
[N,Wn,beta,ftype]=kaiserord(fpts,mag,dev);
kw=kaiser(N+1,beta);%kaiser window,beta是kaiser窗函数中对阻带衰减的调节因子
h=fir1(N,Wn,kw);%FIR滤波器的系数
[p,omega]=freqz(h,1,256);%H(e(jw))采样
subplot(3,1,2);
plot(omega/pi,20*log10(abs(p)));%画出FIR系统响应H(e(jw))

%信号通过设计的滤波器
y=filter(h,1,x);

%分析滤波后的信号频谱
Y=fft(y);
Y_pos=Y(1:Num/2);%正频率分量
subplot(3,1,3);stem(f_pos,abs(Y_pos));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -