上机练习题目(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(‘理想传递函数的幅频曲线’)
评论22