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

📄 iir4.m

📁 有关iir滤波器设计中的系数产生和输入产生
💻 M
字号:
clear all;
close all;
% 低通滤波器指标
    Fp=4000; Fs=6000; Rp=1; Rs=40;
    Fsample=3E4;   % 100KHz采样率
% 低通滤波器数字频率(单位:pi rad):
    Wp=2*Fp/Fsample;
    Ws=2*Fs/Fsample;
% 椭圆滤波器阶数
    [N,Wn]=ellipord(Wp,Ws,Rp,Rs);
    N=2*ceil(N/2);
%  椭圆低通滤波器设计
    [b,a] = ellip(N,Rp,Rs,Wn);
    [h,omega] = freqz(b, a, 1024);
    
%  椭圆低通滤波器频响
    figure( );
    hh = plot(Fsample*omega/pi/2, 20*log10(abs(h) + eps));
    set(hh,'linewidth',3);%,'marker','o');
    grid on;
%    xlabel('omega/pi');
%    ylabel('Gain,dB');
    title('high filter');
%  椭圆低通滤波器直接型转级联型
    [ab,G]=tf2sos(b,a);
%  浮点型系数转整型系数
    kk=(2^15-1);    %取12bit系数,取掉一个符号位
    HHH=0;  %  整型系数椭圆低通滤波器频响
    for n=1:N/2
        BB(n,1:3)=[ab(n,1),ab(n,2),ab(n,3)];
        AA(n,1:3)=[ab(n,4),ab(n,5),ab(n,6)];
        A(n,1:3)=round(AA(n,1:3)/max(AA(n,1:3))*kk);% /kk;
        B(n,1:3)=round(BB(n,1:3)/max(BB(n,1:3))*kk);% /kk;
        %[H(n,1:1024),OMEGA]=freqz(B(n,1:3),A(n,1:3),1024);
        [H,OMEGA]=freqz(B(n,1:3),A(n,1:3),1024);
        HH(n,1:1024)=20*log10(abs(H')+eps);
        HHH=HH(n,1:1024)+HHH;
    end
%%  显示整型系数椭圆高通滤波器频响
    hold on;
    plot(Fsample*OMEGA/pi/2,HH,'green');
    hh=plot(Fsample*OMEGA/pi/2,HHH-max(HHH),'red');
    set(hh,'linewidth',2);
    hold off;
    AAA=A/kk;
    BBB=B/kk;
    xlabel('frequency in Hz'); ylabel('Decibels')
    %axis([labelg1 labelg2 -95 5]); 
    %set(gca,'XTickMode','manual','XTick',[0;0.333;0.667;1])
    %set(gca,'XTickMode','manual','XTick',[labelg1; 50; 62; 100;  120; 150])%0.15;48*4/1000;52*4/1000;0.25])
    %set(gca,'XTickLabelMode','manual','XTickLabels',['0';'1/3';'2/3';'1'])

    streamr = fopen('C:\Program Files\MATLAB704\work\IIR4.h','w');
    %fseek(streamr,740*2*(m+4),'bof')
    X=fprintf( streamr,'%6d    ',A );
    X=fprintf( streamr,'%6d /n' );
    X=fprintf( streamr,'%6d    ',B );
    X=fprintf( streamr,'%6d /n' );
    fclose( streamr );   
    

⌨️ 快捷键说明

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