📄 fdslide.m
字号:
%===========doi+4================
slide(doi+4).ttl='带通';
slide(doi+4).code1={'现在,请你输入你要用窗口法逼近的理想BPDF的参数:';'带通截止频率 Ws='};
%slide(doi+4).code2={};
slide(doi+4).text={
'该截止频率是要用FIR窗口法/频率响应法逼近的理想带通滤波器频率响应"0","1"',
'跳变的临界频率. 要改变默认值([π/4,3π/4]), 则在输入框中输入需要的值即',
'可, 值应该在0到π之间, 且两值递增. 其理想的频率响应相应的绘于该屏输入框',
'下方. 在输入完毕后, 回车以表示确认, 同时, 下面的频率响应图也会应以更新到',
'新的截止频率下的频响图. 在这里, π用pi来表示, 如π/4输入0.25pi或0.25*pi,',
'当然也可以直接输入π/4的值: 0.785. ' };
slide(doi+4).next=[doi+1;doi+5;doi+10];
%========== Slide 21 ==========
%slide(doi+5).ttl='';
slide(doi+5).code1={
'将刚才的理想滤波器展成傅利叶级数,可得:'};
%'Ws=get(slideData.BtnHandles(doi+2),''string'');',
%'Wsnor=Ws/pi;' };
% 'xptext( ''>> whos'', ''Name Size Bytes Class'', '' '', ''A 3x3 72 double array'', ''p 1x4 32 double array'', ''q 1x7 56 double array'', ''r 1x10 80 double array'', '' '', ''Grand total is 30 elements using 240 bytes'' );',
% '' };
% slide(doi+5).code2={};
slide(doi+5).text={
'按照窗口法理论, 窗口是在时域加上去的, 故此一步把理想目标转到时域, 即作反傅',
'利叶变换. 得到的h(n)应是无限延伸的, 但在这里我们不可能将它全部绘出. 但是您',
'心里应该明白, 即使是计算机显示屏之外, h(n)也是存在的.'};
slide(doi+5).next=[doi+6];
%========== Slide 22 ==========
%slide(doi+6).ttl='';
slide(doi+6).code1={'选择窗口类型:'};
% 'text(0.5,0.7,''适宜市'');'};
% 'set(gca,''box'',''on'')',
% 'xptext( ''>> A'', '' '', ''A ='', '' '', '' 1 2 0'', '' 2 5 -1'', '' 4 10 -1'' );' };
%slide(doi+6).code2={}; %'currentBtn=findobj(''visible'',''on'',''style'',''radiobutton'',''value'',1);',
%'winTypeS=get(currentBtn,''string'');',
%'if ~isempty(findstr(winTypeS,''Rectangular'')) winType=''boxcar''; end;',
%'if ~isempty(findstr(winTypeS,''Hanning'')) winType=''hanning''; end;',
%'if ~isempty(findstr(winTypeS,''Hamming'')) winType=''hamming''; end;',
%'if ~isempty(findstr(winTypeS,''Blackman'')) winType=''blackman''; end;',
%'if ~isempty(findstr(winTypeS,''Kaiser'')) winType=''kaiser''; end;',
%'save yhzfd winType',
%'winplot(gcf,winType)',
%'clear winType currentBtn;',
%'clear winTypeS;'};
slide(doi+6).text={};
% ' You can get the value of a particular variable by typing its',
% ' name.'};
slide(doi+6).next=(doi+7)*ones(1,5);
%========== Slide 23 ==========
slide(doi+7).ttl='窗口法';
slide(doi+7).code1={'你需输入窗口长度 N=2M+1:';'M='};
% 'xptext( '' >> sqrt(-1), log(0)'', '' '', '' ans ='', '' 0 + 1.0000i'', '' '', '' Warning: Log of zero'', '' '', '' ans ='', '' -Inf'');',
% '' };
%slide(doi+7).code2={};
slide(doi+7).text={
'大家知道, 有四种线性相位的FIR数字滤波器. 我们在这里用窗口法设计的是第I类,',
'即时域偶对称, 长度为奇数. 显然, 偶对称是自然满足的, 为了保证您输入窗口长',
'度是奇数, 您要输入的是M, 而窗口长度N=2*M+1. 窗口长度显然是越大逼近效果越',
'好, 但同时点数也加大, 系统负担加重, 所以您可以多试几次, 看一看效果如何. ',
'输入完毕, 回车, 您会看到您选择的窗口马上听从你的命令而变化.',
'',
'对于凯撒窗, 满足一定条件的窗口长度可以用下式计算:'};
slide(doi+7).next=[doi+8];
%===========Slide 24==========
%========doi+8================
%slide(doi+8).ttl='';
slide(doi+8).code1={'然后,为了保证线性相位和因果性';'将窗口和hi(n)都向右平移M'};
%slide(doi+8).code2={};
% 'xptext( '' >> sqrt(-1), log(0)'', '' '', '' ans ='', '' 0 + 1.0000i'', '' '', '' Warning: Log of zero'', '' '', '' ans ='', '' -Inf'');',
% '' };
slide(doi+8).text={
' '};
slide(doi+8).next=[doi+9];
%========== Slide 25 ==========
slide(doi+9).ttl='';
slide(doi+9).code1={'最后,将窗口和hi相乘就得到需设计FIRDF的脉冲响应'};
% slide(doi+9).code2={};
%slide(doi+9).code1={
% 'cla',
% 'A = zeros(32); A(14:16,14:16) = ones(3);',
% 'y = fft2(A);',
% 'mesh(abs(y));',
% 'title(''Magnitude of Two-Dimensional FFT of a Matrix'')',
% '' };
slide(doi+9).text={};
% ' MATLAB has functions which make it ideal as a signal',
% ' processing tool.',
% '',
% ' For more details, see the demos of the Signal',
% ' Processing Toolbox',
% '',
% ' >> A = zeros(32); A(14:16,14:16) = ones(3);',
% ' >> y = fft2(A);',
% ' >> mesh(abs(y));',
% ' >> title(''Magnitude of Two-Dimensional FFT of a Matrix'')'};
slide(doi+9).next=[1];
%========== Slide 26 ==========
% slide(doi+10).ttl='';
slide(doi+10).code1={'你要设计哪种线性相位的滤波器:'};
%slide(doi+10).code2={};
slide(doi+10).text={};
slide(doi+10).next=(doi+11)*ones(1,4);
%===========Slide 27============
slide(doi+11).ttl='频率采样法';
slide(doi+11).code1={ '然后,请输入采样点数N(在一个2\pi周期内)'};
%,'''',''M='');
%'j=1;',
%'while ~get(slideData.BtnHandles(26,j),''value'') j=j+1; end ',
%'if (j==1)|(j=3) mytext1(27,''然后,请输入采样点数N=2M+1(在一个2\pi周期内)'','''',''M='');',
%'else mytext1(27,''然后,请输入采样点数N=2M(在一个2\pi周期内)'','''',''M=''); end' };
% 'cla',
% 'view(2)',
% 'fplot(''humps'',[0,2]), hold on',
% 'patch([0.5 0.5:0.01:1 1 0.5],[0 humps(0.5:0.01:1) 0 0],''r'');',
% 'hold off',
% 'title(''A region under an interesting function.'')',
% '' };
%slide(doi+11).code2={};
slide(doi+11).text={};
% ' MATLAB also allows you to create and analyze functions',
% ' easily.',
% ' For examples, see the demo "Functions of functions" under',
% ' MATLAB Numerics.',
% ' >> fplot(''humps'',[0,2]), hold on',
% ' >> patch([0.5 0.5:0.02:1 1 0.5],[0 humps(0.5:0.02:1) 0 0],''r'');',
% ' >> hold off',
% ' >> title(''A region under an interesting function.'')'};
slide(doi+11).next=[doi+12];
%========== Slide 28 ==========
%slide(doi+12).ttl='';
slide(doi+12).code1={'这是采样后的H(k):'};
%if isstudent
%slide(27).code1={
% ' membrane(5,15,9,4)',
% ' axis([-1 1 -1 1 -1 .5])',
% ' colormap(hot)'};
%slide(doi+12).code2={};
slide(doi+12).text={
''};
slide(doi+12).next=[doi+13];
% else
% slide(27).code1={
% ' load clown',
% ' cla reset',
% ' image(X), colormap(map), axis image',
% ' set(gca,''XTick'',[],''YTick'',[])' };
% slide(27).text={
% 'Thanks you for viewing this introduction to MATLAB.',
% '',
% ' ',
% '',
%%
% ' >> image(X), colormap(map), axis image',
% ' >> set(gca,''XTick'',[],''YTick'',[])'};
%end
%set(gcf,'UserData',slideData);
%=============Slide 29 =============
%slide(doi+13).ttl='';
slide(doi+13).code1={ '为了保证线性相位,根据你所选择的滤波器类型,';'还需对H(k)作一些处理:'};
%slide(doi+13).code2={};
slide(doi+13).text={};
slide(doi+13).next=[doi+14];
%=============Slide 30 =============
%slide(doi+14).ttl='';
slide(doi+14).code1={ '将H(k)作快速反傅立叶变换(IFFT),即可得h(n)' };
%slide(doi+14).code2={};
slide(doi+14).text={};
slide(doi+14).next=[1];
%=============Slide 31 =============
slide(doi+15).ttl='低通_IIR';
slide(doi+15).code1={ '现在,需确定LPDF的参数:';
'通带截止频率fp(Hz):';
'通带最大衰减Rp(dB):';
'阻带最低频率fs(Hz):';
'阻带最小衰减Rs(dB):';
'采样频率fsa(Hz):' };
%,''现在,需确定LPDF的参数:'',''通带截止频率Wp(Hz):'',''通带最大衰减Rp(dB):'',''阻带最低频率Ws(Hz):'',''阻带最小衰减Rs(dB):'',''采样频率fs(Hz):'');'};
%slide(doi+15).code2={};
slide(doi+15).text={};
slide(doi+15).next=[doi+18,doi+18,doi+18,doi+18,doi+18];
%============Slide 32 ==============
slide(doi+16).ttl='高通_IIR';
slide(doi+16).code1={'现在,需确定HPDF的参数:';
'通带下限频率fp(Hz):';
'通带最大衰减Rp(dB):';
'阻带上限频率fs(Hz):';
'阻带最小衰减Rs(dB):';
'采样频率fsa(Hz):' };
%slide(doi+16).code2={};
slide(doi+16).text={};
slide(doi+16).next=(doi+18)*ones(1,5);
%============Slide 33 ==============
slide(doi+17).ttl='带通_IIR';
slide(doi+17).code1={'现在,需确定BPDF的参数:';
'通带频率fp(Hz)=[fpl,fph]:';
'通带最大衰减Rp(dB):';
'阻带频率fs(Hz)=[fsl,fsh]:';
'阻带最小衰减Rs(dB):';
'采样频率fsa(Hz):' } ; %mytext1(33,'' '','' '','' '','' '','' '','' '');'};
%slide(doi+17).code2={};
slide(doi+17).text={};
slide(doi+17).next=(doi+18)*ones(1,5);
%============Slide 34 ===============
%slide(doi+18).ttl='';
slide(doi+18).code1={'然后,选择一种模拟低通原型:' };
%slide(doi+18).code2={};
slide(doi+18).text={};
slide(doi+18).next=[doi+19,doi+19,doi+19];
%============Slide 35 ===============
%slide(doi+19).ttl='';
slide(doi+19).code1={'根据参数我们可以通过查表或计算,';'得出低通原型的阶数和3dB点:'};
%slide(doi+19).code2={};
slide(doi+19).text={};
slide(doi+19).next=[doi+20];
%============Slide 36 ===============
%slide(doi+20).ttl='';
slide(doi+20).code1={'现在可以得到模拟低通原型:'};
%slide(doi+20).code2={};
slide(doi+20).text={};
slide(doi+20).next=[doi+21];
%============Slide 37 ===============
%slide(doi+21).ttl='';
slide(doi+21).code1={'选择一种将模拟原型变换为数字滤波器的方法:'};
%slide(doi+21).code2={};
slide(doi+21).text={};
slide(doi+21).next=[doi+27,doi+22];
%============Slide 38 ================
slide(doi+22).ttl='脉冲响应不变法';
slide(doi+22).code1={'用3dB频率Wn作为归一化频率进行反归一化,';'即用s/Wn代入p,得Ha(s)='};
%slide(doi+22).code2={};
slide(doi+22).text={};
slide(doi+22).next=[doi+23];
%============Slide 39 =================
%slide(doi+23).ttl='';
slide(doi+23).code1={'为了转换到数字域,将Ha(s)展成部分分式:'};
%slide(doi+23).code2={};
slide(doi+23).text={};
slide(doi+23).next=[doi+24];
%============Slide 40 ==================
%slide(doi+24).ttl='';
slide(doi+24).code1={'将极点p用e^(^p^/^f^s^a^)代替,得数字域传递函数H(z):'};
%slide(doi+24).code2={};
slide(doi+24).next=[doi+25];
%============Slide 41 ===================
%slide(doi+25).ttl='';
slide(doi+25).code1={'代入Wn和fsa,并整理得到要设计的滤波器的传递函数:' };
%slide(doi+25).code2={};
slide(doi+25).next=[doi+26];
%============Slide 42 ===================
%slide(doi+26).ttl='';
slide(doi+26).code1={'脉冲响应h(n):'};
%slide(doi+26).code2={};
slide(doi+26).next=[1];
%============Slide 43 ====================
slide(doi+27).ttl='双线性变换法';
slide(doi+27).code1={'由于BLT方法的非线性相位变换,';'需要计算预畸的截止频率Wpre:'};
%slide(doi+27).code2={};
slide(doi+27).text={};
slide(doi+27).next=[doi+28];
%============Slide 44 ====================
%slide(doi+28).ttl='';
slide(doi+28).code1={'用Wpre作为归一化频率进行反归一化,';'即用s/Wpre代入p,得Ha(s)='};
%slide(doi+28).code2={};
slide(doi+28).text={};
slide(doi+28).next=[doi+29];
%============Slide 45 ====================
%slide(doi+29).ttl='';
slide(doi+29).code1={ '最后,进行从模拟到数字的转换, 即代入s=f(z^-^1)'};
%slide(doi+29).code2={};
slide(doi+29).text={};
slide(doi+29).next=[doi+26];
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -