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

📄 hc832.m

📁 数字信号处理的matlab程序
💻 M
字号:
%《数字信号处理教程——MATLAB释义与实现》第八章例8.3.2程序hc832
% 由模拟巴特沃思原型设计数字滤波器
% 电子工业出版社出版  陈怀琛编著 2004年9月
%
% 数字滤波器指标:
wp = 0.2*pi;                         % 数字通带频率(Hz)
ws = 0.3*pi;                         % 数字阻带频率(Hz)
Rp = 1;                              % 通带波动(dB)
As = 15;                             % 阻带波动(dB) 
% 模拟原型指标对频率的逆映射
T = 0.001; Fs=1/T;                     % 置 Fs=1000
OmegaP = wp*Fs;                     % 原型通带频率
OmegaS = ws*Fs;                     % 原型阻带频率
ep = sqrt(10^(Rp/10)-1);             % 通带波动参数
Ripple = sqrt(1/(1+ep*ep));          % 通带波动
Attn = 1/(10^(As/20));               % 阻带衰减
% 模拟巴特沃思原型滤波器计算:
[N,OmegaC] =buttord(OmegaP,OmegaS,Rp,As,'s');   % 原型的阶数和截止频率计算
%%***巴特沃思滤波器阶次 =  6 
[z0,p0,k0] = buttap(N);         % 归一化巴特沃思原型设计函数
p = p0*OmegaC; z = z0*OmegaC;   % 将零极点乘以Omegac,得到非归一化零极点
k = k0*OmegaC^N;                % 将k0乘以Omegac^N,得到非归一化k
ba = k*real(poly(z));      % 由零点计算分子系数向量
aa = real(poly(p))               % 由极点计算分母系数向量
% 脉冲响应不变法变换:
[bd,ad] = impinvar(ba,aa,1/T)               % 调用脉冲响应不变法函数
[C,B,A]=tf2par(bd,ad)                       % 转换为并联结构
[db,mag,pha,grd,w] = myfreqz(bd,ad);                    % 检验频率响应
subplot(2,2,1); plot(w/pi,mag); title('幅度响应')
xlabel(''); ylabel('|H|'); axis([0,1,0,1.1])
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);grid    % 画刻度线
set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]); 
subplot(2,2,3); plot(w/pi,db); title('幅度(单位:dB)');
xlabel('频率(单位:pi)'); ylabel('分贝'); axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);        % 画刻度线
set(gca,'YTickmode','manual','YTick',[-50,-15,-1,0]); grid
set(gca,'YTickLabelMode','manual','YTickLabels',['50';'15';' 1';' 0'])
subplot(2,2,2); plot(w/pi,pha/pi); title('相位响应')
xlabel(''); ylabel('单位:pi '); axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);        % 画刻度线
set(gca,'YTickmode','manual','YTick',[-1,0,1]); grid
subplot(2,2,4); plot(w/pi,grd); title('群延迟')
xlabel('频率(单位:pi)'); ylabel('样本'); axis([0,1,0,10])
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);        % 画刻度线
set(gca,'YTickmode','manual','YTick',[0:2:10]); grid
set(gcf,'color','w')              % 置图形背景色为白

⌨️ 快捷键说明

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