数字信号处理大作业汇总 下载本文

内容发布更新时间 : 2024/5/6 20:27:44星期一 下面是文章的全部内容请认真阅读。

数字信号处理大作业

题目一:

利用matlab设计模拟带通巴特沃斯滤波器,要求通带下、上截止频率分别为fhpl=4kHz,fhpu=6kHz,阻带下、上截止频率分别为fhsl=2kHz,fhsu=9kHz,通带最大衰减rp=1dB,阻带最小衰减rs=20dB。 问题分析:

(1)该题目中模拟带通滤波器指标:通带下截止频率 wpl=2*pi*fhpl,通带上截止频率wpu=2*pi*fhpu通带最大衰减rp=1dB;阻带下截止频率wsl=2*pi*fhsl,阻带上截止频率wsu=2*pi*fhsu;阻带最小衰减rs=20dB。 (2)计算模拟滤波器的阶N和3dB截止频率Wc。

[N,Wc]=buttord(wp,ws,rp,rs,'s'); 其中,wp=[wpl,wpu];ws=[wsl,wsu] (3)计算模拟滤波器系统函数 [Bs,As]=butter(N,Wc,'s');

(4)画图检验所设计出模拟滤波器是否满足指标要求。 原始MATLAB程序:

fhpl=4000;fhpu=6000;fhsl=2000;fhsu=9000;

wpl=2*pi*fhpl;wpu=2*pi*fhpu;wsl=2*pi*fhsl;wsu=2*pi*fhsu; wp=[wpl,wpu];ws=[wsl,wsu];rp=1;rs=20; [N,Wc]=buttord(wp,ws,rp,rs,'s'); [B,A]=butter(N,Wc,'s'); f=1:20:15000;w=2*pi.*f; [H,WH]=freqs(B,A,w); H=20*log10(abs(H)); plot(f/1000,H),grid on

xlabel('频率(KHz)');ylabel('幅度(dB)'); 结果图分析:

设计出的数字滤波器的幅频响应如上图所示。上下通带为4kHz和6kHz,上下阻带为1kHz和9kHz,通带最大衰减为1dB,阻带最大衰减为20dB。符合滤波器的设计指标。

题目二

希望通过对输入模拟信号采样后用数字带通滤波器提取所需要的信号。设系统的采样频率为8kHz,要求提取2000~2400Hz频段的信号,幅度失真小于1dB;滤除0~1600Hz频段和2800Hz以上频段的信号,要求衰减大于40dB。利用matlab工具箱函数,设计数字带通椭圆滤波器。 问题分析:

(1)根据技术要求,提出模拟滤波器的指标。

通带下截止频率fpl=2000Hz,通带上截止频率fpu=2400Hz,通带最大衰减rp=1dB.

阻带下截止频率fsl=1600Hz,阻带上截止频率fsu=2800Hz,阻带最小衰减rs=40dB.

(2)将模拟滤波器的指标转化为数字滤波器的指标。

通带下截止频率Wpl=2πfpl/fs=2π×2000/8000=0.5π (rad) 通带上截止频率Wpu=2πfpu/fs=2π×2400/8000=0.6π (rad) 阻带下截止频率Wsl=2πfsl/fs=2π×1600/8000=0.4π (rad) 阻带上截止频率Wsu=2πfsu/fs=2π×2800/8000=0.7π (rad) 阻带最大衰减rp=1dB,阻带最小衰减rs=40dB。

Wpl=0.5;Wpu=0.6;Wsl=0.4;Wsu=0.7;

Wp=[Wpl,Wpu];Ws=[Wsl,Wsu];Rp=1;Rs=40;

(3)计算椭圆数字滤波器的阶N和阻带边界频率Wso.

[N,Wso]=ellipord(Wp,Ws,Rp,Rs);

(4)用双线性变换法设计椭圆数字带通滤波器。 [Bz,Az]=ellip(N,Rs,Wso);

