利用matlab设计一切比雪夫Ⅰ型数字滤波器
时间: 2023-11-21 18:05:46 浏览: 106
步骤:
1. 确定滤波器的参数:通带截止频率、阻带截止频率、通带最大衰减、阻带最小衰减。
2. 根据参数计算出滤波器的阶数和零极点位置。
3. 利用zplane函数画出滤波器的极点和零点图。
4. 利用freqz函数计算出滤波器的幅频响应和相频响应。
5. 利用plot函数画出滤波器的幅频响应和相频响应。
6. 根据需要,利用filter函数对信号进行滤波。
示例代码:
% 设计一切比雪夫Ⅰ型数字滤波器
% 通带截止频率为0.2pi,阻带截止频率为0.3pi
% 通带最大衰减为1dB,阻带最小衰减为30dB
% 参数
wp = 0.2*pi; % 通带截止频率
ws = 0.3*pi; % 阻带截止频率
Rp = 1; % 通带最大衰减
Rs = 30; % 阻带最小衰减
% 计算阶数和零极点位置
[n, wn] = cheb1ord(wp, ws, Rp, Rs, 's');
[z, p, k] = cheby1(n, Rp, wn, 's');
% 画出极点和零点图
figure;
zplane(z, p);
title('极点和零点图');
% 计算幅频响应和相频响应
[h, w] = freqz(z, p, 1024);
% 画出幅频响应和相频响应
figure;
subplot(211);
plot(w/pi, 20*log10(abs(h)));
xlabel('频率/\pi');
ylabel('幅度/dB');
title('幅频响应');
subplot(212);
plot(w/pi, angle(h));
xlabel('频率/\pi');
ylabel('相位');
title('相频响应');
% 对信号进行滤波
x = randn(1, 1000); % 产生随机信号
y = filter(z, p, x); % 滤波
% 画出原始信号和滤波后的信号
figure;
subplot(211);
plot(x);
xlabel('时间');
ylabel('幅度');
title('原始信号');
subplot(212);
plot(y);
xlabel('时间');
ylabel('幅度');
title('滤波后的信号');
阅读全文