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

📄 4-1.m

📁 是《MATLAB数字信号处理与应用》一书的源代码,该书由李正周编著 清华大学出版社出版 2008年5月 本书主要介绍基于MATLAB R2006a的信号分析与处理的原理和应用。全书共分为7章:第
💻 M
字号:
%例程4-1  利用冲激响应不变法设计数字低通滤波器

%利用模拟巴特沃斯滤波器设计数字低通滤波器
%冲激响应不变法
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
As=15;
T=1;
%性能指标
Rip=10^(-Rp/20);
Atn=10^(-As/20);
OmgP=wp*T;
OmgS=ws*T;
[N,OmgC]=buttord(OmgP,OmgS,Rp,As,'s'); %选取模拟滤波器的阶数
[cs,ds]=butter(N,OmgC,'s');            %设计出所需的模拟低通滤波器
[b,a]=impinvar(cs,ds,T);               %应用脉冲响应不变法进行转换
                                       %求得相对、绝对频响及相位、群迟延响应
[db,mag,pha,grd,w]=freqz_m(b,a);

%下面绘出各条曲线
subplot(2,2,1);
plot(w/pi,mag);
title('幅频特性');
xlabel('w(/pi)');
ylabel('|H(jw)|');
axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);
set(gca,'YTickMode','manual','YTick',[0 Atn Rip 1]);
grid
subplot(2,2,2);
plot(w/pi,db);
title('幅频特性(db)');
xlabel('w(/pi)');
ylabel('dB');
axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);
set(gca,'YTickMode','manual','YTick',[-40 -As -Rp 0]);
grid
subplot(2,2,3);
plot(w/pi,pha/pi);
title('相频特性');
xlabel('w(/pi)');
ylabel('pha(/pi)');
axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);
grid
subplot(2,2,4);
plot(w/pi,grd);
title('群延时');
xlabel('w(/pi)');
ylabel('Sample');
axis([0,1,0,12]);
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 0.5 1]);
grid

%所使用的M文件函数
function[db,mag,pha,grd,w]=freqz_m(b,a)

%滤波器的幅值响应(相对、绝对)、相位响应及群延迟
%Usage:[db,mag,pha,grd,w]=freqz_m(b,a)     %500点对应[0,pi]
%w 采样频率; b系统函数H(z)的分子项(对FIR,b=h)
%a 系统函数H(z)的分母项(对FIR,a=1)
[H,w]=freqz(b,a,500);                       %500点的复频响应
mag=abs(H);                                 %绝对幅值响应
db=20*log10(mag/max(mag));                  %相对幅值响应
pha=angle(H);                               %相位响应
grd=grpdelay(b,a,w);                        %群延迟响应

⌨️ 快捷键说明

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