logo资料库

郑州大学随机信号处理大作业.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
上机练习题目(3) 1. 利用 tfe 函数进行系统辨识,并与理想结果进行比较。 提示: MATLAB 函数工具箱提供了 tfe 函数用来实现基于经典谱估计的系统辨识。 调用方式: (1)Txy=tfe(x,y,NFFT,Fs,window) 使用 welch 平均周期图法,根据输入变量 x 和输出变量 y 来估计系统的传递函数。参数 NFFT 用来指定 FFT 运算所采用的 点数。 如果 x 和 y 都是实信号、NFFT 为偶数,则 Txy 的长度为 NFFT/2+1; 如果 x 和 y 都是实信号、NFFT 为奇数,则 Txy 的长度为(NFFT+1)/2; 如果 x 或 y 是复信号,则 Txy 的长度为 NFFT; 参数 window 用来指定所采用的窗函数。窗函数的长度必须与向量 x 的长度一样 大。 (2)[Txy,f]=tfe(x,y,NFFT,Fs,window,noverlap) 返回和传递函数的估计同样大 小、一一对应的线性频率 f。参数 noverlap 用来指定数据分段间重叠的样本数。 (3)tfe(x,y,...dflag) 参数 dflag 用来指定对 x 和 y 的预处理方式,其取值有 dflag=linear:去掉加窗数据中的最佳直线拟合; dflag=mean:去掉加窗数据中的均值; dflag=none:不做处理。 (4)tfe(…) 没有输出参数,在当前图形窗口里绘制出传递函数的估计结果图。 以上这些参数的默认值分别为: NFFT=256; Fs=2; noverlap=0; window=hanning(NFFT); dflag=none。 本题中,可以产生一个白噪声(可用 randn 函数产生),使其通过一个线性系统 (可用 filter 函数产生),得到输出 y 即为平稳随机信号。然后利用 tfe 函数估计。 并将估计结果与理想传递函数(可用 freqz 函数求幅频响应)比较。 【参考答案】 Fs=2000; NFFT=256; n=0:1/Fs:1; x=randn(size(n)); b=ones(1,5)/5; y=filter(b,1,x); [h,f]=tfe(x,y,NFFT,Fs,256,128,’none’); h0=freqz(b,1,f,Fs); subplot(2,1,1) plot(f,abs(h0)) title(‘理想传递函数的幅频曲线’)
xlabel(‘频率(Hz)’) subplot(2,1,2) plot(f,abs(h)) title(‘估计的传递函数幅频曲线’) xlabel(‘频率(Hz)’) 2.分别用 Yule-Walker 法、Burg 法、协方差法进行 AR 模型的功率谱估计,并进 行比较。 提示:Yule-Walker 法可以直接调用函数 pyulear 函数实现; Burg 法可以直接调用函数 pburg 函数实现; 协方差法可以直接调用函数 pmcov 函数实现; 以上函数的具体调用方式查看 matlab 帮助信息。 【参考答案】 Yule-Walker 法和 Burg 法的程序可以参考第 4 章 4.3 节课件。 下面是协方差法的程序(程序中将方差法和协方差法进行了比较)。 Fs=1000; h=fir1(20,0.3); r=randn(1024,1); x=filter(h,1,r); [p1,f]=pcov(x,20,[],Fs); [p2,f]=pmcov(x,20,[],Fs); pxx1=10*log10(p1); pxx2=10*log10(p2); plot(f,pxx1,’:’,f,pxx2,’-’); xlabel(‘幅值(dB)’); ylabel(‘功率谱估计’); legend(‘协方差法’,’改进的协方差法’);
分享到:
收藏