原始MATLAB程序:

fpl=2000;fpu=2400;fsl=1600;fsu=2800;fs=8000;

wpl=2*fpl/fs;wpu=2*fpu/fs;wsl=2*fsl/fs;wsu=2*fsu/fs; wp=[wpl,wpu];ws=[wsl,wsu];rp=1;rs=40; [N,wpo]=ellipord(wp,ws,rp,rs); [Bz,Az]=ellip(N,rp,rs,wpo,'s'); w=0:0.1:pi;[H,w]=freqz(Bz,Az,w); H=20*log10(abs(H)); plot(w/pi,H),grid on

xlabel('\\omega/\\pi');ylabel('|H(e^j^\\omega)|/dB'); 结果图分析: 当ω=0.5π,幅度为-41.5dB;ω=0.6π,幅度为-40.8dB;ω=0.4π,幅度为-42dB;ω=0.7π,幅度为-41.7dB。设计出的滤波器满足指标要求。

题目三

利用Matlab工具箱函数fir1,设计线性相位FIR数字低通滤波器,要求通带截止频率为20Hz,阻带截止频率为40Hz,通带最大衰减为0.1dB,阻带最小衰减为40dB,采样频率为200Hz。分别选用汉宁窗,汉明窗,布莱克曼窗和凯塞窗进行设计,显示所设计滤波器的单位脉冲响应h(n)的数据,并画出幅频响应特性曲线和相频响应特性曲线,请对每种窗函数的设计结果进行比较。 问题分析:

(1)根据技术要求,提出线性相位FIR数字低通滤波器的指标。

通带截止频率fpl=20Hz,通带最大衰减rp=0.1dB.阻带截止频率fsl=40Hz,阻带最小衰减rs=40dB.采样频率为200Hz

(2)计算过渡带宽度:wp = 2*pi*20/200; ws = 2*pi*40/200; b = ws - wp; 计算h(n)长度:n0 =ceil(t * pi / b) 确保n是奇数:n = n0 + mod(n0+1, 2);

计算理想低通滤波器通带截止频率:wc = (wp + ws )/2/pi;

(3)使用fir1函数产生线性相位FIR数字低通滤波器 h = fir1(n-1, wc, 'low', hanning(n));t=6.2; h = fir1(n-1, wc, 'low', hamming(n));t=6.6; h = fir1(n-1, wc, 'low', blackman(n));t=11; h = fir1(n, wc, 'low', kaiser(n+1, bata)); 原始MATLAB程序:

%%%汉宁窗%%% clear;clc;

wp = 2*pi*20/200; ws = 2*pi*40/200; b = ws - wp;rs = 40; n0 =ceil(6.2 * pi / b) n = n0 + mod(n0+1, 2); wc = (wp + ws )/2/pi;

h = fir1(n-1, wc, 'low', hanning(n)); x = 0:length(h)-1; figure(1)

subplot(2, 2, 1),stem(x, h, '.'); y = fft(h, 10000); y = y(1:5000); y = 20 * log10(y);

n = linspace(0, pi, 5000); subplot(2, 2, 2),plot(n/pi, y)

n0 = ceil(6.6 * pi / b) n = n0 + mod(n0+1, 2); wc = (wp + ws )/2/pi;

h = fir1(n-1, wc, 'low', hamming(n)); x = 0:length(h)-1; subplot(2, 2, 3) stem(x, h, '.'); y = fft(h, 10000); y = y(1:5000); y = 20 * log10(y);

n = linspace(0, pi, 5000); subplot(2, 2, 4) plot(n/pi, y)

%%%布莱克曼窗%%%% n0 = ceil(11 * pi / b) n = n0 + mod(n0+1, 2); wc = (wp + ws )/2/pi;

h = fir1(n-1, wc, 'low', blackman(n)); x = 0:length(h)-1; figure(2)

subplot(2, 2, 1) stem(x, h, '.');