《数字信号处理第三四章作业.doc》由会员分享,可在线阅读,更多相关《数字信号处理第三四章作业.doc(17页珍藏版)》请在三一办公上搜索。
1、成 绩: 数字信号处理作业与上机实验(第三四章)班 级: 13-电信 学 号:姓 名: 任课老师: 李宏民 完成时间: 15.11.08 信息与通信工程学院20152016学年 第 1学期第3-4章 离散傅里叶变换及快速算法与应用一、实验内容及要求:1、对信号在x(n)=1,2,3,4,5,6,7,8,n=0,1,2.7,求其N=8点的DFT。要求采用基于时间抽取算法编写FFT实现程序,画出DFT幅度谱与相位谱,并将计算结果与用MATLAB自带的FFT函数计算结果进行比较。2、一个由40Hz和100 Hz正弦信号构成的信号,受零均值随机噪声的干扰(噪声服从标准正态分布,由randn函数产生,n
2、(t)= randn(m,n)返回一个m*n的随机矩阵),即。数据采样率为500Hz,试用FFT函数来分析其信号频率成分。 求其幅度频谱,从频谱图(横坐标以HZ为单位,用plot函数画图)中能否观察出信号的2个频率分量? 提高采样点数,再求该信号的幅度频谱图,此时幅度频谱发生了什么变化?信号的2个模拟频率和数字频率各为多少?FFT频谱分析结果与理论上是否一致?3、研究高密度频谱与高分辨率频谱。频率分辨率是指所用的算法能将信号中两个靠得很近的谱峰分开的能力。信号末尾补零由于没有对原信号增加任何新的信息,因此不能提高频率分辨率,但可以减小栅栏效应,所得到的频谱称为高密度频谱。在维持采样频率不变的情
3、况下,为提高分辨率只能增加采样点数N,此时所得到的频谱称为高分辨率频谱。设有连续信号以采样频率对信号采样,分析下列几种情况的幅频特性。 采集数据长度N=16点,做N=16的FFT;采集数据长度N=16点,补零到256点,做256点的FFT; 采集数据长度N=64点,做N=64的FFT;采集数据长度N=64点,补零到256点,做256点的FFT; 采集数据长度N=256点,做N=16点的FFT。 观察以上几幅不同的幅频特性曲线,分析和比较它们的特点,并说明形成的原因。 注:在MATLAB中,可用zeros函数实现填零运算,例如x1=x(1:1:16),zeros(1,240)。所有频谱图的横坐标
4、以HZ为单位,用plot函数画图。 一个连续信号含三个频率分量,经采样得以下序列。已知N =16,分别为1/16,1/64,观察其频谱;当N =64,128,不变,其结果有何不同,为什么?4、语音信号频谱分析首先应用录音软件(见下图),录音“我是XXX(学生姓名)”,得到语音数据“录音.WAV”并将“录音.WAV”文件复制到 MATLAB WORK 目录下。其次在MATLAB环境下,X(n)=wavread(录音.WAV ,2048),得到2048点的语音数据X(n),对X(n)进行FFT频谱分析,画出频谱图(横坐标以HZ为单位,用plot函数画图)。5、双音多频(DTMF)信号是将拨号盘上的
5、0-F共16个数字,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如表8-2所示。双音多频(DTMF)信号频率组合方式频率1209Hz1336Hz1477Hz1633Hz697Hz123A770Hz456B852Hz789C941Hz*/E0#/FD找一部电话机,在免提状态下拨号09中的任意7位号码,并录制双音多频拨号声音。采用快速傅里叶变换(FFT)分析这7个号码拨号时的频谱,并与理论值进行比较。图1 波形三、波形图1DFT幅度谱与相位谱如图1可见xn=1,2,3,4,5,
6、6,7,8;M=nextpow2(length(xn), N=2M,A=xn,zeros(1,N-length(xn); G=0;for I=0:N-1; if I=K; G=G-K;K=K/2; end G=G+K;endWN=exp(-j*2*pi/N);for L=1:M; disp(级次运算),disp(L); B=2(L-1); for R=0:B-1; P=2(M-L)*R; for K=R:2L:N-2; T=A(K+1)+A(K+B+1)*WNP; A(K+B+1)=A(K+1)-A(K+B+1)*WNP; A(K+1)=T; end endendXk=A,fftxn=fft(
7、xn,N),k=0:7;wk=2*k/8;subplot(2,2,1);stem(wk,abs(Xk),k.);xlabel(Hz);ylabel(幅度);subplot(2,2,2);stem(wk,angle(Xk),k.);xlabel(Hz);ylabel(相位);subplot(2,2,3);stem(wk,abs(fftxn),k.);xlabel(Hz);ylabel(幅度);subplot(2,2,4);stem(wk,angle(fftxn),k.);xlabel(Hz);ylabel(相位);图1DFT和FFT频谱图 答:由此可以看出信号经过FFT函数和DFT函数所得到的结
8、果基本没有差异,说明FFT函数能在复杂的运算中代替DFT函数简化运算。2.幅度频谱如图2可见t=0:0.001:1;s=sin(2*pi*100*t)+sin(2*pi*40*t)+randn(1,length(t);figure(1)plot(t,s);Y=fft(s,501);f=500*(0:500)/501;magY=abs(Y);figure(2);plot(f,magY);xlabel(Hz);ylabel(幅度);提高采样点数后的幅度频谱图如图3可见t=0:0.001:1;s=sin(2*pi*100*t)+sin(2*pi*40*t)+randn(1,length(t);fig
9、ure(1)plot(t,s);Y=fft(s,1001);f=500*(0:1000)/1001;magY=abs(Y);figure(2);plot(f,magY);xlabel(Hz);ylabel(幅度);图2 频谱图图3 提高采样点的频谱图答:提高采样点数之后,图像分辨率提高很多,更容易看出频率分量,模拟频率大概为03Hz,数字频率大概为03Hz,fft结果与理论上还是稍微有点区别。3. 16的FFT和补零到256点的FFT如图4可见magXa=abs(Xa);figure(1);subplot(2,1,1);plot(f,magXa);xlabel(Hz);ylabel(幅度);x
10、=xa(1:16),zeros(1,240);X=fft(x,256);f=fs*(0:255)/256;magX=abs(X);subplot(2,1,2);plot(f,magX);xlabel(Hz);ylabel(幅度) 图3 16点和256点的FFT图(2) 64的FFT和补零到256点的FFT见图4N=64;n=0:N-1;fs=32000;xa=cos(2*pi*6.5*103*n/fs)+cos(2*pi*7*103*n/fs)+cos(2*pi*9*103*n/fs);Xa=fft(xa,N);f=fs*(0:63)/64;magX=abs(Xa);figure(1);sub
11、plot(2,1,1);plot(f,magX);xlabel(Hz);ylabel(幅度);x=xa(1:16),zeros(1,192);X=fft(x,256);f=fs*(0:255)/256;magX=abs(X);subplot(2,1,2);plot(f,magX);xlabel(Hz);ylabel(幅度)图4 64点和256点的FFT图(3) 16点的FFT如图5可见N=256;n=0:N-1;fs=32000;xa=cos(2*pi*6.5*103*n/fs)+cos(2*pi*7*103*n/fs)+cos(2*pi*9*103*n/fs);Xa=fft(xa,N);f=
12、fs*(0:255)/256;magX=abs(Xa);figure(1);plot(f,magX);xlabel(Hz);ylabel(幅度);图5 16点的FFT图(4)采样数据为16的时候图像由于点数太少,很难反映出频谱的细节特征,只能分辨出两个频率分量,随着采样点的不段增加频率间隔缩小,连续曲线越来越平滑,并且由16点经过补零所得到的,频率分辨率并未提高,仍然只能看出两个频率分量。(6) N=16,为1/16时的源程序,如图6可见:N=16; n=0:N-1; df=1/16; x=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df)*n)+cos(2*pi*(0.1
13、5+2*df)*n); figure(1) plot(n,x); title(F=16的时域) Xa=fft(x); Xa=abs(Xa); figure(2) stem(n,Xa)title(F=16的频域)图6 N=16,分别为1/64时的源程序,如图7可见:N=16; n=0:N-1; df=1/64; x=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df)*n)+cos(2*pi*(0.15+2*df)*n); figure(1) plot(n,x); title(F=64的时域) Xa=fft(x); Xa=abs(Xa); figure(2) stem(n,Xa
14、)title(F=64的频域)图7 N=64,分别为1/64时的源程序,如图8可见:N=64; n=0:N-1; df=1/64; x=sin(2*pi*0.15*n)+cos(2*pi*(0.15+df)*n)+cos(2*pi*(0.15+2*df)*n); figure(1) plot(n,x); title(F=64的时域) Xa=fft(x); Xa=abs(Xa); figure(2) stem(n,Xa)title(F=64的频域)图8 N=128,分别为1/64时的源程序,如图9可见:N=128; n=0:N-1; df=1/64; x=sin(2*pi*0.15*n)+cos
15、(2*pi*(0.15+df)*n)+cos(2*pi*(0.15+2*df)*n); figure(1) plot(n,x); title(F=64的时域) Xa=fft(x); Xa=abs(Xa); figure(2) stem(n,Xa) title(F=64的频域)图9 答:N从16变化为64、128时,谱峰逐渐清晰,截取长度增加,谱线变得密集,频谱更加接近真实值,泄露和混叠现象、栅栏效应都变小。 4. X(n)进行FFT频谱分析的频谱图,见图10fs=25600; xn,fs=audioread( D:用户目录我的文档MATLAB第三次录音7.wav); y=fft(xn,2048
16、);f=500*(0:999)/1000;magY=abs(y);angY=angle(y);subplot(2,1,1);plot(f, magY (1:1000);xlabel(Hz);ylabel(幅度);subplot(2,1,2);plot(f, angY (1:1000);xlabel(Hz);ylabel(相位);图105.X,fs=audioread(D:用户目录我的文档MATLAB第三次wz.wav );w=length(X);f=w*0:w-1/w;figure(1)plot(f,X);Y=fft(X);figure(2)plot(abs(Y);sound(X,fs);图12