第一篇:数字信号处理课后习题Matlab作业
数字信号处理MATLAB
第1页
习题数字信号处理MATLAB习题
M1-1 已知g1(t)cos(6t),g2(t)cos(14t),g3(t)cos(26t),以抽样频率fsam10Hz对上述三个信号进行抽样。在同一张图上画出g1(t),g2(t)和g3(t)及抽样点,对所得结果进行讨论。
解:
第2页
从以上两幅图中均可看出,三个余弦函数的周期虽然不同,但它们抽样后相应抽样点所对应的值都相同。那么这样还原回原先的函数就变成相同的,实际上是不一样的。这是抽样频率太小的原因,我们应该增大抽样频率才能真实还原。如下图:f=50Hz
第3页
程序代码
f=10;
t=-0.2:0.001:0.2;g1=cos(6.*pi.*t);g2=cos(14.*pi.*t);g3=cos(26.*pi.*t);k=-0.2:1/f:0.2;h1=cos(6.*pi.*k);h2=cos(14.*pi.*k);h3=cos(26.*pi.*k);% subplot(3,1,1);
% plot(k,h1,'r.',t,g1,'r');% xlabel('t');% ylabel('g1(t)');% subplot(3,1,2);
% plot(k,h2,'g.',t,g2,'g');% xlabel('t');% ylabel('g2(t)');% subplot(3,1,3);
% plot(k,h3,'b.',t,g3,'b');% xlabel('t');% ylabel('g3(t)');
plot(t,g1,'r',t,g2,'g',t,g3,'b',k,h1,'r.',k,h2,'g.',k,h3,'b.')
第4页
xlabel('t');ylabel('g(t)');
legend('g1(t)','g2(t)','g3(t)');
M2-1 利用DFT的性质,编写一MATLAB程序,计算下列序列的循环卷积。
(1)g[k]={1,-3,4,2,0,-2,},h[k]={3,0,1,-1,2,1};(2)x[k]=cos(k/2),y[k]=3k,k=0,1,2,3,4,5。解:(1)循环卷积结果
6.0000-3.0000 17.0000-2.0000 7.0000-13.0000
程序代码
第5页
g=[1-3 4 2 0-2];h=[3 0 1-1 2 1];l=length(g);L=2*l-1;GE=fft(g,L);HE=fft(h,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y(k)')title('循环卷积')
(2)循环卷积结果
-71.0000-213.0000 89.0000 267.0000 73.0000 219.0000
第6页
程序代码
k=0:5;
x=cos(pi.*k./2);y=3.^k;l=length(x);L=2*l-1;GE=fft(x,L);HE=fft(y,L);y1=ifft(GE.*HE);for n=1:l
if n+l<=L
y2(n)=y1(n)+y1(n+l);
else
y2(n)=y1(n);
end end y2
stem(0:l-1,y2)xlabel('k')ylabel('y’(k)')title('循环卷积')
第7页
M2-2 已知序列x[k]cos(k/2N),|k|N
0,其他(1)计算序列DTFT的表达式X(ej),并画出N=10时,X(ej)的曲线。
(2)编写一MATLAB程序,利用fft函数,计算N=10时,序列x[k]的DTFT在m2m/N的抽样值。利用hold函数,将抽样点画在X(ej)的曲线上。
解:
(1)X(e)DTFT{x[k]}jkx[k]ejkkNcos(k/2N)eNjk
程序代码
N=10;k=-N:N;
x=cos(k.*pi./(2*N));W=linspace(-pi,pi,512);
第8页
X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
plot(W,abs(X))xlabel('W');ylabel('abs(X)');
(2)
程序代码
N=10;k=-N:N;
x=cos(k.*pi./(2*N));X_21=fft(x,21);L=-10:10;
W=linspace(-pi,pi,1024);X=zeros(1,length(W));for k=-N:N
X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end
第9页
plot(W,abs(X));hold on;
plot(2*pi*L/21,fftshift(abs(X_21)),'o');xlabel('W');ylabel('abs(X)');
M2-3 已知一离散序列为x[k]Acos0kBcos[(0)k]。用长度N=64的Hamming窗对信号截短后近似计算其频谱。试用不同的A和B的取值,确定用Hamming窗能分辨的最小的谱峰间隔wc的值。
解:f1=100Hz f2=120Hz时
2中cN
f2=140Hz时
第10页
f2=160Hz时
第11页
由以上三幅图可见
f2=140Hz时,各谱峰可分辨。则f又
wc2N
40Hz
且
wT2fT2401 800所以c=3.2(近似值)
程序代码
N=64;L=1024;
f1=100;f2=160;;fs=800;
A=1;B1=1;B2=0.5;B3=0.25;B4=0.05;T=1/fs;ws=2*pi*fs;k=0:N-1;
x1=A*cos(2*pi*f1*T*k)+B1*cos(2*pi*f2*T*k);x2=A*cos(2*pi*f1*T*k)+B2*cos(2*pi*f2*T*k);x3=A*cos(2*pi*f1*T*k)+B3*cos(2*pi*f2*T*k);x4=A*cos(2*pi*f1*T*k)+B4*cos(2*pi*f2*T*k);hf=(hamming(N))';x1=x1.*hf;x2=x2.*hf;x3=x3.*hf;x4=x4.*hf;
X1=fftshift(fft(x1,L));X2=fftshift(fft(x2,L));X3=fftshift(fft(x3,L));X4=fftshift(fft(x4,L));
W=T*(-ws/2+(0:L-1)*ws/L)/(2*pi);subplot(2,2,1);plot(W,abs(X1));title('A=1,B=1');xlabel('W');ylabel('X1');subplot(2,2,2);
第12页
plot(W,abs(X2));title('A=1,B=0.5');xlabel('W');ylabel('X2');subplot(2,2,3);plot(W,abs(X3));title('A=1,B=0.25');xlabel('W');ylabel('X3');subplot(2,2,4);plot(W,abs(X4));title('A=1,B=0.05');xlabel('W');ylabel('X4');
M2-4 已知一离散序列为x[k]cos0k0.75cos1k,0k63。其中, 02/15,12.3/15。
(1)对x[k]做64点FFT, 画出此时信号的谱。
(2)如果(1)中显示的谱不能分辨两个谱峰,是否可对(1)中的64点信号补0而分辨出两个谱峰。通过编程进行证实,并解释其原因。
解:(1)
第13页
程序代码
W0=2*pi/15;W1=2.3*pi/15;N=64;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x);
plot(k/N,abs(X));grid on;
title('64点FFT');
(2)
第14页
第15页
由以上三幅图看出:不能对(1)中的64点信号补零而分辨出两个谱峰,这样的方法只能改变屏幕分辨率,但可以通过加hamming窗来实现对谱峰的分辨。程序代码
W0=2*pi/15;W1=2.3*pi/15;N=64;L=1024;k=0:N-1;
x=cos(W0*k)+0.75*cos(W1*k);X=fft(x,L);
plot((0:L-1)/N,abs(X));grid on;
title('1024点FFT');
M2-5 已知一连续信号为x(t)=exp(-3t)u(t),试利用DFT近似分析
第16页
其频谱。若要求频率分辨率为1Hz,试确定抽样频率fsam、抽样点数N以及持续时间Tp。
解:
本题使用矩形窗,则Nfsamfsam1fsam,Tp1 f1f
第17页
由以上三幅图可以看出当fsam越来越大时,近似值越来越接近
第18页
于实际值。即fsam越大拟合效果越好,造成的混叠也是在可以允许的范围内。程序代码
fs=100;ws=2*pi*fs;Ts=1/fs;N=fs;
x=exp(-3*Ts*(0:N-1));y=fft(x,N);l=length(y);
k=linspace(-ws/2,ws/2,l);
plot(k,Ts*fftshift(abs(y)),'b:');hold on;
w=linspace(-ws/2,ws/2,1024);y1=sqrt(1./(9+w.^2));plot(w,y1,'r')
title('fs=100Hz时的频谱')legend('近似值','实际值);
M2-6 试用DFT近似计算高斯信号g(t)exp(dt2)的频谱抽样值。
π2通过和频谱的理论值G(j)exp()比较,讨论如何根据时域的信
d4d号来恰当地选取截短长度和抽样频率使计算误差能满足精度要求。
解:
第19页
第20页
由以上三幅图可以看出:
当时域截取长度相同时,抽样间隔越小时误差越小,当抽样间隔一定时,时域截取长度越长,误差越小。当取抽样间隔为1S,时域截取长度为2S时,误差较大,绝对误差在0.5左右;当抽样间隔为0,5S,时域截取长度为2S时,误差比间隔为1S时小,绝对误差不大于0.2;当抽样间隔为0.5S时域截取长度为4S时,误差更小,绝对误差不大于0.04。因为时域截取长度越长,保留下来的原信号中的信息越多,抽样间隔越小,频谱越不容易发生混叠,所以所得频谱与理论值相比,误差更小。
程序代码
Ts=0.5;N=4;N0=64;
k=(-N/2:(N/2))*Ts;
第21页
x=exp(-pi*(k).^2);X=Ts*fftshift(fft(x,N0));
w=-pi/Ts:2*pi/N0/Ts:(pi-2*pi/N0)/Ts;XT=(pi/pi)^0.5*exp(-w.^2/4/pi);subplot(2,1,1)
plot(w/pi,abs(X),'-o',w/pi,XT);xlabel('omega/pi');ylabel('X(jomega)');
legend('试验值','理论值');
title(['Ts=',num2str(Ts)subplot(2,1,2)plot(w/pi,abs(X)-XT)ylabel('实验误差')
xlabel('omega/pi');
'N=',num2str(N)]);第22页
' '
第二篇:《数字信号处理(第四版)》部分课后习题解答
Chapter 9 9.1 Develop a lowpass IIR digital filter using Butterworth Approximation with the following specifications: passband egde frequency at Fp = 100 Hz, stopband edge frequency at Fs = 600 Hz, passband ripple ap = 1 dB, minimum stopband attenuation as = 32 dB, and sampling frequency FT = 2 kHz.9.2 Develop a highpass IIR digital filter using Butterworth Approximation with the following specifications: passband egde frequency at Fp = 600 Hz, stopband edge frequency at Fs = 100 Hz, passband ripple ap =1 dB, minimum stopband attenuation as = 32 dB, and sampling frequency FT = 2 kHz.
第三篇:MATLAB实现数字信号处理
数字信号处理
说 明 书
目录
一.摘要…………………………………3 二.课程设计目的………………………3 三.设计内容……………………………3 四.设计原理……………………………4 4.1.语音信号的采集…………………………….4 4.2.滤波器……………………………………….4 4.21.IIR滤波器原理…………………………………….4 4.22.FIR滤波器原理………………………………………5 五.设计步骤……………………………6 5.1录制女音………………………………………6 5.2采样语音信号并画出时域波形和频谱图……7 5.3采用双线性变换法设计IIR滤波器…………10 5.4窗函数法设计FFR滤波器………………......12 5.5用IIR滤波器对信号进行滤波………………14 5.6用FIR滤波器对信号进行滤波………………16 5.7男女声语音信号频谱特点分析………………19 5.8有背景噪声的信号分析………………………20 六.心得体会…………………………….22 七.参考文献…………………………….23
一.摘要:
这次课程设计的主要目的是综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB或者DSP开发系统作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。通过对声音的采样,将声音采样后的频谱与滤波。
MATLAB全称是Matrix Laboratory,是一种功能强大、效率高、交互性好的数值和可视化计算机高级语言,它将数值分析、矩阵运算、信号处理和图形显示有机地融合为一体,形成了一个极其方便、用户界面友好的操作环境。经过多年的发展,已经发展成为一种功能全面的软件,几乎可以解决科学计算中所有问题。MATLAB软件还提供了非常广泛和灵活的用于处理数据集的数组运算功能。
在本次课程设计中,主要通过MATLAB来编程对语音信号处理与滤波,设计滤波器来处理数字信号并对其进行分析。
二.课程设计目的:
综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
三.设计内容:
内容:录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数 法和双线性变换法设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;换一个与你性别相异的人录制同样一段语音内容,分析两段内容相同的语音信号频谱之间有什么特点;再录制一段同样长时间的背景噪声叠加到你的语音信号中,分析叠加前后信号频谱的变化,设计一个合适的滤波器,能够把该噪声滤除。
四.设计原理:
4.1.语音信号的采集
熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数,在MATLAB环境中,有关声音的函数有:
a:y=wavrecord(N,fs,Dtype);利用系统音频输入设备录音,以fs为采样频率,默认值为11025,即以11025HZ进行采样。Dtype为采样数据的存储格式,用字符串指定,可以是:‘double’、‘single’、’int16’、‘int8’其中只有int8是采用8位精度进行采样,其它三种都是16位采样结果转换为指定的MATLAB数据;
b:wavplay(y,fs);利用系统音频输出设备播放,以fs为播放频率,播放语音信号y;
c:wavwrite((y,fs,wavfile);创建音频文件; d:y=wavread(file);读取音频文件;
关于声音的函数还有sound();soundsc();等。4.2滤波器: 4.21.IIR滤波器原理
冲激响应不变法是使数字滤波器在时域上模拟滤波器,但是它们的缺点是产生频率响应的混叠失真,这是由于从s平面到z平面是多值的映射关系所造成的。
双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。为了克服多值映射这一缺点,我们首先把整个s平面压缩变换到某一中介的s1平面的一条横带里,再通过变换关系将此横带变换到整个z平面上去,这样就使得s平面与z平面是一一对应的关系,消除了多值变换性,也 就消除了频谱混叠现象。
双线性法设计IIR数字滤波器的步骤:
1)将数字滤波器的频率指标{ k}由Wk=(2/T)*tan(wk),转换为模拟滤波器的频率指标{k}.2)由模拟滤波器的指标设计H(s).3)由H(s)转换为H(z)21z1H(z)H(s)sT1z1
4.22.FIR滤波器原理
FIR滤波器与IIR滤波器特点不同,IIR滤波器的相位是非线性的,若需线性相位则要采用全通网络进行相位校正。而有限长单位冲激响应(FIR)数字滤波器就可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。
由于FIR系统的冲激响应就是其系统函数各次项的系数,所以设计FIR滤波器的方法之一可以从时域出发,截取有限长的一段冲激响应作为H(z)的系数,冲激响应长度N就是系统函数H(z)的阶数。只要N足够长,截取的方法合理,总能满足频域的要求。这种时域设计、频域检验的方法一般要反复几个回合,不像IIR DF设计靠解析公式一次计算成功。给出的理想滤波器频率响应是,它是w的周期函数,周期
由傅立叶反变换导出,即
hd(n)1Hd(ejw)ejwndw2,再将hd(n)与窗函数,因此可展开成傅氏级数w(n)相乘就可以得到h(n)。、的计算可采用傅氏变换的现成公式和程序,窗函数也是现成的。但整个设计过程不能一次完成,因为窗口类型和大小的选择没有解析公式可一次算,整个设计可用计算机编程来做。
窗函数的傅式变换W(ejω)的主瓣决定了H(ejω)过渡带宽。W(ejω)的旁瓣大小和多少决定了H(ejω)在通带和阻带范围内波动幅度,常用的几种窗函数有:
矩形窗
w(n)=RN(n);
Hanning窗
;
Hamming窗
;
Blackmen窗
;
Kaiser窗。
式中Io(x)为零阶贝塞尔函数。
五.设计步骤:
5.1录制女音:
利用MATLAB中的函数录制声音。function nvyin()fs=11025;
%采样频率
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
开始录音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);y=wavrecord(3*fs,fs,'double');
%录制声音3秒
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
录音结束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
播放录音');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];5 disp(str);wavplay(y,fs);
%播放录音
str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);disp('
播放录音结束');str=['@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'];disp(str);wavwrite(y,fs,'原女音');
%声音的存储
5.2采样语音信号并画出时域波形和频谱图
读取语音信号,画出其时域波形和频谱图,与截取后的语音信号的时域波形和频谱图比较,观察其变化。程序如下:
[x,fs,bits]=wavread('女音.wav');
%读取声音
N=length(x);
%计数读取信号的点数 t=(1:N)/fs;
%信号的时域采样点 f0=fs/N;
%采样间隔 n=1:N/2;
%取信号的一半 figure(1);subplot(2,2,1);
%把画图区域划分为2行2列,指定第一个图 plot(t, x);
%画出声音采样后的时域波形 title('原女音信号的时域波形');
%给图形加注标签说明 xlabel('时间/t');ylabel('振幅/A');grid;
%添加网格
y=fft(x);
%对信号做N点FFT变换 k=(n-1)*f0;
%频域采样点
subplot(2,2,3);
%把画图区域划分为2行2列,指定第三个图 plot(k,abs(y(n)));
%绘制原始语音信号的幅频响应图 title('FFT变换后声音的频谱特性');
%给图形加注标签说明 xlabel('频率/Hz');ylabel('幅值/A');grid;
%添加网格
subplot(2,2,4);
%把画图区域划分为2行2列,指定第四个图 if y~=0
%判断指数是否为0
plot(k,20*log10(abs(y(n))));
%画信号频谱的分贝图 end xlabel('Hz');ylabel('振幅/分贝');title('FFT变换后声音的频谱特性');grid;
%添加网格
%实际发出声音落后录制动作半拍的现象的解决 siz=wavread('女音.wav','size');x1=wavread('女音.wav',[3500 32076]);
%截取语音信号 N=length(x1);
%计数读取信号的点数 t=(1:N)/fs;
%信号的时域采样点 f0=fs/N;
%采样间隔 n=1:N/2;
%取信号的一半
figure(2);subplot(2,2,1);
%把画图区域划分为2行2列,指定第一个图 plot(t,x1);
%画出声音采样后的时域波形 title('截取后女音信号的时域波形');
%给图形加注标签说明 xlabel('时间/t');ylabel('振幅/A');grid;
%添加网格
y1=fft(x1);
%对信号做N点FFT变换
subplot(2,2,3);
%把画图区域划分为2行2列,指定第三个图 k=(n-1)*f0;
%频域采样点
plot(k,abs(y(n)));
%绘制原始语音信号的幅频响应图 title('FFT变换后声音的频谱特性');
%给图形加注标签说明 xlabel('频率/Hz');ylabel('幅值/A');grid;
%添加网格
subplot(2,2,4);
%把画图区域划分为1行2列,指定第二个图 if y1~=0
%判断指数是否为0
plot(k,20*log10(abs(y1(n))));
%画信号频谱的分贝图 end xlabel('Hz');ylabel('振幅/分贝');title('FFT变换后声音的频谱特性');grid;
%添加网格
原女音信号的时域波形10.5A/幅0振-0.5-10123时间/tFFT变换后声音的频谱特性FFT变换后声音的频谱特性30050A200贝/值分/幅0幅100振00200040006000-***频率/HzHz 截取后女音信号的时域波形10.5振幅/A0-0.5-10123FFT变换后声音的频谱特性50时间/tFFT变换后声音的频谱特性300200振幅/分贝幅值/A01000020004000频率/Hz6000-5002000Hz40006000
结果分析:
由原女音信号的时域波形可知录取开始时实际发出声音大概落后3500个采样点,我们把前3500点去除即可解决实际发出声音落后录制动作半拍的现象。由原女音的的频谱图和截取后声音的频谱图可看出,对声音的截取并不会影响它们频谱分布。
5.3采用双线性变换法设计IIR滤波器:
人的声音频率一般在(1~~4)kHZ之间,则我们只需要设计一个带通滤波器即可滤去声音频带以外的无用噪声,得到比较清晰的声音。根据声音的频谱图分析,设计一个带通滤波器性能指标如下:
fp1=1000 Hz,fp2=3000 Hz,fsc1=500 Hz,fsc2=3500Hz,As=100dB,Ap=1dB,fs=10000 程序如下:
%iir带通的代码: %w=2*pi*f/fs Ap=1;
%通带波纹系数
Az=100;
%最小阻带衰减
wp=[0.2 0.6];
%归一化通带数字截止频率 wz=[0.1 0.7];
%归一化阻带数字截止频率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估计契比雪夫I型滤波器阶数 [b,a]=cheby1(N,Ap,wn);
%N指定滤波器阶数,wn归一化
截 %止频率,Ap通带波动
[h,w]=freqz(b,a);
%求数字滤波器的复频率响应 figure(1);subplot(2,1,1);plot(w/pi,abs(h));
%绘制数字滤波器的频谱图 grid;xlabel('omega/pi');ylabel('振幅(幅值)');title('契比雪夫Ⅰ型带通滤波器的幅频响应');subplot(2,1,2);if abs(h)~=0
%判断指数是否为0
plot(w/pi,20*log10(abs(h)));
%绘制数字滤波器频谱的分贝图 end grid;xlabel('omega/pi');ylabel('振幅(分贝)');title('契比雪夫Ⅰ型带通滤波器的幅频响应');契比雪夫Ⅰ型带通滤波器的幅频响应1振幅(幅值)0.5000.10.20.50.60.70.8/契比雪夫Ⅰ型带通滤波器的幅频响应0.30.40.910振幅(分贝)-200-400-60000.10.20.30.40.5/0.60.70.80.91
5.4窗函数法设计FFR滤波器
线性相位FIR滤波器通常采用窗函数法设计。窗函数法设计FIR滤波器的基本思想是:根据给定的滤波器技术指标,选择滤波器长度N和窗函数ω(n),使其具有最窄宽度的主瓣和最小的旁瓣。其核心是从给定的频率特性,通过加窗确定有限长单位脉冲响应序列h(n)。工程中常用的窗函数共有6种,即矩形窗、巴特利特(Bartlett)窗、汉宁(Hanning)窗、汉明(Hamming)窗、布莱克曼(Blackman)窗和凯泽(Kaiser)窗。
这次设计我采用的是布莱克曼来设计给定数字带通滤波器的参数如下: wp1=0.3pi, wp2=0.6pi, wz1=0.2pi, wz2=0.7pi, Ap=1dB, Az=70dB 程序如下:
Ap=1;
%通带波纹系数 Az=100;
%最小阻带衰减 fs=10000;
%采样频率 wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));
%---取两个过渡带中的小者 N0=ceil(2*5.5*pi/deltaW);
%---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);
%---确保N为奇数 hdWindow=ideallp(wc2,N)-ideallp(wc1,N);%理想带通滤波器 wdWindow=blackman(N);
%布拉克曼窗 hr=wdWindow.*hdWindow';
%点乘
n=0:N-1;
%阶数 subplot(2,2,1);stem(n,wdWindow);
%绘制布拉克曼窗时域波形 xlabel('时间');ylabel('振幅');title('布拉克曼窗');[H,W]=freqz(hr,1);
%求滤波器频率响应 subplot(2,2,3);plot(W/pi,abs(H))
%绘制滤波器频域波形 xlabel('omega/pi');ylabel('振幅');title('FIR带通滤波器幅频特性');subplot(2,2,4);
if abs(H)~=0
%判断指数是否为0
plot(W/pi,20*log10(abs(H)));
%画滤波器频谱的分贝图 end xlabel('omega/');ylabel('振幅/分贝');title('FIR带通滤波器幅频特性');grid;
%添加网格 %---ideallp()函数(非系统自有函数)在系统安装目录的WORK子目录ideallp.m function hd = ideallp(wc,N);% 理想低通滤波器的脉冲响应子程序 % hd = 点0 到 N-1之间的理想脉冲响应 % wc = 截止频率(弧度)% N = 理想滤波器的长度
tao =(N-1)/2;
% 理想脉冲响应的对称中心位置 n = [0:(N-1)];
% 设定脉冲响应长度 m = n-tao + eps;
% 加一个小数以避免零作除数
hd = sin(wc*m)./(pi*m);
% 理想脉冲响应
布拉克曼窗1振幅0.500406080时间FIR带通滤波器幅频特性500振幅/分贝20FIR带通滤波器幅频特性1.51振幅-50-100-15000.5/10.5000.5/1
5.5用IIR滤波器对信号进行滤波
用自己设计的IIR滤波器分别对采集的信号进行滤波,在Matlab中,IIR滤波器利用函数filter对信号进行滤波。程序如下: [x,fs,bits]=wavread('女音.wav');N=length(x);
%计数读取信号的点数 t=(1:N)/fs;
%信号的时域采样点 f0=fs/N;
%采样间隔 n=1:N/2;
%取信号的一半 y=fft(x);
%对信号做N点FFT变换 k=(n-1)*f0;
%频域采样点
subplot(2,1,1);
%把画图区域划分为2行1列,指定第一个图 plot(k,abs(y(n)));
%绘制原始语音信号的幅频响应图 title('滤波前女音的频谱特性');
%给图形加注标签说明 xlabel('频率/Hz');ylabel('幅值/A');grid;
%iir带通的代码:
Ap=1;
%通带波纹系数
Az=100;
%最小阻带衰减
wp=[0.2 0.6];
%归一化通带数字截止频率 wz=[0.1 0.7];
%归一化阻带数字截止频率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估计契比雪夫I型滤波器阶数
[b,a]=cheby1(N,Ap,wn);
%N指定滤波器阶数,wn归一化截止频率,Ap通带波动 x1=filter(b,a,x);
%对声音滤波 wavplay(x1)wavwrite(x1,'IIR滤波后女音.wav');N=length(x1);
%计数读取信号的点数 t=(1:N)/fs;
%信号的时域采样点 f0=fs/N;
%采样间隔 n=1:N/2;
%取信号的一半
y=fft(x1);
%对信号做N点FFT变换 k=(n-1)*f0;
%频域采样点
subplot(2,1,2);
%把画图区域划分为2行1列,指定第一个图 plot(k,abs(y(n)));
%绘制原始语音信号的幅频响应图 title('l滤波后女音的频谱特性');
%给图形加注标签说明 xlabel('频率/Hz');ylabel('幅值/A');grid;
滤波前女音的频谱特性300幅值/A***030004000频率/Hz滤波后女音的频谱特性500060006040幅值/A***0频率/Hz400050006000
结果分析:
由上面滤波前后的频谱图可看出,滤波器滤除了小于1000Hz和大于3400Hz的频谱成分。回放语音信号,由于低频和高频成分被滤除,声音变得较低沉。
5.6用FIR滤波器对信号进行滤波
用自己设计的FIR滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波 程序如下:
[x,fs,bits]=wavread('女音.wav');N=length(x);
%计数读取信号的点数
t=(1:N)/fs;
%信号的时域采样点 f0=fs/N;
%采样间隔 n=1:N/2;
%取信号的一半
y=fft(x);
%对信号做N点FFT变换 k=(n-1)*f0;
%频域采样点
subplot(2,1,1);
%把画图区域划分为2行1列,指定第一个图 plot(k,abs(y(n)));
%绘制原始语音信号的幅频响应图 title('滤波前女音的频谱特性');
%给图形加注标签说明 xlabel('频率/omega');ylabel('幅值/A');grid;
%FIR带通滤波器代码 fs=10000;wp1=0.3*pi;wp2=0.6*pi;wz1=0.2*pi;wz2=0.7*pi;wc1=(wz1+wp1)/2;wc2=(wz2+wp2)/2;deltaW=min((wp1-wz1),(wz2-wp2));
%---取两个过渡带中的小者 N0=ceil(2*5.5*pi/deltaW);
%---查表7-3(P342)布拉克曼窗 N=N0+mod(N0+1,2);
%---确保N为奇数 hdWindow=ideallp(wc2,N)-ideallp(wc1,N);wdWindow=blackman(N);hr=wdWindow.*hdWindow';x1=fftfilt(hr,x);
%对声音滤波 wavplay(x1)wavwrite(x1,'FIR滤波后女音.wav');N=length(x1);
%计数读取信号的点数 t=(1:N)/fs;
%信号的时域采样点 f0=fs/N;
%采样间隔 n=1:N/2;
%取信号的一半
y=fft(x1);
%对信号做N点FFT变换 k=(n-1)*f0;
%频域采样点
subplot(2,1,2);
%把画图区域划分为2行1列,指定第一个图 plot(k,abs(y(n)));
%绘制原始语音信号的幅频响应图 title('l滤波后女音的频谱特性');
%给图形加注标签说明 xlabel('频率/Hz');ylabel('幅值/A');grid;
滤波前女音的频谱特性300200幅值/A***004000频率/l滤波后女音的频谱特性500060006040幅值/A20005001000***03000频率/Hz***0
结果分析:
由上面滤波前后的频谱图可看出,滤波器滤除了小于1000Hz和大于3500Hz的频谱成分。和用IIR滤波器滤波一样,回放语音信号,由于低频和高频成分被滤除,声音变得较低沉。5.7男女声语音信号频谱特点分析
换一个男音录制同样一段语音内容,分析两段内容相同的语音信号频谱之间有什么特点。程序如下:
[x,fs,bits]=wavread('女音.wav');
%读取声音
N=length(x);
%计数读取信号的点数 t=(1:N)/fs;
f0=fs/N;
n=1:N/2;
y=fft(x);
k=(n-1)*f0;
subplot(2,1,1);
plot(k,abs(y(n)));
title('FFT变换后女音的频谱特性');xlabel('频率/omega');ylabel('幅值/A');grid;
[x,fs,bits]=wavread('明明.wav');
N=length(x);
t=(1:N)/fs;
f0=fs/N;
n=1:N/2;
y=fft(x);
k=(n-1)*f0;
subplot(2,1,2);
plot(k,abs(y(n)));
title('FFT变换后男音的频谱特性');xlabel('频率/omega');ylabel('幅值/A');grid;
%信号的时域采样点
%采样间隔
%取信号的一半
%对信号做N点FFT变换
%频域采样点
%把画图区域划分为2行1列,指定第一个图%绘制原始语音信号的幅频响应图
%给图形加注标签说明
%添加网格
%读取声音
%计数读取信号的点数
%信号的时域采样点
%采样间隔
%取信号的一半
%对信号做N点FFT变换
%频域采样点
%把画图区域划分为2行1列,指定第二个图%绘制原始语音信号的幅频响应图
%给图形加注标签说明
%添加网格
axis([0 6000 0 300]);
%改变横纵坐标便于比较频谱图
FFT变换后女音的频谱特性300200幅值/A***00频率/FFT变换后男音的频谱特性***200幅值/A***00频率/400050006000
结果分析:
通过比较上面女音频谱图和男音频谱图可知,男音的频谱集中在低频部分,高频成分底,谱线较平滑,声音听起来低沉。5.8有背景噪声的信号分析
从硬盘中把一段噪声(频谱能量集中在某个小范围内)叠加到语音信号中,分析叠加前后信号频谱的变化,设计一个合适的滤波器,能够把该噪声滤除; 程序如下:
z=wavread('女音.wav',[1 24000]);
%读取声音在1-24000之间 f=wavread('noise.wav',[1 24000]);x=z+f;wavplay(x);fs=11025;N=length(x);f0=fs/N;
%采样间隔
n=1:N;
%取信号的一半 y=fft(x,N);%对信号做N点FFT变换
k=(n-1)*f0;
%频域采样点
subplot(2,1,1);
%把画图区域划分为1行2列,指定第二个图 plot(k,abs(y(n)));
%绘制原始语音信号的幅频响应图 title('加噪声后声音的频谱特性');
%给图形加注标签说明 xlabel('频率/Hz');ylabel('幅值/A');grid;%添加网格
%iir带通滤波器的代码:
Ap=1;
%通带波纹系数
Az=70;
%最小阻带衰减
wp=[0.2 0.7];
%归一化通带数字截止频率 wz=[0.1 0.8];
%归一化阻带数字截止频率 [N,wn]=cheb1ord(wp,wz,Ap,Az);
%估计契比雪夫I型滤波器阶数
[b,a]=cheby1(N,Ap,wn);
%N指定滤波器阶数,wn归一化截止频率,Ap通带波动 x1=filter(b,a,x);
%对声音滤波 wavplay(x1);
wavwrite(x1,'滤除噪音后女音.wav');N=length(x1);f0=fs/N;
%采样间隔 n=1:N;
%取信号的一半
y1=fft(x1,N);
%对信号做fs点FFT变换
subplot(2,1,2);
%把画图区域划分为1行2列,指定第二个图 k=(n-1)*f0;
%频域采样点
plot(k,abs(y1(n)));
%绘制原始语音信号的幅频响应图 title('滤除噪声后声音的频谱特性');
%给图形加注标签说明 xlabel('频率/Hz');ylabel('幅值/A');grid;%添加网格
加噪声后声音的频谱特性3000幅值/A***0008000频率/Hz滤除噪声后声音的频谱特性***030幅值/A***000频率/Hz80001000012000
结果分析
观察加噪声后声音的频谱图可知,噪音频率主要在4000Hz处,只要我们设计一个,滤波器滤除大概在4000Hz的频谱即可,回放滤波后的语音信号,可证噪音基本滤除。
六.心得体会:
通过这次课程设计,让我对MATLAB的基本应用有了更深的了解,还有数字信号处理在MATLAB中的一些函数的用法。通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
在这次实验中,也遇到了很多问题,比如画信号频谱的分贝图时(20*log10(abs(y)))指数为零时的处理。滤波器的设计也花了好大的功夫,刚开始不会设计参数,一头雾水,通过同学的指导和讨论,得知通过观察信号的频谱图,看噪音频率集中在那一部分,设计滤波器把其滤除即可。可反复设置参数直到滤波后语音信号的效果好为止。
七.参考文献:
(1)《MATLAB LabVIEW SystemView》翁剑枫 叶志前 编著, 机械工业出版社;
(2)《MATLAB及在电子信息课程中的应用》陈怀琛 吴大正 高西全编著,电子工业出版社;
(3)《MATLAB在数字信号处理中的应用》(弟2版)薛年喜 编著,清华大学出版社;
(4)《MATLAB扩展编程》何强 何英
编著,清华大学出版社;(5)《MATLAB7简明教程》吴清 曹辉林 编著,清华大学出版社;(6)MATLAB5.3精要.编程及高级应用》程卫国 冯峰 王雪梅 刘艺 编著,机械工程出版社。
第四篇:数字信号处理习题解答1
第一章
3.判断下面的序列是否周期的(1).x(n)Acos(3n),A是常数78j(1n)(2).x(n)e85.试判断系统是否为线性时不变的(5)y(n)=x2(n)(7)y(n)=x(n)sin(n)6.试判断系统是否为因果稳定系统(4)y(n)=x(n-n)0x(n)(5)y(n)e第二章
1.求下列序列的傅里叶变换(7)x(2n)DTFT[x(2n)]=x(2n)e-jnn=-令m=2n,于是DTFT[x(2n)]==1212m=-,m为偶数x(m)e-jm/2mm=-[x(m)(1)-jm/2m=-x(m)]e-jm/2[x(m)e12[X(ej12m=-j(1)2e)]jmx(m)e-jm/2])X(e14.求出下列序列的z变换及收敛域(1)2-nu(n)X(z)n2znnu(n)zn
n2n11,|(2z)|111(2z)z,|z|121z2-3z-117.已知X(z)=,分别求:-1-22-5z+2z(1)收敛域0.5< | z | < 2对应的原序列x(n)(2)收敛域 | z | > 2对应的原序列x(n)解:X(z)=11--11-11-2z-12z
收敛域0.5< | z | < 2时:nx(n)=2nu(-n-1)+(1)u(n)2收敛域 | z | > 2时:nnx(n)=(1)u(n)-2u(n)221.已知线性因果网络用下面差分方程表示: y(n)=0.9y(n-1)+x(n)+0.9x(n-1)(1)求网络的系统函数及单位脉冲响应h(n)(2)写出网络频率响应函数H(ej)的表达式,并定性画出其幅频特性曲线解:1+0.9z-1(1)H(z)=,|z|>0.9-11-0.9z-1n-11+0.9z令F(z)=H(z)z=zn-1-11-0.9z当n1时,有极点z=0.9h(n)=Res[F(z),0.9]1+0.9z-1n-1=z(z-0.9)|z=0.91-0.9z-1=20.9n因为系统是因果系统,所以有h(n)=0,n<0当n=0时,有极点z1=0,z2=0.9h(n)=Res[F(z),0]+Res[F(z),0.9]1+0.9z-1-11+0.9z-1-1=zz|z=0+z(z-0.9)|z=0.91-0.9z-11-0.9z-1=-1+2=1h(n)=20.9nu(n-1)+(n)ej+0.9(2)H(e)=je-0.9(3)y(n)=h(n)*x(n)j=h(m)x(n-m)m=00n-m)=h(m)ej(m=0
=h(m)ej0ne-j0mm=0=ej0nH(ej0)=ej0nej0+0.9ej0-0.9
第三章
6.设下列x(n)长度为N,求下列x(n)的DFT(1)x(n)(n)(2)x(n)(nn0)0n0N
1(3)x(n)an(5)x(6)(4)x(n)ej0nRNn
ncos0nRNn
xnsin0nRNn(7)xnnRNn
100kN1
其他0kN1
其他解:(1)X(k)kn0j2Ne
(2)X(k)0kn0N1j2N1aNe2jk
(3)X(k)n0N1ae00kN1其他2knNj(02k)nN
(4)X(k)x(n)Wn0N1nkNen0N1j0neje
(5)x(n)cos(0n)RN(n)1j0n(eej0n)RN(n)211ej0N1ej0NX(k)j0kk21eWN1ej0WN
kk1ej0N1ej0WN11ej0N1ej0WN j0j0kk21eWN1eWNk1cos0Ncos0N1cos0WNk2k12cos0WNWN
(6)
1x(n)sin(0n)RN(n)(ej0nej0n)RN(n)
211ej0N1ej0NX(k)j0kk2j1eWN1ej0WNjNjkk1ej0N1ej0WN11e01e0WN
kk2j1ej0WN1ej0WNsin0N1sin0WNksin0Nk2k12cos0WNWN1zN
(7)设x1(n)RN(n),则X1(z)
1z1d1zN
x(n)nx1(n),则X(z)z1dz1z
X(z)zNzN11z1z21zNX(k)X(z)zWkN1zNW1WW1W12kNNkNkNk2NNz1zz1z
1z1WN
N11N12kNNkWN1kNkN
因为WN1,WN10
N1n0X(k)k0n123(N1)N(N1)221.(1)模拟数据以10.24KHz速率取样,若已知1024个取样的离散傅立叶变换。求频谱取样之间的频率间隔。
(2)以上数字数据经处理以后又进行了离散傅立叶反变换,求离散傅立叶反变换后抽样点的间隔为多少?整个1024点的时宽为多少?
10240Hz10Hz
10241s97.66s(2)抽样点的间隔
T10.24103整个1024点的时宽
T97.661024ms100ms 解:(1)频率间隔
F第四章
1.如果一台通用计算机的速度为平均每次复数乘法需要50us,每次复数加法需要5us。用它来计算N=512点DFT,问直接计算需要多少时间,用FFT计算需要多少时间?照这样计算,用FFT进行快速卷积对信号进行处理时,估算可实现实时处理的信号最高频率。解:
(1)512点直接DFT计算的时间: 复数乘法:N=512x512x50us=13.1072s 复数加法:N(N-1)=512x511x5us=1.308s 512点直接DFT计算的时间=13.1072s+1.308s=14.4152s(2)用FFT计算的时间:
复数乘法:N0.5x512x9x50us=0.1152s 2log2N=复数加法:Nlog2N=512x9x5us =0.023s 用FFT计算的时间=0.1152s+0.023s=0.1382s(3)用FFT进行快速卷积对信号处理时间: 假设IFFT也用FFT程序计算,则在实时计算中使用的时间是两次FFT时间(h(n)的FFT计算按照事先计算好存储备用),外加一次512点的复数乘法:
用FFT进行快速卷积对信号处理时间=2 x 0.1382s +512x50us = 0.302s 实时处理时,信号采样的最高采样频率:210.302512=1695.36Hz 信号的最高频率=1695.36/2=847.68Hz 7.某运算流图如图所示,问:
(1)图示是按时间还是按频率抽取的FFT?(2)把图示中未完成的系数和线条补充完整。解:
(1)分析图示的流图结构,发现其中基本的蝶形运算单元是先加减后乘系数的,因此是按频率抽取的基2FFT x(0)x(2)-1 x(1)
-1 x(3)-1(2)第五章
6.用脉冲响应不变法及双线性变换法将模拟传递函数HasX(0)X(1)
W04
WW04
X(2)
W14
-1 04
X(3)
3s1s3转变为数字传递函数H(z),采样周期T0.5。
解:Ha(s)3113();ha(s)(ete3t)u(t)2s1s323h(n)T(enTe3nT)u(n),代入T0.523(en2e3n2)u(n)43113(1e32z1)(1e12z1)H(z)()12132141ez4(1e12z1)(1e32z1)1ez3(e12e32)z10.2876z1123212241(ee)zez10.829z10.135z2(2)双线性变换H(z)Ha(s)T1z121z1s3s24s3s41z11z131z121z116()163111z1z3(12z1z2)36z13z21632z116z21616z236z13z23526z13z20.08750.1714z10.0857z210.7429z10.0857z2MATLAB程序及运算结果如下:%脉冲不变法、双线性变换法;b[003];a[143];3(1z1)216(1z1)216(1z1)(1z1)3(1z1)2
[bz1az1]impinvar(b,a,2)%脉冲不变法bz1分子系数az1分母系数;[bz2az2]bilinear(b,a,2)%s双线性变换法bz2分子系数az2分母系数;结果:
bz1=0
0.2876
0
az1=1.0000
-0.8297
0.1353
bz2=0.0857
0.1714
0.0857
az2=1.0000
-0.7429
0.0857 7.用脉冲响应不变法及双线性变换法将模拟传递函数Has3转变为数字传递函数H(z),采样周期2ss1T2。
解:(1)脉冲响应不变法Ha(s)111s2s1(s12)234(s12)2(32)2A1s12j(32)1s12j(32)*s12j(32)A2s12j(32)1j31j3T(12j(32)T1A1j3j3)将T2代入A2A1H(z)1s12j(32)j31e(T(12j(32)Ts12j(32)1ez22e1sin3z10.8386z1121122312ecos3zez10.1181z0..135z其中:sin3sin3180./0.987cos3cos3180./0.1606(2)双线性变换H(z)Ha(s)11z11z1z1s1s2s1s1z11z11z121z1()1111z1z(12z1z2)12z1z21221212zz1z12zz3z20.33330.6667z10.3333z210.3333z2(1z1)2(1z1)2(1z1)(1z1)(1z1)2
MATLAB程序及运算结果如下:%脉冲不变法、双线性变换法;b[001];a[111];[bz1az1]impinvar(b,a,0.5)%脉冲不变法bz1分子系数az1分母系数;[bz2az2]bilinear(b,a,0.5)%s双线性变换法bz2分子系数az2分母系数;
结果:
bz1=0
0.8386
0
az1=1.0000
0.1181
0.1353
ba2=0.3333
0.6667
0.3333 az2=1.0000
0
0.3333 10.设有一模拟滤波器Ha(s)
1,采样周期T2,用双线性变换法将其转换为数字系统函数H(z)。
s2s1解
由变化公式
1z1
sc 11z及c2,T2,可得 T1z1
s
1z1所以
H(z)Ha(s)1z11z1
s
=
11z121z1()()1111z1z
(1z1)2
=
3z218.用双线性变换法设计巴特沃兹数字高通滤波器,要求通带边界频率为0.8rad,通带最大衰减为3dB,阻带边界频率为0.5rad,阻带最小衰减为18dB。
解:已知p0.8rad,s0.5rad,p3dB,s18dB
(1)将数字高通滤波器的边界频率转换为相应的模拟高通滤波器Ha(s)的边界频率。(令T=2)
phtanp2tan0.80.50.006981,shtanstan0.004363 222(2)将Ha(s)的指数转换为模拟低通归一化原型滤波器G(p)的指标
p1,p3dB;sphsh1.6,s18dB
设计程序:
% 调用函数buttord,butter,lp2hp和bilinear用双线性变换法设计巴特沃思数字高通滤波器程序: ex623.m
wp=1;ws=1.6;rp=3;as=18;
[N,wc]=buttord(wp,ws,rp,as,’s’);[Bap,Aap]=butter(N,wc,’s’);[BHP,AHP]=lp2hp(Bap,Aap,1.6);[Bz,Az]=bilinear(BHP,AHP,0.5);% N,Bz,Az为所设计巴特沃思数字高通滤波器的阶数和系统函数; 运行结果:
N=5
Bz=[0.0165-0.0824 0.1648-0.1648 0.0824-0.0165]
Az=[1.0000 1.2604 1.1914 0.5375 0.1505 0.0166]
19.设计巴特沃兹数字带通滤波器,要求通带范围为0.25rad0.45rad,通带最大衰减为3dB,阻带范围为00.15rad和0.55radrad,阻带最小衰减为15dB。解:(1)确定数字带通滤波器性能
,10.25rad,s20.55rad,s10.15rad u0.45rad通带内最大衰减p3dB,阻带内最小衰减s15dB(2)确定模拟滤波器性能。若T=2s
u2tanutan0.2250.854r1ad/s T2
12tan1tan0.1250.414r2ad/s T2
s22tans2tan0.2751.170r8ad/s T2
s12tans1tan0.0750.2401rad/s T2u10.5948rad/s,通带心频率0带宽Bu10.4399将频率对B归一化,得到相应归一化带通边界频率:
uu1.941,6110.9416,s2s22.6615,BBBs10.5458,0u11.3521 B
s1(3)由归一化带通性能确定相应模拟归一化低通性能
s2202
归一化阻带截频率为s1.9746
s2
归一化通带截频率为p1,p3dB,s18dB(4)设计模拟归一化低通G(p)
s10p1100.31
ksp,1.9746 0.1266sp0.1s1.8p101101
N
取N=3.查表得,G(p)0.1lgksplgsplg0.12663.04
lg1.97461p32p22p1
(5)频率变换,将G(p)转换成模拟带通Ha(s)HasG(p)ps202
sBB3s3s2203222s20sB2s20s2B2s3B332
0.08s55432s60.879s81.448s40.707s60.512s40.110s10.0443(6)用双线性变换公式将Ha(s)转换成H(z)H(z)Hass21z1T1z1[0.01811.77641015z10.0543z24.4409z30.0543z42.77561015z50.0181z6][12.272z13.515z23.2685z32.3129z40.9628z50.278z6]1 第七章
7.画出下面系统函数的直接型结构图
2.52z10.6z2
H(z)
10.5z10.6z20.5z3解:
8.用级联方式画出下面系统的结构图
2(z1)(z21.414z1)
H(z)
(z0.3)(z20.9z0.81)21z111.414z1z2解:Hz
10.3z110.9z10.81z2
6.已知FIR的系统函数为
H(z)1(10.9z12.1z20.3z32.2z40.3z52.1z60.9z7z8)15
画出该系统的直接型结构。解:
9.已知FIR系统的16个频率采样值为:
H(0)12,H(1)3j3,H(2)1j,H(3)H(4)......H(13)0,H(2)1j,H(1)3j3,试画出其频率采样结构图,如果取r=0.95,画出其修正的采用实系数乘法的频率采样结构图。
1zN解:HzNHk,k1k01WNzN1N16
取修正半径r=0.95,将上式中互为复共轭得并联支路合并,得
1r16z16Hz16Hk11610.4401zk116k01rW16z15H010.95z1H110.95W1z116
H15H2H14 1512114110.95W16z10.95W16z10.95W16z110.4401z16
161266.5254z122.6870z1其结构图如1121211.3435z0.9025z11.7554z0.9025z10.95z下图:
第五篇:数字信号处理习题与答案
3.已知
单位抽样响应为
,通过直接计算卷积和的办法,试确定的线性移不变系统的阶跃响应。
9.列出下图系统的差分方程,并按初始条件
求输入为
时的输出序列,并画图表示。
解:系统的等效信号流图为:
解:根据奈奎斯特定理可知:
6.有一信号,它与另两个信号
和的
关系是:
其中
,已知,解:根据题目所给条件可得:
而
所以
8.若是因果稳定序列,求证:
证明:
∴
9.求的傅里叶变换。
解:根据傅里叶变换的概念可得:
13.研究一个输入为
和输出为的时域线性离散移不变系
统,已知它满足
并已知系统是稳定的。试求其单位抽样响应。解:
对给定的差分方程两边作Z变换,得:,为了使它是稳定的,收敛区域必须包括
即可求得
16.下图是一个因果稳定系统的结构,试列出系统差分方程,求系统函数。当
时,求系统单位冲激响应 , 画出系统零极点图和频率响应曲线。
由方框图可看出:差分方程应该是一阶的
则有
因为此系统是一个因果稳定系统;所以其收敛
17.设是一离散时间信号,其z变换为
求它们的z变换:,对下列信
号利用(a)
,这里△记作一次差分算子,定义为:
(b)(c)解:(a){
(b),(c)
由此可设
1.序列x(n)是周期为6的周期性序列,试求其傅立叶级数的系数。
~解: X(k)n05~x(n)W6nkn05j2nk~x(n)e6 j2k1412e6j22k10e6j23k8e6j24k6e6j25k10e6
计算求得:
~2.设x(n)R4(n),x(n)x((n))6.~~ 试求X(k)并作图表示~x(n),X(k)。~~~X(0)60;X(1)9j33;X(2)3j3;~~~X(3)0;X(4)3j3;X(5)9j33。
~解: X(k)n0x(n)W6nk~5n0j~x(n)e52nk6
~~~计算求得:X(0)4;X(1)j3;X(2)1;~~~ X(3)0;X(4)1;X(5)j3。jk1e3j2ke3ejk
n1,0n43.设x(n),h(n)R4(n2),0,其它n~令~x(n)x((n))6,h(n)h((n))4,~试求~x(n)与h(n)的周期卷积并作图。解:在一个周期内的计算
~~~y(n)~x(n)*h(n)h(nm)~~~y(n)~x(n)*h(n)h(nm)7x(n), 0n5设有两序列 x(n)0, 其他ny(n), 0n14 y(n)0, 其他n各作15点的DFT,然后将两个DFT相乘,再求乘积的IDFT,设所得结果为f(n),问f(n)的哪些点对应于x(n)y(n)应该得到的点。
解:序列x(n)的点数为N16,y(n)的点数为N215故又x(n)*y(n)的点数应为:NN1N2120f(n)为x(n)与y(n)的15点的圆周卷积,即L15所以,混叠点数为NL20155。用线性卷积结果 以15 为周期而延拓形成圆周卷积序列 f(n)时,一个周期 内在n0到n4(NL1)这5点处发生混叠,即f(n)中只有n5到n14的点对应于x(n)*y(n)应该得到的点。
8.已知x(n)是N点有限长序列,X(k)DFT[x(n)]。现将长度变成rN点的有限长序列y(n)x(n), 0nN-1y(n)0, NnrN-1试求DFT[y(n)](rN点DFT)与X(k)的关系。解: X(k)DFTxn Y(k)DFTy(n)
x(n)n0rN1N1j2nkeNN1n00kN1n0nky(n)WrNx(n)WnkrNn0N1j2πnkx(n)eNrkX()rklr(l0,1,N1)在一个周期内,Y(k)的抽样点数是X(k)的r倍(Y(k)的周期为Nr),相当于在X(k)的每两个值之间插入(r1)个其他的数值k(不一定为零),而当k为r的整数l倍时,Y(k)与X()相等。r 9已知x(n)是长为N点的有限长序列,X(k)DFT[x(n)]现将x(n)的每两点之间补进r1个零值点,得到一个长为rN点的有限长度x(n/r), nir, 0iN序列y(n), y(n)0, 其他n试求rN点DFT[y(n)]与X(k)的关系。解: X(k)DFTxn Y(k)DFTy(n)
N1n0n0nkx(n)WN,0kN1rN1nky(n)WrNN1i0x(ir/i0N1irkr)WrNx(i)WikN,0krN1Y(k)X((k))NRrN(k)Y(k)是将X(k)(周期为N)延拓r次形成的,即Y(k)周期为rN。
10.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT,试确定频谱抽样之间的频率间隔,并证明你的回答。
证明 : s2fssF00fsF002其中s是以角频率为变量 的 频谱的周期,0是频谱抽样之间的频谱间隔。fssNF00F0对于本题:fsNfs8KHzN512 8000F015.625Hz51211.设有一谱分析用的信号处理器,抽样点数必须为2的整数幂,假定没有采用任何殊数据处理措施,要求频率分辨力10Hz,如果采用的抽样时间间隔为0.1ms,试确定(1)最小记录长度;(2)所允许处理的信号的最高频率;(3)在一个记录中的最少点数。11解:(1)TP而F10Hz TPsF10 最小纪录长度为 0.1s 1110310KHzT0.11 fs2fh fhfs5KHz2 允许处理的信号的最高频率为5KHz(2)fs TP0.11031000,又因N必须为2的整数幂T0.1 一个纪录中的最少点数为:N2101024(3)N
用直接I型及典范型结构实现以下系统函数
34.2z10.8z2H(z)20.6z10.4z2
121.52.1z10.4z21.52.1z0.4zH(z)12121(0.3z0.2z)10.3z0.2z解:H(z)
∵1anznn1m0NbznMmY(z)X(z)
∴a10.3,a20.24(z1)(z21.4z1)H(z)(z0.5)(z20.9z0.8)
2.用级联型结构实现以下系统函数b01.5,b12.1,b20.4
试问一共能构成几种级联型网络。11kz12kz2H(z)A121zzk1k2k解:
4(1z1)(11.4z1z2)112(10.5z)(10.9z0.8z)
∴ A4
111, 110.5 , 210 , 121.4 ,210 , 120.9 ,221 220.8
由此可得:采用二阶节实现,还考虑分子分母组合成二阶(一阶)基本节的方式,则有四种实现形式。
3.给出以下系统函数的并联型实现。
5.21.58z11.41z21.6z3H(z)112(10.5z)(10.9z0.8z)
解:对此系统函数进行因式分解并展成部分分式得:
5.21.58z11.41z21.6z3H(z)112(10.5z)(10.9z0.8z)
0.210.3z14110.5z10.9z10.8z2 G0 110.5 , 210,120.9 ,220.8
010.2 , 110
,021 , 120.3
4.用横截型结构实现以下系统函数:
11H(z)1z116z112z11z11z126
解:
11H(z)(1z1)(16z1)(12z1)(1z1)(1z1)26
111122(1z12z1z)(1z6zz)(1z)26
1537(1z1z2)(1z1z26
2)(z11)8205220581z1zz3z4z531212 5.已知FIR滤波器的单位冲击响应为
0.3n(h(n)(n)N1n01)0.n72(2)n0.11(3n)0
试画出其级联型结构实现。
H(z)根据h(n)zn得:
220.z70.z3114
1H(z)10.z3z0.12)1z23
(10.z20.)(1z10.1z2 0.4而FIR级联型结构的模型公式为:
H(z)(0k1kz12kz2)k1N2
对照上式可得此题的参数为:
011 , 021, 110.2 , 120.1210.3 , 220.4
6.用频率抽样结构实现以下系统函数:
52z33z6H(z)1z1
抽样点数N = 6,修正半径r0.9。解;
因为N=6,所以根据公式可得:
H(z)2166(1rz)H0(z)H3(z)Hk(z)6k1(53z3)(1z3)H(z)1z1 (53z3)(1z1z2)故 H(k)H(Z)Z2k/N (53ejk)(1e因而 H(0)24,H(1)223j,H(2)0 H(3)2,H(4)0,H(5)223j
j3kej2k3)则 H0(z)H(0)241rz110.9z1H(3)2 H3(z)1rz110.9z1
0111z121求 : Hk(z)k1 时 :H1(z)2212zrcosrzN
012ReH(1)2Re[223j]411(2)(0.9)ReH(1)W613.643.6z1H1(z)10.9z10.81z2k2 时 :02120,H2(z)0 7.设某FIR数字滤波器的系统函数为:
1H(z)(13z15z23z3z4)5
试画出此滤波器的线性相位结构。解:由题中所给条件可知:
1331h(n)(n)(n1)(n2)(n3)(n4)5555
则 h(0)h(4)10.253 h(1)h(3)0.65 h(2)1N12 2即h(n)偶对称,对称中心在 n处,N 为奇数(N5)。8.设滤波器差分方程为:
y(n)x(n)x(n1)11y(n1)y(n2)34
⑴试用直接I型、典范型及一阶节的级联型、一阶节的并联型结构实现此差分方程。
⑵求系统的频率响应(幅度及相位)。
⑶设抽样频率为10kHz,输入正弦波幅度为5,频率为1kHz,试求稳态输出。解:
(1)直接Ⅰ型及直接Ⅱ:
根据 y(n)ak1Nky(nk)bx(nk)可得:kk0M
11a1 , a234;
b01 , b11
一阶节级联型:
1z1H(z)111z1z2341z1 11011101(1z)(1z)66
1z111
(10.7z)(10.36z)
一阶节并联型:
H(z)1z1(111011101z)(1z)66
17171010220220110111011z1z66
1.60.610.7z110.36z1
1z1(2)由题意可知 H(z)111z1z234 1ejH(e)1j12j1ee34 j(1cos)jsin11111cosco2sjsinsin23443
幅度为:
H(ej)
(1cos)2sin21111(1coscos2)2(sinsin2)23434
相位为:
sinargH(ej)arg)tg(1cos
11sinsin24tg(3arg)111cosco2s34
(3)输入正弦波为 : x(t)5sin(2t103)
3由 T210T12 可得:
又抽样频率为10kHz,即抽样周期为
13T0.1100.1ms31010
∴在x(t)的一个周期内,采样点数为10个,且在下一周期内的采样值与(0,2)间的采样值完全一样。所以我们可以将输入看为 周期为:T11103s1ms1000
5sin10x(n)5sin2103nT32104n1 5sinn(n0 ,1 ,5
由此看出,9)
00.2
根据公式可得此稳态输出为:
y(n)5H(ej0)cos0nargH(ej0)12.13cos0.2n51.6
4.试用N为组合数时的FFT算法求N12的结果(采并画出流图。1.如果一台通用计算机的速度为平均每次复乘需50 s 计算需要多少时间,用FFT运算需要多少时间。
每次复加5 s,用它来计算512点的DFT[x(n)],问直拉对于0nN,有解:依题意:N34r1r2,解: ⑴ 直接计算:
复乘所需时间: T61510N2 51065122 1.31072s
复加所需时间: T20.5106N(N1)0.5106512(5121)0.130816s TT1T21.441536s⑵用FFT计算:
复乘所需时间: T61510N2log2N 51065122log2512 0.01152s
复加所需时间: T20.5106Nlog2N 0.5106512log2512 0.002304s TT1T20.013824s
nn1r2n0,n10,1,2n00,1,2,3 同样: 令Nr2r1 对于频率变量k(0kN)有kkk10,1,2,31r1k0,k00,1,2x(n)x(n1r2n0)x(4n1n0)x(n1,n0)X(k)X(k1r1k0)X(3k1k0)X(k1,k0)11X(k)x(n)Wnk12n032 x(n(4n1n0)(3k1k01,n)0)W12n00n10