zoukankan      html  css  js  c++  java
  • 《DSP using MATLAB》示例Example 9.7

    代码:

    %% ------------------------------------------------------------------------
    %%            Output Info about this m-file
    fprintf('
    ***********************************************************
    ');
    fprintf('        <DSP using MATLAB> Exameple 9.7 
    
    ');
    
    time_stamp = datestr(now, 31);
    [wkd1, wkd2] = weekday(today, 'long');
    fprintf('      Now is %20s, and it is %7s  
    
    ', time_stamp, wkd2);
    %% ------------------------------------------------------------------------
    
    I = 4; L = 5;
    %n = 0:2048; k1 = 256; k2 = k1+32; m = 0:(k2-k1);
    
    %% -----------------------------------------------------------------
    %%                             Plot
    %% -----------------------------------------------------------------  
    Hf1 = figure('units', 'inches', 'position', [1, 1, 8, 6], ...
    	'paperunits', 'inches', 'paperposition', [0, 0, 6, 4], ...
    	'NumberTitle', 'off', 'Name', 'Exameple 9.7');
    set(gcf,'Color','white'); 
    
    TF = 10;
    % (a) Full singal band alpha = 1
    I
    L
    alpha = 1; h = intfilt(I, L, alpha);
    fprintf('
      The Length of filter is %d 
    ', length(h) );
    
    [Hr, w, a, LL] = Hr_Type1(h); Hr_min = min(Hr); w_min = find(Hr == Hr_min);
    H = abs(freqz(h, 1, w)); Hdb = 20*log10(H/max(H)); min_attn = Hdb(w_min);
    
    subplot(2, 2, 1); 
    plot(w/pi, Hr, 'g', 'linewidth', 1.0); axis([0, 1, -1, 5]); grid on;
    xlabel('frequency in pi units'); ylabel('Amplitude'); 
    title('Amplitude Response:alpha = 1 ', 'fontsize', TF);
    set(gca, 'xtick', [0, 1/I, 1]); 
    set(gca, 'ytick', [0, I]);
    
    subplot(2, 2, 3); 
    plot(w/pi, Hdb, 'm', 'linewidth', 1.0); axis([0, 1, -50, 10]); grid on;
    xlabel('frequency in pi units', 'fontsize', 10); ylabel('Decibels'); 
    title(' Log-mag Response : alpha = 1 ', 'fontsize', TF);
    set(gca, 'xtick', [0, 1/I, 1]); 
    set(gca, 'ytick', [-50,  round(min_attn), 0]);
    
    % (b) Partial signal band alpha = 0.75
    I
    L
    alpha = 0.75; h = intfilt(I, L, alpha);
    
    fprintf('
      The Length of filter is %d 
    ', length(h) );
    
    [Hr, w, a, LL] = Hr_Type1(h); Hr_min = max(Hr(end/2:end)); w_min = find(Hr == Hr_min);
    H = abs(freqz(h, 1, w)); Hdb = 20*log10(H/max(H)); min_attn = Hdb(w_min);
    
    subplot(2, 2, 2); 
    plot(w/pi, Hr, 'g', 'linewidth', 1.0); axis([0, 1, -1, 5]); grid on;
    xlabel('frequency in pi units '); ylabel('Amplitude'); 
    title('Amplitude Response : alpha = 0.75 ', 'fontsize', TF);
    set(gca, 'xtick', [0, 1/I, 1]); 
    set(gca, 'ytick', [ 0, I]);
    
    subplot(2, 2, 4); plot(w/pi, Hdb, 'm', 'linewidth', 1.0); axis([0, 1, -50, 10]); grid on;
    xlabel('frequency in pi units'); ylabel('Decibels');
    title('Log-mag Response: alpha = 0.75', 'fontsize', TF);
    set(gca, 'xtick', [0, 1/I, 1]);
    set(gca, 'ytick', [-50, round(min_attn), 0]);
    

      运行结果:

          可见,两种α情况下,intfilt函数得到的脉冲响应h长度为2×I×L-1=2×4×5-1=39,即数组h(n)有39个元素。

          对于全频带alpha=1的情况,滤波器在通带和阻带都有更多的振荡,最小的阻带衰减是22dB。这是由过渡带很窄造成的。
    当alpha=0.75时,滤波器特征是很宽容的,因此它的响应最小阻带衰减34dB。

    另外注意到我们没有完全控制其他设计参数。这些细节本节随后会有更详细的讨论。

    牢记: 1、如果你决定做某事,那就动手去做;不要受任何人、任何事的干扰。2、这个世界并不完美,但依然值得我们去为之奋斗。
  • 相关阅读:
    android monkey测试学习
    学习python的*args和 **kwargs
    TotoiseSVN 使用参考文章
    脚本判断访问终端是什么内核的浏览器
    Git两分钟指南-学习入门参考
    访问WebServcie遇到配额不足的时候,请增加配额
    错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务 【解决】
    C# 如何获取错误所在行数
    mysql中如何使用一句话将一个表的数据导入到另一个表中:insert into ...select
    Windows Server 2008 MetaFile设置占用内存限制
  • 原文地址:https://www.cnblogs.com/ky027wh-sx/p/6905464.html
Copyright © 2011-2022 走看看