📄 dsdemo1.m
字号:
% Demonstrate synthesizeNTFif exist('LiveDemo','var') == 0 LiveDemo=0;endJ = sqrt(-1);format compact;clcfprintf(1,'\t\tNTF Synthesis-- 5th-order modulator\n\n');echo onorder = 5;R = 32;opt = 0;H = synthesizeNTF(order,R,opt);echo offfigure(1); clfplotPZ(H)title('NTF poles and zeros')if LiveDemo set(1,'position',[10 307 480 420]); changeFig(18,2,12);else fprintf(1,'paused\n');endpauseif LiveDemo set(1,'position',[9 526 200 200]); changeFig;endfigure(2); clff = [linspace(0,0.75/R,100) linspace(0.75/R,0.5,100)];z = exp(J*2*pi*f);magH = dbv(evalTF(H,z));subplot(211);plot(f,magH);axis([0 0.5 -100 10]);grid on;xlabel('Normalized frequency (1\rightarrow f_s)');ylabel('dB')title('NTF Magnitude Response')fstart = 0.01;f = linspace(fstart,1.2,200)/(2*R); z = exp(J*2*pi*f);magH = dbv(evalTF(H,z));subplot(212);semilogx(f*2*R,magH);axis([fstart 1.2 -100 -30]);grid onsigma_H = dbv(rmsGain(H,0,0.5/R));hold on;semilogx([fstart 1], sigma_H*[1 1]);plot([fstart 1], sigma_H*[1 1],'o');text( 0.15, sigma_H+5, sprintf('rms gain = %5.0fdB',sigma_H));xlabel('Normalized frequency (1\rightarrow f_B)');ylabel('dB')if LiveDemo set(2,'position',[241 241 523 485]); changeFig(18,2,12);else fprintf(1,'paused\n');endpauseif LiveDemo set(2,'position',[239 526 450 200]); changeFig;endfprintf(1,'\t\t\tOptimized zeros\n\n');echo onopt = 1;H = synthesizeNTF(order,R,opt);echo offfigure(1); clfplotPZ(H)title('NTF poles and optimized zeros')if LiveDemo set(1,'position',[10 307 480 420]); changeFig(18,2,12);else fprintf(1,'paused\n');endpauseif LiveDemo set(1,'position',[9 526 200 200]); changeFig;endfigure(2)fmt = '--';f = [linspace(0,0.75/R,100) linspace(0.75/R,0.5,100)];z = exp(J*2*pi*f);magH = dbv(evalTF(H,z));subplot(211);hold on;plot(f,magH,fmt);f = linspace(fstart,1.2,200)/(2*R); z = exp(J*2*pi*f);magH = dbv(evalTF(H,z));subplot(212);semilogx(2*f*R,magH,fmt);sigma_H = dbv(rmsGain(H,0,0.5/R));plot([fstart 1], sigma_H*[1 1],fmt);plot([fstart 1], sigma_H*[1 1],'o');text( 0.15, sigma_H+5, sprintf('rms gain = %5.0fdB',sigma_H));if LiveDemo set(2,'position',[241 241 523 485]); changeFig(18,2,12);else fprintf(1,'paused\n');endpauseif LiveDemo set(2,'position',[239 526 450 200]); changeFig;endclcfprintf(1,'\t\tNTF Synthesis-- Bandpass Modulator\n\n');echo onorder = 8;R = 64;opt = 2;f0 = 0.125; % fs/8H = synthesizeNTF(order,R,opt,[],f0);echo offfigure(1); clfplotPZ(H)title('Bandpass NTF poles and zeros')if LiveDemo set(1,'position',[10 307 480 420]); changeFig(18,2,12);else fprintf(1,'paused\n');endpauseif LiveDemo set(1,'position',[9 526 200 200]); changeFig;endfigure(2); clff = [ linspace(0,f0-1/(2*R),50) linspace(f0-1/(2*R),f0+1/(2*R),100) linspace(f0+1/(2*R),0.5,50)];z = exp(J*2*pi*f);magH = dbv(evalTF(H,z));subplot(211);plot(f,magH);hold onG = zpk(zeros(1,order/2),H.p,1,1);G.k = 1/abs(evalTF(G,exp(J*2*pi*f0)));magG = dbv(evalTF(G,z));plot(f,magG,'r');axis([0 0.5 -100 10]);grid on;xlabel('Normalized frequency (1 \rightarrow fs)');ylabel('dB')title('Bandpass NTF/STF Magnitude Response')f = linspace(f0-0.3/R,f0+0.3/R); z = exp(J*2*pi*f);magH = dbv(evalTF(H,z));subplot(212);plot(2*R*(f-f0),magH);axis([-0.6 0.6 -100 -60]);grid onsigma_H = dbv( rmsGain(H,f0-0.25/R,f0+0.25/R) );hold on;semilogx([-0.5 0.5], sigma_H*[1 1]);plot([-0.5 0.5], sigma_H*[1 1],'o');text( -0.2, sigma_H+5, sprintf('rms gain = %5.0fdB',sigma_H));xlabel('Normalized frequency offset');ylabel('dB')if LiveDemo set(2,'position',[241 241 523 485]); changeFig(18,2,12);endpauseif LiveDemo set(2,'position',[239 526 450 200]); changeFig;end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -