1、实验一离散傅里叶变换的性质数 字 信 号 处 理实验报告实验日期:2011.12.11姓 名:公飞 杜志广学 号:090220107 090220106哈尔滨工业大学(威海)实验一 离散傅里叶变换的性质一、 实验目的1、 掌握离散傅里叶变换的性质,包括线性特性、时移特性、频移特性、对称性和循环卷积等性质;2、 通过编程验证傅里叶变换的性质,加强对傅里叶变换性质的认识。二、 实验原理和方法1. 线性特性2. 时移特性3. 频移特性4. 对称性设由x(n)开拓成的周期序列为 则偶序列奇序列将和截取主周期,分别得 则x(n)序列的实部和虚部的离散立叶变换 5. 循环卷积有限长序列线性卷积与循环卷积的
2、关系X1(n)和x2(n)的线性卷积:将X1(n)和x2(n)开拓成以N为周期的周期序列 则它们的周期卷积为X1(n)和x2(n)周期开拓后的周期卷积等于他们的线性卷积的的周期开拓。三、 实验内容和步骤任取长度为N=8的随机实序列x1n,x2n,例如x1n=1 3 5 3 6 8 3 9,x2n=2 4 3 6 7 9 0 2 ,和长度为N=8的随机复序列x3n,x4n,例如x3n=1+2j 3+4j 5+3j 3+4j 6+j 8+2j 3+3j 9+2j,x4n=4+1j 6+4j 4+3j 3+4j 7+j 8+3j 3+4j 1+2j,采用MATLAB编程验证傅里叶变换的如下性质1.
3、线性特性a 给出序列x1n的傅里叶变换X1k,并画出其幅度谱和相位谱b 给出序列x2n的傅里叶变换X2k ,并画出其幅度谱和相位谱c 给出序列Z=2*X1k+6*x2k,并与序列2*x3n+6*x4n的傅里叶变换比较程序:x1 = 1 3 5 3 6 8 3 9;x2 = 2 4 3 6 7 9 0 2;x3 =1+2j 3+4j 5+3j 3+4j 6+1j 8+2j 3+3j 9+2j;x4 =4+1j 6+4j 4+3j 3+4j 7+1j 8+3j 3+4j 1+2j;X1 = fft( x1, 8 );X2 = fft( x2, 8 );x_axis = 0: 1: 7 ;figur
4、e(1);subplot(2,2,1); stem( x_axis, abs(X1) );title( X1的幅度谱 );subplot(2,2,2); stem( x_axis, angle(X1) );title( X1的相位谱 );subplot(2,2,3); stem( x_axis, abs(X2), r* );title( X2的幅度谱 );subplot(2,2,4); stem( x_axis, angle(X2), r* );title( X2的相位谱 );sum1 = 2*x1+ 6*x2;SUM1 = fft(sum1, 8 ); % 序列之和的FFTsum2 = 2*
5、x3+ 6*x4;SUM2 = fft(sum2, 8 );figure(2);subplot(2,1,1);stem( x_axis, abs(SUM1) ); hold on;stem( x_axis, abs(SUM2), r* );title( 幅度谱 ); subplot(2,1,2);stem( x_axis, angle(SUM1) ); hold on;stem( x_axis, angle(SUM2), r* );title( 相位谱 ); 2.时移特性给出序列x1n右移3位后的傅里叶变换的幅度谱和相位谱,并和原始序列的幅度谱和相位谱相比较程序:x1=1 3 5 3 6 8
6、3 9;N=length(x1);n=0:N-1;X1=fft(x1);xc=circshift(x1,1,3);% xcn= x1n-3;Xc=fft(xc);figure,subplot(3,2,1),stem(n,x1,r*);title(原序列);subplot(3,2,3),stem(n,abs(X1),r*);title(原幅度谱);subplot(3,2,5),stem(n,atan2(real(X1),imag(X1),r*);title(原相位谱);subplot(3,2,2),stem(n,xc,r*);title(变化序列);subplot(3,2,4),stem(n,a
7、bs(Xc),r*);title(变化幅度谱);subplot(3,2,6),stem(n,atan2(real(Xc),imag(Xc),r*);title(变化相位谱);3.对称性(1)利用x1n构造共轭对称序列和共轭反对称序列,讨论如下问题(a) 画出共轭对称序列的傅里叶变换的幅度谱和相位谱(b) 画出共轭对称序列的傅里叶变换的实部和虚部(c) 画出该共轭反对称序列的傅里叶变换的幅度谱和相位谱(d) 画出该共轭反对称序列的傅里叶变换的实部和虚部程序:clear all; x1=1 3 5 3 6 8 3 9; N=length(x1); x2(1)=x1(1); for i=2:N x2
8、(i)=x1(N+2-i); end xe=(x1+conj(x2)/2; xo=(x1-conj(x2)/2; n=0:N-1; Xo=fft(xo); Ro=real(Xo); Io=imag(Xo); Mo=abs(Xo); phaseo=atan2(Io,Ro);%angle(X); figure(1), subplot(2,2,1),stem(n,Ro,r*);title(共轭反对称序列的频谱实部);subplot(2,2,2),stem(n,Io,r*);title(共轭反对称序列的频谱虚部);subplot(2,2,3),stem(n,Mo,r*);title(共轭反对称序列的幅
9、度谱); subplot(2,2,4),stem(n,phaseo,r*);title(共轭反对称序列的相位谱); Xe=fft(xe); Re=real(Xe); Ie=imag(Xe); Me=abs(Xe); phasee=atan2(Ie,Re);%angle(X); figure(2), subplot(2,2,1),stem(n,Re,r*);title(共轭对称序列的频谱实部); subplot(2,2,2),stem(n,Ie,r*);title(共轭对称序列的频谱虚部); subplot(2,2,3),stem(n,Me,r*);title(共轭对称序列的幅度谱); subp
10、lot(2,2,4),stem(n,phasee,r*);title(共轭对称序列的相位谱);(2)当x(n)为复序列时,推导傅里叶变换公式,利用x3n构造共轭对称序列和共轭反对称序列,讨论如下问题a画出该共轭对称序列的傅里叶变换的幅度谱和相位谱b画出该共轭对称序列的傅里叶变换的实部和虚部c画出该共轭反对称序列的傅里叶变换的幅度谱和相位谱d画出该共轭反对称序列的傅里叶变换的实部和虚部clear all; x3=1+2j 3+4j 5+3j 3+4j 6+1j 8+2j 3+3j 9+2j;N=length(x3); n=0:N-1; X3=fft(x3); R3=real(X3); I3=im
11、ag(X3); xe=ifft(R3);xo=ifft(j*I3);Xo=fft(xo); Ro=real(Xo); Io=imag(Xo);Mo=abs(Xo); phaseo=atan2(Io,Ro);%angle(X); figure(1), subplot(2,2,1),stem(n,Ro,r*);title(共轭反对称序列的频谱实部);subplot(2,2,2),stem(n,Io,r*);title(共轭反对称序列的频谱虚部);subplot(2,2,3),stem(n,Mo,r*);title(共轭反对称序列的幅度谱); subplot(2,2,4),stem(n,phaseo
12、,r*);title(共轭反对称序列的相位谱); Xe=fft(xe); Re=real(Xe); Ie=imag(Xe); Me=abs(Xe); phasee=atan2(Ie,Re);%angle(X); figure(2), subplot(2,2,1),stem(n,Re,r*);title(共轭对称序列的频谱实部); subplot(2,2,2),stem(n,Ie,r*);title(共轭对称序列的频谱虚部); subplot(2,2,3),stem(n,Me,r*);title(共轭对称序列的幅度谱); subplot(2,2,4),stem(n,phasee,r*);titl
13、e(共轭对称序列的相位谱);(3) 总结共轭对称和共轭反对称的实数序列和复数序列的傅里叶变换性质4.循环卷积(1)计算序列x1n和x2n的循环卷积yn,计算x1n 和x2n的傅里叶变换X1k和X2k,Yk=X1k*X2k,求Yk的反傅里叶变换y2n,比较yn与y2n.程序:%卷积x1=1 3 5 3 6 8 3 9; x2=2 4 3 6 7 9 0 2; M=length(x1); N=length(x2); x10=x1,zeros(1,N-1); x20=x2,zeros(1,M-1); X10=fft(x10); X20=fft(x20); Y=X10.*X20; y=ifft(Y);
14、 y1=conv(x1,x2); m=0:length(x1)-1; n=0:length(x2)-1; ny=0:length(y)-1; figure(1), subplot(2,2,1),stem(m,x1,r*);title(序列1);subplot(2,2,2),stem(ny,y1,r*);title(直接卷积yn);subplot(2,2,3),stem(n,x2,r*);title(序列2); subplot(2,2,4),stem(ny,y,r*);title(傅里叶卷积y2n);5.补零用MATLAB计算如下N点序列的M点DFT: (1)取N=8,M=8 (2)取N=8,M
15、=16 (3)取N=8,M=32 根据实验结果,分析延长序列的离散傅里叶变换的特点。 程序:%补零clear all; N=8; M1=8; M2=16; M3=24; x1=ones(1,N); x2=x1,zeros(1,M1); x3=x1,zeros(1,M2); x4=x1,zeros(1,M3);X1=fft(x1);X2=fft(x2); X3=fft(x3); X4=fft(x4); RX1=real(X1); IX1=imag(X1); MX1=abs(X1); phaseX1=atan2(IX1,RX1);%angle(X); RX2=real(X2); IX2=imag(
16、X2); MX2=abs(X2); phaseX2=atan2(IX2,RX2);%angle(X); RX3=real(X3); IX3=imag(X3); MX3=abs(X3); phaseX3=atan2(IX3,RX3);%angle(X);RX4=real(X4); IX4=imag(X4); MX4=abs(X4); phaseX4=atan2(IX4,RX4);%angle(X); m=0:length(x1)-1; n=0:length(x2)-1; k=0:length(x3)-1; l=0:length(x4)-1; figure(1), subplot(2,4,1),s
17、tem(m,MX1,r*);title(原序列的幅度谱); subplot(2,4,2),stem(n,MX2,r*);title(补N个零后序列的幅度谱); subplot(2,4,3),stem(k,MX3,r*);title(补2N个零后序列的幅度谱); subplot(2,4,4),stem(l,MX4,r*);title(补4N个零后序列的幅度谱); subplot(2,4,5),stem(m,phaseX1,r*);title(原序列的相位谱); subplot(2,4,6),stem(n,phaseX2,r*);title(补N个零后序列的相位谱); subplot(2,4,7)
18、,stem(k,phaseX3,r*);title(补2N个零后序列的相位谱); subplot(2,4,8),stem(l,phaseX4,r*);title(补4N个零后序列的相位谱);实验二 IIR滤波器设计一、 实验目的1、 掌握冲激响应不变法和双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通IIR数字滤波器的计算机程序;2、 熟悉模拟Butterworth滤波器的设计,掌握冲激响应不变法和双线性变换法设计数字IIR滤波器的方法。二、 实验原理和方法IIR滤波器设计的过程可以首先设计模拟滤波器,然后采用冲激响应不变法和双线性变换法设计IIR数字滤波器。But
19、terworth滤波器, 其中为3dB截止频率,N为滤波器阶次,均待定。模拟滤波器的设计步骤:首先根据数字滤波器设计要求计算模拟滤波器指标;其次要求出滤波器的阶次N和三、 实验内容1. 采样频率为1Hz,设计一个Butterworth低通数字滤波器,其中通带临界频率,通带内衰减小于1dB(),阻带临界频率,阻带内衰减大于25dB()。求这个数字滤波器的传递函数H(z),输出它的幅频特性曲线。利用冲激响应不变法和双线性变换法实现该滤波器,并将结果进行比较。程序:%Butterworth低通滤波器设计 Wp=2*pi*0.2;Ws=2*pi*0.3; Rp=1;Rs=25; %设计滤波器 N,Wn
20、=buttord(Wp,Ws,Rp,Rs,s);z,p,k=buttap(N)B,A=butter(N,Wn,s)bz,az=impinvar(B,A) % 画图Butterworth低通滤波器f1=linspace(0,Wp,5); f2=linspace(Wp,Ws,15);f3=linspace(Ws,2*pi*10,30); h1=20*log10(abs(freqs(B,A,f1); h2=20*log10(abs(freqs(B,A,f2); h3=20*log10(abs(freqs(B,A,f3); plot(f1 f2 f3/(2*pi),h1,h2,h3); grid; x
21、label(Frequency in Hz); ylabel(Gain in dB);结果:N = 9Wn = 1.3693z = p =-0.1736 + 0.9848i -0.1736 - 0.9848i -0.5000 + 0.8660i -0.5000 - 0.8660i -0.7660 + 0.6428i -0.7660 - 0.6428i -0.9397 + 0.3420i -0.9397 - 0.3420i -1.0000 k = 1.0000B = Columns 1 through 8 0 0 0 0 0 0 0 0 Columns 9 through 10 0 16.919
22、9A = Columns 1 through 8 1.0000 7.8853 31.0890 80.0039 147.5921 202.0932 205.3890 149.6408 Columns 9 through 10 71.1605 16.9199幅度谱:%Butterworth低通滤波器设计 Wp=2*tan(0.2*pi);Ws=2*tan(0.15*pi); Rp=1;Rs=25;Fs=1; %设计滤波器 N,Wn=buttord(Wp,Ws,Rp,Rs,s)z,p,k=buttap(N)B,A=butter(N,Wn,s)numd,dend = bilinear(B,A,Fs)%
23、 画图Butterworth低通滤波器f1=linspace(0,Wp,5); f2=linspace(Wp,Ws,15);f3=linspace(Ws,2*pi*10,30); h1=20*log10(abs(freqs(B,A,f1); h2=20*log10(abs(freqs(B,A,f2); h3=20*log10(abs(freqs(B,A,f3); plot(f1 f2 f3/(2*pi),h1,h2,h3); grid; xlabel(Frequency in Hz); ylabel(Gain in dB);结果:N = 11Wn = 1.3236z = p = -0.1423
24、 + 0.9898i -0.1423 - 0.9898i -0.4154 + 0.9096i -0.4154 - 0.9096i -0.6549 + 0.7557i -0.6549 - 0.7557i -0.8413 + 0.5406i -0.8413 - 0.5406i -0.9595 + 0.2817i -0.9595 - 0.2817i -1.0000 k = 1.0000B = Columns 1 through 7 0 0 0 0 0 0 0 Columns 8 through 12 0 0 0 0 21.8508A = Columns 1 through 7 1.0000 9.30
25、08 43.2523 132.2326 294.4862 500.7404 662.7998 Columns 8 through 12 682.9268 537.2631 307.8911 115.9971 21.8508numd = Columns 1 through 7 0.0001 0.0014 0.0069 0.0206 0.0412 0.0576 0.0576 Columns 8 through 12 0.0412 0.0206 0.0069 0.0014 0.0001dend = Columns 1 through 7 1.0000 -2.8033 4.8599 -5.5584 4
26、.6931 -2.9524 1.4091 Columns 8 through 12 -0.5025 0.1309 -0.0235 0.0026 -0.0001实验三 FIR滤波器设计一、 实验目的1、 熟悉FIR滤波器设计的基本方法;2、 掌握窗函数法设计FIR滤波器的原理和方法;3、 熟悉线性相位FIR滤波器的幅频特性和相位特性;4、 了解不同窗函数对滤波器性能的响应。二、 实验原理和方法三、 实验内容1. 用窗函数法设计一个长度N=8的线性相位FIR滤波器。其理想的幅频特性为分别用矩形窗、Hanning窗、Hamming窗、Blackman窗设计该滤波器,并比较设计结果;如果N=15,重复
27、这一设计,观察幅频特性和相位特性的变化,注意长度N变化对结果的影响。程序:clc,clear all,close all;N_array = 8 15; Point_array = b, r ; for I=1:length(N_array) N = N_array(I); rect_window = ones(1,N); hanning_window = hanning(N); hamming_window = hanning(N); blackman_window = blackman(N); H_rect = freqz( rect_window, 1, 512 ); H_hann =
28、freqz( hanning_window, 1, 512 ); H_hamm = freqz( hamming_window, 1, 512 ); H_black = freqz( blackman_window, 1, 512 ); freq_norm = 0:511/512; %归一化的频率轴 subplot(4,2,1); plot( freq_norm,20*log10(abs(H_rect)/max(abs(H_rect) ,Point_array(I) ); hold on; title( 矩形窗幅度谱 ); xlabel( 归一化频率 w/pi ); ylabel( 幅度(dB
29、) ); subplot(4,2,2); plot( freq_norm,angle(H_rect) ,Point_array(I) ); hold on; title( 矩形窗相位谱 ); xlabel( 归一化频率 w/pi ); ylabel( 相位 ); subplot(4,2,3); plot( freq_norm,20*log10(abs(H_hann)/max(abs(H_hann) ,Point_array(I) ); hold on; title( Hanning窗幅度谱 ); xlabel( 归一化频率 w/pi ); ylabel( 幅度(dB) ); subplot(4,2
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1