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

📄 ms24_8.m

📁 《数字信号处理实验(MATLAB版)》这
💻 M
字号:
%FIR带通滤波器
fp1=150;fp2=350;         %输入设计指标
fs1=100;fs2=400;Fs=1000;  
ws1=fs1/(Fs/2)*pi;ws2=fs2/(Fs/2)*pi;%计算归一化角频率
wp1=fp1/(Fs/2)*pi;wp2=fp2/(Fs/2)*pi; 
deltaw=wp1-ws1;         %计算过渡带的宽度
N0=ceil(11*pi/deltaw);  %按布莱克曼窗计算滤波器长度N0
N=N0+mod(N0+1,2)  %为实现FIR类型I偶对称滤波器,应确保N为奇数
windows=blackman(N);  %使用布莱克曼窗
wc1=(ws1+wp1)/2/pi;wc2=(ws2+wp2)/2/pi; %截止频率取归一化通阻带频率的平均值        
b=fir1(N-1,[wc1,wc2],windows);%用fir1子函数求系统函数系数
[db,mag,pha,grd,w]=freqz_m(b,1); %求解频率特性
n=0:N-1;dw=2*pi/1000;   %dw为频率分辨率,将0~2π分为1000份
Rp=-(min(db(wp1/dw+1:wp2/dw+1))) %检验通带波动
ws0=[1:ws1/dw+1,ws2/dw+1:501];   %建立阻带频率样点数组
As=-round(max(db(ws0)))          %检验最小阻带衰减
%
subplot(2,2,1),stem(n,b,'filled','k');
axis([0,N,1.1*min(b),1.1*max(b)]);title('实际脉冲响应');
xlabel('n');ylabel('h(n)');
subplot(2,2,2),stem(n,windows,'filled','k');
axis([0,N,0,1.1]);title('窗函数特性');
xlabel('n');ylabel('wd(n)');
subplot(2,2,3),plot(w/2/pi*Fs,db,'k');
axis([0,Fs/2,-150,10]);title('幅频响应');
xlabel('f(Hz)');ylabel('H(e^{j\omega})');
set(gca,'XTickMode','manual','XTick',[0,fs1,fp1,fp2,fs2,Fs/2]);
set(gca,'YTickMode','manual','YTick',[-100,-65,-20,-3,0]);grid
subplot(2,2,4),plot(w/2/pi*Fs,pha,'k');
axis([0,Fs/2,-4,4]);
title('相频响应');
xlabel('f(Hz)');ylabel('\phi(\omega)');
set(gca,'XTickMode','manual','XTick',[0,fs1,fp1,fp2,fs2,Fs/2]);
set(gca,'YTickMode','manual','YTick',[-pi,0,pi]);grid


⌨️ 快捷键说明

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