切比雪夫 I 型滤波器设计

切比雪夫I型滤波器的振幅平方函数为
在这里插入图片描述
在这里插入图片描述
在MATLAB中,cheblap函数用于设计切比雪夫 I 型低通滤波器。该函数的调用方法为

[z, p,k] = cheb1ap(n, rp)

其中,n为滤波器的阶数,rp为通带的幅度误差。返回值分别为滤波器的零点、极点和增益。

例 设计切比雪夫I型低通滤波器示例。

程序如下:

Wp=3*pi*4*12^3;
Ws=3*pi*12*10^3;
rp=1;
rs= 30;             %设计滤波器的参数
wp= 1;ws= Ws/Wp;    %对参数归一化
[N, wc] = cheb1ord(wp, ws,rp,rs, 's');  %计算滤波器阶数和阻带起始频率
[z,p,k] = cheb1ap(N,rs);                %计算零点、极点、增益
[B,A]= zp2tf(z,p,k);                    %计算系统函数的多项式
w = 0:0.02*pi:pi;
[h,w]= freqs(B,A,w);
plot(w* wc/wp, 20 * log10(abs(h)), 'k');grid; 
xlabel( '\lambda');ylabel( 'A(\lambda)/dB');

在这里插入图片描述
例 绘制切比雪夫I型低通滤波器的平方幅频响应曲线。

程序如下:

clear;
n= 0:0.02:4;        %频率点
for i=1:4           %4种滤波器
    switch i
        case 1; N= 1;
        case 2; N= 3;
        case 3; N=5;
        case 4; N=7;
    end
    Rp= 1;          %设置通滤波纹为1dB
    [z,p,k] = cheb1ap(N, Rp);   %设计Chebyshev I型滤波器
    [b,a]= zp2tf(z,p,k);        %将零点极点增益形式转换为传递函数形式
    [H,w]= freqs(b,a,n);        %按n指定的频率点给出频率响应
    magH2= (abs(H)).^2;         %给出传递函数幅度平方
    subplot(2,2,i);
    plot(w, magH2);
    title(['N= ' ,num2str(N)]);  %将数字N转换为字符串并与'N= '作为标题
    xlabel( 'w/wc'); 
    ylabel('切比雪夫I型|H(jw)|^2');
    grid on;
end

在这里插入图片描述

  • 5
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是利用MATLAB设计巴特沃斯、比雪夫I比雪夫II滤波器语音信号去噪的程序代码: ```matlab %% 读入语音信号 [x,fs] = audioread('speech.wav'); %% 滤波器设计 % 巴特沃斯滤波器 [b1,a1] = butter(6,1000/(fs/2),'high'); % 高通滤波器,截止频率为1000Hz [b2,a2] = butter(6,4000/(fs/2),'low'); % 低通滤波器,截止频率为4000Hz % 比雪夫I滤波器 [b3,a3] = cheby1(6,3,1000/(fs/2),'high'); % 高通滤波器,截止频率为1000Hz,通带波纹为3dB [b4,a4] = cheby1(6,3,4000/(fs/2),'low'); % 低通滤波器,截止频率为4000Hz,通带波纹为3dB % 比雪夫II滤波器 [b5,a5] = cheby2(6,30,1000/(fs/2),'high'); % 高通滤波器,截止频率为1000Hz,阻带衰减为30dB [b6,a6] = cheby2(6,30,4000/(fs/2),'low'); % 低通滤波器,截止频率为4000Hz,阻带衰减为30dB %% 滤波处理 % 巴特沃斯滤波器 y1 = filtfilt(b1,a1,x); % 高通滤波 y2 = filtfilt(b2,a2,y1); % 低通滤波 % 比雪夫I滤波器 y3 = filtfilt(b3,a3,x); % 高通滤波 y4 = filtfilt(b4,a4,y3); % 低通滤波 % 比雪夫II滤波器 y5 = filtfilt(b5,a5,x); % 高通滤波 y6 = filtfilt(b6,a6,y5); % 低通滤波 %% 绘制滤波前后的语音信号图像 t = (0:length(x)-1)/fs; % 时间轴 figure; subplot(2,1,1); plot(t,x); title('原始语音信号'); xlabel('时间/s'); ylabel('幅值'); subplot(2,1,2); plot(t,y2); title('滤波后语音信号'); xlabel('时间/s'); ylabel('幅值'); ``` 其中,`speech.wav`为需要去噪的语音信号文件,可以根据实际情况进行修改。在程序中,分别设计了巴特沃斯、比雪夫I比雪夫II的高通和低通滤波器,并对语音信号进行了滤波处理。最后,绘制了滤波前后的语音信号图像,便于观察滤波效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值