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

📄 uf_cmptbl.m

📁 信号实验常用的simulink模型和mfile,可直接在matlan下运行。
💻 M
字号:
function [TblTitle,TblList,TblComponent]=uf_cmptbl(fmodel,forder,annex);

fmodel=lower(fmodel);

if nargin<2, forder=3; end;
if nargin<3, annex=0.099; end;

lb_tmp = 1;

if strcmp(fmodel,'butter'),
   if forder<2,
      error('输入巴特沃斯滤波器阶数应大于等于2。');
   end;
   TblTitle='1至9阶巴特沃斯滤波器归一化元件值';
   TblList=str2mat( ...
      ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
      ' 1 | 2.0000', ...
      ' 2 | 1.4142   1.4142', ...
      ' 3 | 1.0000   2.0000   1.0000', ...
      ' 4 | 0.7654   1.8478   1.8478   0.7654', ...
      ' 5 | 0.6180   1.6180   2.0000   1.6180   0.6180', ...
      ' 6 | 0.5176   1.4142   1.9319   1.9319   1.4142   0.5176', ...
      ' 7 | 0.4450   1.2470   1.8019   2.0000   1.8019   1.2470   0.4450', ...
      ' 8 | 0.3902   1.1111   1.6629   1.9616   1.9616   1.6629   1.1111   0.3902', ...
      ' 9 | 0.3473   1.0000   1.5321   1.8794   2.0000   1.8794   1.5321   1.0000   0.3473', ...
      ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );
