编写M文件程序:读入某雷达实际基带数据设计IIR滤波器进行地物杂波抑制分析滤波器长度对滤波效果的影响考虑实际工程中IIR滤波在DSP器件中需对系数有效位截取的问题;代码要求:包含绘出各个步骤的图像设计的窗函数为矩形窗Min-Max design 参数给出注释
% 读入雷达实际基带数据 data = load('radar_data.mat'); x = data.x;
% 设计IIR滤波器 % 滤波器阶数 order = 5; % 滤波器通带截止频率 fp = 0.1; % 滤波器阻带截止频率 fs = 0.2; % 滤波器通带最大衰减 Ap = 1; % 滤波器阻带最小衰减 As = 50;
% 根据Min-Max design方法计算IIR滤波器系数 wp = fp * 2; ws = fs * 2; Rp = 10^(-Ap/20); Rs = 10^(-As/20); [n, wn] = buttord(wp, ws, Rp, Rs, 's'); [b, a] = butter(n, wn, 'high', 's');
% 将滤波器系数限制在8位有效位 b = round(b * 2^7) / 2^7; a = round(a * 2^7) / 2^7;
% 对雷达数据进行滤波 y = filter(b, a, x);
% 绘制原始数据和滤波后的数据 figure; subplot(2,1,1); plot(x); title('原始数据'); subplot(2,1,2); plot(y); title('滤波后的数据');
% 分析滤波器长度对滤波效果的影响 N = [3, 5, 7, 9, 11]; figure; for i = 1:length(N) % 根据Min-Max design方法计算IIR滤波器系数 [b, a] = butter(N(i), wn, 'high', 's'); % 将滤波器系数限制在8位有效位 b = round(b * 2^7) / 2^7; a = round(a * 2^7) / 2^7; % 对雷达数据进行滤波 y = filter(b, a, x); % 绘制滤波后的数据 subplot(5,1,i); plot(y); title(['滤波器长度为', num2str(N(i))]); end
% 绘制滤波器的频率响应 figure; freqz(b, a); title('滤波器的频率响应');
% 绘制滤波器的单位脉冲响应 figure; impz(b, a); title('滤波器的单位脉冲响应')
原文地址: https://www.cveoy.top/t/topic/crmz 著作权归作者所有。请勿转载和采集!