实验四 IIR 数字滤波器设计及在 FDM 复用信号滤波中的应用

试利用双线性变换法,设计Butterworth 低通数字滤波器,假设信号x(t)=sin(2*pi*f_1*t)+0.5cos(2*pi*f_2*t),其中f_1=5Hz,f_2=30Hz。要求通带波纹小于1dB,幅度衰减大于15dB,采样周期T=0.01s。

用间接设计方法设计数字低通DF的步骤:

(1)产生时域信号xt

要求给出xt的时域波形图。

(2)信号xt的频谱分析

确定采样频率和采样点数 N=64; Fs=64;对 xt 信号进行采样得到序列 xtnT。

要求给出 xt 的频谱图。

k=0:N-1;

wk=2*pi/N*k; %k 对应的数字频率

stem(wk/pi,abs(Xk)/max(abs(Xk))); %为避免幅度值随变换区间 N 变化的缺点,画图时可归一化幅度谱。

问题 1-1:观察 xt 的频谱图,给出信号 xt 的频率分量对应的数字频率。 提示:通带截止频率大致为 wp = 0.2p ,通带截止频率大致为 ws = 0.3p 。

(3)根据读出的数字滤波器的截止频率及已知的通带波纹、阻带衰减,利用双 线性变换法的频率转换形式得到模拟滤波器的频率。

问题 1-2:给出数字边界频率的双线性转换关系。

(4)IIR 数字滤波器的设计及实现

1)本实验采用 Butterworth 模拟滤波器设计来完成相应低通滤波器的设计, 具体可调用 buttord、butter 函数完成 DF 设计。

2)滤波实现 可调用滤波器实现函数 filter 来完成此功能。

要求 1:绘图显示低通滤波器的损耗函数曲线;

要求 2:显示滤波后的时域波形图,观察滤波效果。

相关代码:

% 步骤1:生成时域信号 xt
f1 = 5; % Hz
f2 = 30; % Hz
T = 0.01; % 采样周期

t = 0:T:1;
xt = sin(2*pi*f1*t) + 0.5*cos(2*pi*f2*t);

figure;
plot(t, xt);
title('时域信号 xt');
xlabel('时间 (s)');
ylabel('幅度');

% 步骤2:信号频谱分析
N = 64;
Fs = 1/T;

Xk = fft(xt, N);
k = 0:N-1;
wk = 2*pi/N * k;

figure;
stem(wk/pi, abs(Xk)/max(abs(Xk)));
title('信号频谱图');
xlabel('数字频率 (π rad/sample)');
ylabel('归一化幅度谱');

% 步骤3:双线性变换法得到模拟滤波器的频率
wp = 0.2 * pi;
ws = 0.3 * pi;

ap = tan(wp/2);
as = tan(ws/2);

% 步骤4:IIR 数字滤波器的设计及实现
[n, Wn] = buttord(ap, as, 1, 15);
[b, a] = butter(n, Wn, 'low');

% 损耗函数曲线
figure;
freqz(b, a);

% 滤波实现
filtered_signal = filter(b, a, xt);

% 时域波形图
figure;
subplot(2,1,1);
plot(t, xt);
title('原始信号');
xlabel('时间 (s)');
ylabel('幅度');

subplot(2,1,2);
plot(t, filtered_signal);
title('滤波后信号');
xlabel('时间 (s)');
ylabel('幅度');

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值