关于IIR椭圆形滤波器
dsp吧
全部回复
仅看楼主
level 1
在做这个椭圆形滤波器,用的是iircas4函数,过滤出来是有杂波的,或者说是没有过滤好,求大佬帮我看一看,应该怎么改
2024年06月19日 07点06分 1
level 1
matlab代码如下
clc
fs = 25000; % 采样频率
wp = [4000 7000] / (fs/2); % 通带截止频率,单位是正规化频率
ws = [3000 8000] / (fs/2); % 阻带截止频率,单位是正规化频率
% 计算最小滤波器阶数和相应的截止频率
[n, wn] = ellipord(wp, ws , 3, 80);
% 设计带通滤波器
[b, a] = ellip(n, 3, 80, wn, 'bandpass');
% 绘制滤波器的频率响应
freqz(b, a, 512, 25000);
% 将传递函数形式转换为级联的二阶节形式
[s, g] = tf2sos(b, a);
% 对二阶节系数进行缩放和四舍五入
s1 = round(s / 4 * 32768);
% 按照 iircas4() 函数的要求重新排序二阶节矩阵的系数
k = [s1(:, 5), s1(:, 2), s1(:, 6), s1(:, 3)];
p=size(k);
q=p(1,1);
s4=k(1,:);
for t=2:q
s4=[s4,k(t,:)];
end
csvwrite('my_iir_bandpass1.txt', s4);
2024年06月19日 07点06分 2
1