- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
抽取滤波的时域表示
x[k ]
v[k ]
↓M
y[k ]
v[ k ] = ∑ x[ n ]h[ k − n ]
n
y[ k ] = v[ kM ] = ∑ x[ n ]h[ Mk − n ]
n
抽样率变换中的滤波器
内插滤波器(interpolation 内插滤波器(interpolation filter)
jΩ
抽样率变换中的滤波器
抽取滤波器
x[k ]
↓M
X(ejΩ)
y[k ]
−π
−
π M
−
Ωm
M
Ωm
M
π M
π
Ω
若Ωm/M 为X(ejΩ)中需保留的最高频率分量,则可以有 中需保留的最高频率分量,
H (e
jΩ
1 Ω ≤ Ω m / M ) = 0 π / M ≤ Ω ≤ π
抽样率变换中的滤波器
抽取滤波器
fsam=12kHz。 。
↓ 30
解: 选Ωp=3π/100,Ωs=π/30 π , π
直接设计: 直接设计: 由 N = remezord([3/100 1/30],[1 0],[0.002 0.001]) 滤波器的阶数N 得FIR滤波器的阶数 =1827 滤波器的阶数 系统每秒的乘法数 RM,H=(N+1)×fsam/M=731200 ×
j
Ω
− 2π − 7π 6 − 5π 6 5π 6 7π 6 2π
x[k ]
↑5
x I [k ]
↓4
X I ( e jΩ )
y[k ]
Ω
− 7π 30 )
−
5π 30
5π 6π 30 30
7π 30
H (e
jΩ
Y ( e jΩ )
Ω
− 7π 30 − 5π 30 5π 30 7π 30
− 4π 6
Ω
等波纹FIR抽取滤波器。 等波纹 抽取滤波器。 抽取滤波器 1, Ω ≤ Ωm / M jΩ H (e ) = 2 πl − Ω m 2 πl + Ω m ≤Ω ≤ , l = 1, 2,L, M − 1 0,
M M
解:
通带为[0 Ωm=0.1π ×M=0.4π, 通带为[0,0.1π] [0, π] π π
数字信号处理
(Digital Signal Processing) Processing)
信号与系统系列课程组 国家电工电子教学基地
多速率信号处理基础
多速率系统中的基本单元 抽取滤波器和内插滤波器 多相分解 半带滤波器 两通道滤波器组
抽取滤波器和内插滤波器
抽取滤波器 抽取滤波的时域表示 内插滤波器 内插滤波器的时域表示 MATLAB计算抽样率变换 MATLAB计算抽样率变换
x[k ]
↑L
xI [k ]
H (z )
y[k ]ຫໍສະໝຸດ −ππL
L
可用理想低通滤波器滤除X 中的镜像分量 可用理想低通滤波器滤除 I(ejΩ)中的镜像分量 理想低通滤波器滤除 中的镜像
1 Ω < π / L H (e ) = 0 π / L ≤ Ω ≤ π
jΩ
抽样率变换中的滤波器
内插滤波器(interpolation 内插滤波器(interpolation filter)
4π 6
利用MATLAB 利用MATLAB 计算抽样率变换
(1) 抽取 y = decimate(x,M) decimate(x,M)
低通滤波器进行滤波。 用8阶Chebyshev I 型 IIR 低通滤波器进行滤波。 阶 为保证零相位,对序列进行正向和反向滤波。 为保证零相位,对序列进行正向和反向滤波。 N=255; x = firls(N,[0 0.25 0.25 0.5 0.5 1],[1 1 1 0 0 0]); x1=x(1:4:end); x2=decimate(x,4); w=linspace(0,pi,512); X=freqz(x,[1],w);X1=freqz(x1,[1],w); X2=freqz(x2,[1],w);
抽取FIR滤波器的分级设计 抽取FIR滤波器的分级设计 例: 试设计 试设计M=30, δp=0.002, δs=0.001(60dB)的抽取 的抽取FIR滤波器, 滤波器, 的抽取 滤波器
fsam=12kHz。 。
↓ 30
解:
分级设计
↓ 15
↓2
↓ 15
↓2
G(z)的指标: 的指标: δp,G=δp/2=0.001, δs,G= δs=0.001, Ωp,G=15Ωp=45π/100,Ωs,G=15Ωs=π/2 π , π F(z)的指标: 的指标: δp,F=δp/2=0.001, δs,F= δs=0.001, Ωp,F= Ωp=3π/100,Ωs,F=(2π−15Ωs)/15=3π/30 π , π π G(z)的阶数 Ng=130 G(z)每秒的乘法数 每秒的乘法数 RM,G=131×800/2=52400 × F(z)的阶数 NF=93 F(z)每秒的乘法数 每秒的乘法数 RM,F=94×12000/15=75200 × RM,H/ (RM,G+ RM,F)≈5.73
20lg|G(ej15Ω)F(ejΩ)| 0 -30 -60 d dB -90
-180 0
1
2
3
30Ω/π
4
5
6
7
8
9
x[k ]
↓M
y[k ]
更一般地, 更一般地,抽取滤波器的幅度响应可为
1, jΩ H (e ) = 0,
2 πl − Ω m M
Ω ≤ Ωm / M
≤Ω ≤
2 πl + Ω m M
, l = 1, 2,L, M − 1
抽样率变换中的滤波器
例:设信号 需保留的最高频率分量为 π,试设计 设信号x[k]需保留的最高频率分量为 需保留的最高频率分量为0.1π 试设计M=4, ,
抽样率变换中的滤波器
x 1 0.5 0 -0.5 -1 2 1 0 -1 0.4 0.3 0.2 0.1 0 0 10 20 30 40 50 60 0 5 10 15 20 y 25 30 35 40
0
10
20
30 error
40
50
60
抽取FIR滤波器的分级设计 抽取FIR滤波器的分级设计 例: 试设计 试设计M=30, δp=0.002, δs=0.001(60dB)的抽取 的抽取FIR滤波器, 滤波器, 的抽取 滤波器
(2) 内插 [y,h] = interp(x,L) interp(x,L)
使内插后的信号的均方误差最小来确定FIR滤波器。 滤波器。 使内插后的信号的均方误差最小来确定 滤波器 h: 所用 所用FIR的系数。 的系数。 的系数 N=255; L=4; x = firls(N,[0 0.5 0.5 1],[1 1 x1=zeros(1,L*length(x)); x1(1:L:end)=x; x2=interp(x,4); w=linspace(0,pi,512); X=freqz(x,[1],w); X1=freqz(x1,[1],w); X2=freqz(x2,[1],w);
抽样率变换中的滤波器
1 0]);
利用MATLAB 利用MATLAB 计算抽样率变换
(3) 分数倍抽样滤改变 [y,h] = resample(x,L,M); resample(x,L,M);
L:内插的倍数 M:抽样的倍数。 抽样的倍数。 离散信号x[k]是由抽样频率为 是由抽样频率为10Hz,试求出抽样频 例:离散信号 是由抽样频率为 试求出抽样频 率为15Hz的序列 的序列y[k]。 率为 的序列 。 f=0.35;N=40; fs=10;fs1=15; k=0:N-1;t=k/fs; k1=0:N*1.5-1;t1=k1/fs1; x=cos(2*pi*f*t); xr=cos(2*pi*f*t1); y=resample(x,3,2); subplot(3,1,3);stem(k1,abs(y-xr)); title('error');
抽样率变换中的滤波器
抽取滤波器
x[k ]
↓M
X(ejΩ)
y[k ]
−π
−
π M
π M
π
Ω
可用理想低通滤波器滤除X(e 中的 中的高频分量 可用理想低通滤波器滤除 jΩ)中的高频分量 理想低通滤波器滤除
1 Ω < π / M H (e ) = 0 π / M ≤ Ω ≤ π 但理想低通滤波器无法实现。 但理想低通滤波器无法实现。
M=3; [x,Fs,bits] = wavread('myheart'); x1=x(1:M:end); x2=decimate(x,M);
3倍抽取后的信号 倍抽取后的信号x1 倍抽取后的信号
3倍抽取滤波后的信号 倍抽取滤波后的信号x2 倍抽取滤波后的信号
抽样率变换中的滤波器
利用Matlab 利用Matlab 计算抽样率变换
内插滤波器的时域表示
y[ k ] = ∑ x I [ n ]h[ k − n ]
n
=
∑
n
x[n / L]h[k − n]
n是L的整数倍
= ∑ x[n]h[k − nL]
抽样率变换中的滤波器
分数倍抽样率变换) 抽样后的一序列x[k]的 例:(分数倍抽样率变换 已知用 分数倍抽样率变换 已知用4kHz抽样后的一序列 抽样后的一序列 的 频谱如图所示,试用数字的方法得出按 频谱如图所示,试用数字的方法得出按5kHz抽样后的序 抽样后的序 X (e Ω ) 列y[k]。 。
x = firls(511,[0 0.1 0.1 0.5 0.5 1],[1 1 1 0 0 0]); f=[0.1 0.4 0.6 0.9];a=[1 0 0];dev=[0.01 0.001 0.001]; %设计滤波器 设计滤波器 [N,fo,ao,w] = remezord(f,a,dev); h = remez(N,fo,ao,w); xd=filter(h,[1],x); y=xd(1:4:end); w=linspace(0,pi,512); mag=freqz(h,[1],w); subplot(3,1,1);plot(w/pi,20*log10(abs(mag))); xlabel('Normalized frequency'); ylabel('Gain, dB'); X=freqz(x,[1],w);Y=freqz(y,[1],w); subplot(3,1,2);plot(w/pi,(abs(X))); xlabel('Normalized frequency'); ylabel('magnitude');title('Spectrum of x'); Subplot(3,1,3);plot(w/pi,abs(Y)); xlabel('Normalized frequency'); ylabel('magnitude');title('Spectrum of y');