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

📄 ex082500.m

📁 介绍了一些数字信号处理方面的matlab程序
💻 M
字号:
% 第八章: 例 8.26
%            切比雪夫-1高通滤波器设计
%                 ZMAPPING函数的应用
%
% 数字低通滤波器指标:
wplp = 0.2*pi;                         % 数字通带频率(弧度) 
wslp = 0.3*pi;                         % 数字阻带频率(弧度) 
  Rp = 1;                              % 通带波动(dB) 
  As = 15;                             % 阻带衰减(dB)

% 模拟原型指标频率的逆映射
T = 1; Fs = 1/T;                      % 置 T=1
OmegaP = (2/T)*tan(wp/2);            % 预修正原型通带频率
OmegaS = (2/T)*tan(ws/2);            % 预修正原型阻带频率
ep = sqrt(10^(Rp/10)-1);             % 通带波动参数
Ripple = sqrt(1/(1+ep*ep));          % 通带波动
Attn = 1/(10^(As/20));               % 阻带衰减

%模拟切比雪夫原型滤波器计算
[cs,ds] = afd_chb1(OmegaP,OmegaS,Rp,As);
%%*** 切比雪夫-1滤波器阶次 =  4 

% 双线性变换:
[blp,alp] = bilinear(cs,ds,T);

% 数字高通滤波器截止频率
wphp = 0.6*pi;                            % 通带边缘频率

% 低通-高通频带变换:
alpha = -(cos((wplp+wphp)/2))/(cos((wplp-wphp)/2))
%%alpha = -0.3820

Nz = -[alpha,1]; Dz = [1,alpha];
[bhp,ahp] = zmapping(blp,alp,Nz,Dz);
[C,B,A] = dir2cas(bhp,ahp)
%%C = 0.0243
%%B = 1.0000   -2.0000    1.0000
%%    1.0000   -2.0000    1.0000
%%A = 1.0000    1.0416    0.4019
%%    1.0000    0.5561    0.7647

% 绘图
figure(1); subplot(1,1,1)
[dbl,magl,phal,grdl,w] = freqz_m(blp,alp);
subplot(2,2,1); plot(w/pi,magl); title('低通滤波器幅度响应')
xlabel(''); ylabel('|H|'); axis([0,1,0,1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,1]);
set(gca,'YTickMode','manual','YTick',[0,Ripple,1]);grid
subplot(2,2,2); plot(w/pi,dbl); title('低通滤波器幅度(dB)');
xlabel(''); ylabel('分贝'); axis([0 1 -30 0]);
set(gca,'XTickMode','manual','XTick',[0,0.2,1])
set(gca,'YTickMode','manual','YTick',[-30,-Rp,0]);grid
set(gca,'YTickLabelMode','manual','YTickLabels',['30';' 1';' 0']);
[dbh,magh,phah,grdh,w] = freqz_m(bhp,ahp);
subplot(2,2,3); plot(w/pi,magh); title('高通滤波器幅度响应')
xlabel('频率(单位:pi)'); ylabel('|H|'); axis([0,1,0,1])
set(gca,'XTickMode','manual','XTick',[0,0.6,1]);
set(gca,'YTickMode','manual','YTick',[0,Ripple,1]);grid
subplot(2,2,4); plot(w/pi,dbh); title('高通滤波器幅度(dB)');
xlabel('频率(单位:pi)'); ylabel('分贝'); axis([0 1 -30 0]);
set(gca,'XTickMode','manual','XTick',[0,0.6,1])
set(gca,'YTickMode','manual','YTick',[-30,-Rp,0]);grid
set(gca,'YTickLabelMode','manual','YTickLabels',['30';' 1';' 0']);

⌨️ 快捷键说明

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