zoukankan      html  css  js  c++  java
  • matlab滤波器的设计

    求出濾波器的階數以及 3dB 截止頻率後,可用相應的 Matlab 函數計算出實現傳遞函數
    的分子分母係數來。
    巴特沃斯型濾波器是通帶內最大平坦、帶外單調下降型的,其計算命令是:
    [b,a] = butter(n,Wn) % 計算數字低通或帶通情況
    [b,a] = butter(n,Wn,’ftype’) % 計算數字高通或帶阻情況
    [b,a] = butter(n,Wn,’s’) % 計算模擬低通或帶通情況
    [b,a] = butter(n,Wn,’ftype’,’s’)% 計算模擬高通或帶阻情況
    其中,對於數字濾波器,Wn 就是 3dB 歸一化截止頻率。對於模擬濾波器,Wn 則是未
    歸一化的角頻率(單位 rad/s),與 fn 的關係是 Wn=2*pi*fn。當截止頻率參數為 2 個元素的
    向量時,為計算帶通或帶阻濾波器,否則是計算高通或低通濾波器的。當 ftype 為 high 時為
    計算高通,當 ftype 為 stop 時為計算帶阻。對於數字濾波器而言,返回值 b,a 分別是傳遞
    函數 H(z) 的分子和分母多項式的係數矩陣。對於模擬濾波器則返回值 b,a 分別是傳遞函
    數 H(s) 的分子和分母多項式的係數矩陣。

    切比雪夫 1 型濾波器是通帶等波紋(Equiripple)、阻帶單調下降型的,其計算命令是:
    [b,a] = cheby1(n,Rp,Wn) % 計算數字低通或帶通情況
    [b,a] = cheby1(n,Rp,Wn,’ftype’) % 計算數字高通或帶阻情況
    [b,a] = cheby1(n,Rp,Wn,’s’) % 計算模擬低通或帶通情況
    [b,a] = cheby1(n,Rp,Wn,’ftype’,’s’) % 計算模擬高通或帶阻情況

    例子

    f_N=8000; % 採樣率
    f_p=2100; f_s=2500; R_p=3; R_s=25; % 設計要求指標
    Ws=f_s/(f_N/2); Wp=f_p/(f_N/2); % 計算歸一化頻率
    [n, Wn]=buttord(Wp,Ws,R_p,R_s); % 計算階數和截止頻率
    [b,a]=butter(n, Wn); % 計算H(z)
    figure(1);
    freqz(b,a, 1000, 8000) % 作出H(z)的幅頻相頻圖, freqz(b,a, 計算點數, 採樣率)
    subplot(2,1,1); axis([0 4000 -30 3])
    figure(2); % 第二種作圖方法
    f=0:40:4000; % 計算頻率點和頻率範圍
    z=exp(j*2*pi*f./(f_N)); %
    H_z=polyval(b,z)./polyval(a,z); % 計算相應頻率點處H(z)的值
    subplot(2,1,1); plot(f, 20*log10(abs(H_z))); % 幅頻特性
    axis([0 4000 -40 1]);
    xlabel(’頻率 Hz’);ylabel(’幅度 dB’);
    subplot(2,1,2); plot(f, angle(H_z)); % 相頻特性
    xlabel(’頻率 Hz’);ylabel(’相角 rad’);

  • 相关阅读:
    Redis的四种模式,单机、主从、哨兵、集群
    .NET 跨域问题
    C# 利用正则表达式获取富文本框中所有图片路劲
    ActiveMQ入门实例(.NET)
    ActiveMQ的使用以及应用场景
    关于消息队列的使用方法(RocketMQ)
    Redis系列 需要注意事项
    .NET:在线悲观锁、在线乐观锁、离线悲观锁、离线乐观锁代码示例
    C# 简单介绍Redis使用
    API Get跟Post 的区别?
  • 原文地址:https://www.cnblogs.com/lianjiehere/p/4142992.html
Copyright © 2011-2022 走看看