elseif strcmp(fmodel,'cheby1'),
   if forder<2,
      error('输入切比雪夫滤波器阶数应大于等于2。');
   end;
   TblTitle=['切比雪夫滤波器元件值 Ap=' num2str(annex) 'dB'];
   switch annex,   % Ap(dB)
   case 0.011,     % 
      TblList=str2mat( ...
         ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
         ' 1 |     ', ...
         ' 2 |     ', ...
         ' 3 | 0.6395   0.9786   0.6395', ...
         ' 4 | 0.6349   1.203    1.203    0.6349', ...
         ' 5 | 0.7664   1.310    1.588    1.310    0.7664', ...
         ' 6 | 0.7275   1.380    1.607    1.607    1.380    0.7275', ...
         ' 7 | 0.8068   1.397    1.757    1.634    1.757    1.397    0.8068', ...
         ' 8 | 0.7670   1.433    1.718    1.754    1.754    1.718    1.433    0.7670', ...
         ' 9 | 0.8242   1.431    1.813    1.712    1.913    1.712    1.813    1.431    0.8242', ...
         ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );
   case 0.028,
      TblList=str2mat( ...
         ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
         ' 1 |     ', ...
         ' 2 |     ', ...
         ' 3 | 0.7750   1.0684   0.7750', ...
         ' 4 | 0.7402   1.307    1.307    0.7402', ...
         ' 5 | 0.8973   1.359    1.727    1.359    0.8973', ...
         ' 6 | 0.8366   1.449    1.684    1.684    1.449    0.8366', ...
         ' 7 | 0.9350   1.431    1.874    1.634    1.874    1.431    0.9350', ...
         ' 8 | 0.8788   1.487    1.791    1.792    1.792    1.791    1.487    0.8788', ...
         ' 9 | 0.9511   1.459    1.922    1.696    2.009    1.696    1.922    1.459    0.9511', ...
         ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );
   case 0.044,
      TblList=str2mat( ...
         ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
         ' 1 |     ', ...
         ' 2 |     ', ...
         ' 3 | 0.8533   1.1036   0.8533', ...
         ' 4 | 0.7994   1.354    1.354    0.7994', ...
         ' 5 | 0.9732   1.372    1.803    1.372    0.9732', ...
         ' 6 | 0.8989   1.478    1.721    1.721    1.478    0.8989', ...
         ' 7 | 1.010    1.437    1.941    1.622    1.941    1.437    1.010', ...
         ' 8 | 0.9430   1.507    1.828    1.808    1.808    1.828    1.507    0.9430', ...
         ' 9 | 1.025    1.462    1.985    1.677    2.066    1.677    1.985    1.462    1.025', ...
         ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );
   case 0.099,
      TblList=str2mat( ...
         ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
         ' 1 |     ', ...
         ' 2 |     ', ...
         ' 3 | 1.0285   1.1468   1.0285', ...
         ' 4 | 0.9277   1.434    1.434    0.9277', ...
         ' 5 | 1.144    1.372    1.972    1.372    1.144', ...
         ' 6 | 1.036    1.516    1.788    1.788    1.516    1.036', ...
         ' 7 | 1.178    1.423    2.094    1.574    2.094    1.423    1.178', ...
         ' 8 | 1.086    1.526    1.902    1.830    1.830    1.902    1.526    1.086', ...
         ' 9 | 1.193    1.443    2.132    1.618    2.203    1.618    2.132    1.443    1.193', ...
         ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );
   case 0.177,
      TblList=str2mat( ...
         ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
         ' 1 |     ', ...
         ' 2 |     ', ...
         ' 3 | 1.1893   1.1540   1.1893', ...
         ' 4 | 1.041    1.482    1.482    1.041', ...
         ' 5 | 1.302    1.346    2.129    1.346    1.302', ...
         ' 6 | 1.159    1.529    1.838    1.838    1.529    1.159', ...
         ' 7 | 1.335    1.389    2.240    1.515    2.240    1.389    1.335', ...
         ' 8 | 1.215    1.523    1.963    1.840    1.840    1.963    1.523    1.215', ...
         ' 9 | 1.349    1.405    2.274    1.551    2.339    1.551    2.274    1.405    1.349', ...
         ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );
   case 0.28,
      TblList=str2mat( ...
         ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
         ' 1 |     ', ...
         ' 2 |     ', ...
         ' 3 | 1.3451   1.1412   1.3451', ...
         ' 4 | 1.146    1.513    1.513    1.146', ...
         ' 5 | 1.456    1.307    2.283    1.307    1.456', ...
         ' 6 | 1.277    1.528    1.878    1.878    1.528    1.277', ...
         ' 7 | 1.488    1.343    2.388    1.451    2.388    1.343    1.488', ...
         ' 8 | 1.340    1.508    2.019    1.844    1.844    2.019    1.508    1.340', ...
         ' 9 | 1.502    1.357    2.420    1.481    2.480    1.481    2.420    1.357    1.502', ...
         ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );
   otherwise,
      lb_tmp = 0;
      TblList=str2mat( ...
         ' N |', ...
         ' 1 |', ...
         ' 2 |', ...
         ' 3 |', ...
         ' 4 |', ...
         ' 5 |', ...
         ' 6 |', ...
         ' 7 |', ...
         ' 8 |', ...
         ' 9 |', ...
         ' N |' );
      ls_space = [' ';' ';' ';' ';' ';' ';' ';' ';' ';' ';' '];
      cmpTbl = zeros(9,10);
      l = 1;
      for n = 1:9,
         [cmp, Rl] = uf_chebycmp(annex,n);
         cmpTbl(n,1:n+1) = [Rl cmp];
      end;
      for n = 1:10,
         if n == 1,
            ls_title = ['  Rl';'  Rl'];
         else,
            m = n - 1;
            if mod(m,2),
               ls_title = ['  C' int2str(m);'  L' int2str(m)];
            else,
               ls_title = ['  L' int2str(m);'  C' int2str(m)];
            end;
         end;
         if n <= 2,
            lsa_tmp = num2str(cmpTbl(:,n),'%0.5f');
            lsa_tmp = str2mat( ...
               ls_title(1,:), ...
               lsa_tmp, ...
               ls_title(2,:) );
         else,
            l = l + 1;
            lsa_tmp = num2str(cmpTbl(l:9,n),'%0.5f');
            lsa_tmp = str2mat( ...
               ls_title(1,:), ...
               ls_space(1:l-1,:), ...
               lsa_tmp, ...
               ls_title(2,:) );
         end;
         TblList = [TblList ls_space lsa_tmp ls_space];
      end;
      TblList = { TblList; ...
            ' '; ...
            ' 注:该表上、下栏中的元件排列分别对应于Π型、T型电路。'; ...
            '   偶数阶切比雪夫滤波器原型的负载电阻值(Rl)不等于信号源内阻(设为1)。'};
%      TblList = str2mat(TblList, ...
%         ' 注:偶数阶切比雪夫滤波器原型的负载电阻值(Rl)不等于信号源内阻(设为1)。');
%      TblList=str2mat( ...
%         ' N |   C1       L2       C3       L4       C5       L6       C7       L8       C9', ...
%         ' 1 |     ', ...
%         ' 2 |     ', ...
%         ' 3 |     ', ...
%         ' 4 |     ', ...
%         ' 5 |     ', ...
%         ' 6 |     ', ...
%         ' 7 |     ', ...
%         ' 8 |     ', ...
%         ' 9 |     ', ...
%         ' N |   L1       C2       L3       C4       L5       C6       L7       C8       L9' );

   end;
   
elseif strcmp(fmodel,''),
   
   
end;

if lb_tmp,
   TblComponent = [lb_tmp str2num(TblList(forder+1,5:size(TblList,2)))];
   TblList = { TblList; ...
         ' '; ...
         ' 注:该表上、下栏中的元件排列分别对应于Π型、T型电路。'};
else,
   TblComponent = cmpTbl(forder,1:forder+1);
end;


⌨️ 快捷键说明

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