数字信号处理实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 自适应滤波器

一、实验目的

1、掌握功率谱估计方法

2、会用matlab 对功率谱进行仿真 二、实验原理

功率谱估计方法有很多种,一般分成两大类,一类是经典谱估计;另一类是现代谱估计。经典谱估计可以分成两种,一种是BT 法,另一种是周期法;BT 法是先估计自相关函数,然后将相关函数进行傅里叶变换得到功率谱函数。相应公式如下所示:

||1

*0

1

ˆ()()()(11)

ˆˆ()(12)

N m xx n jwn BT

xx m r

m x n x n m N P r

m e --=∞

-=-∞

=+-=-∑

周期图法是采用功率谱的另一种定义,但与BT 法是等价的,相应的功率谱估计如下所示:

2

1

()()01

(13)N jw jwn xx n P e x n e n N N

--==≤≤--∑

其计算框图如下所示:

)

(jw xx e ∧

图1.1周期图法计算用功率谱框图

由于观测数据有限,所以周期图法估计分辨率低,估计误差大。针对经典谱估计的缺点,一般有三种改进方法:平均周期图法、窗函数法和修正的周期图平均法。

三、实验要求

信号是正弦波加正态零均值白噪声,信噪比为10dB,信号频率为2kHZ,取样频率为100kHZ。

四、实验程序与实验结果

(1)用周期图法进行谱估计

A、实验程序:

%用周期法进行谱估计

clear all;

N1=128;%数据长度

N2=256;

N3=512;

N4=1024;

f=2;%正弦波频率,单位为kHZ

fs=100;%抽样频率,单位为kHZ

n1=0:N1-1;

n2=0:N2-1;

n3=0:N3-1;

n4=0:N4-1;

a=sqrt(20);%由信噪比为10dB计算正弦信号的幅度

wn1=randn(1,N1);xn1=a*sin(2*pi*f*n1./fs)+wn1; Pxx1=10*log10(abs(fft(xn1).^2)/N1);%周期法求功率谱f1=((0:length(Pxx1)-1))/length(Pxx1);

wn2=randn(1,N2);xn2=a*sin(2*pi*f*n2./fs)+wn2; Pxx2=10*log10(abs(fft(xn2).^2)/N2);

f2=((0:length(Pxx2)-1))/length(Pxx2);

wn3=randn(1,N3);xn3=a*sin(2*pi*f*n3./fs)+wn3; Pxx3=10*log10(abs(fft(xn3).^2)/N3);

f3=((0:length(Pxx3)-1))/length(Pxx3);

wn4=randn(1,N4);xn4=a*sin(2*pi*f*n4./fs)+wn4; Pxx4=10*log10(abs(fft(xn4).^2)/N4);

f4=((0:length(Pxx4)-1))/length(Pxx4);

subplot(2,2,1);

plot(f1,Pxx1);xlabel('频率');ylabel('功率(dB)'); title('功率谱Pxx,N=128');

subplot(2,2,2);

plot(f2,Pxx2);xlabel('频率');ylabel('功率(dB)'); title('功率谱Pxx,N=256');

subplot(2,2,3);

plot(f3,Pxx3);xlabel('频率');ylabel('功率(dB)'); title('功率谱Pxx,N=512');

subplot(2,2,4);

plot(f4,Pxx4);xlabel('频率');ylabel('功率(dB)'); title('功率谱Pxx,N=1024');

B、实验仿真结果:

(2)采用汉明窗,分段长度L=32,用修正的周期图求平均法进行谱估计

A:实验程序:

clear all;

N=512;%数据长度

Ns=32;%分段长度

f1=2;%正弦波频率,单位为kHZ

fs=100;%抽样频率,单位为kHZ

n=0:N-1;

a=sqrt(20);%由信噪比为10dB计算正弦信号的幅度

wn=randn(1,N);

xn=a*sin(2*pi*f1*n./fs)+wn;

w=hamming(32)';%汉明窗

Pxx1=abs(fft(w.*xn(1:32),Ns).^2)/norm(w)^2;

Pxx2=abs(fft(w.*xn(33:64),Ns).^2)/norm(w)^2;

Pxx3=abs(fft(w.*xn(65:96),Ns).^2)/norm(w)^2;

Pxx4=abs(fft(w.*xn(97:128),Ns).^2)/norm(w)^2;

Pxx5=abs(fft(w.*xn(129:160),Ns).^2)/norm(w)^2;

Pxx6=abs(fft(w.*xn(161:192),Ns).^2)/norm(w)^2;

Pxx7=abs(fft(w.*xn(193:224),Ns).^2)/norm(w)^2;

Pxx8=abs(fft(w.*xn(225:256),Ns).^2)/norm(w)^2;

Pxx9=abs(fft(w.*xn(257:288),Ns).^2)/norm(w)^2;

Pxx10=abs(fft(w.*xn(289:320),Ns).^2)/norm(w)^2;

Pxx11=abs(fft(w.*xn(321:352),Ns).^2)/norm(w)^2;

Pxx12=abs(fft(w.*xn(353:384),Ns).^2)/norm(w)^2;

Pxx13=abs(fft(w.*xn(385:416),Ns).^2)/norm(w)^2;

Pxx14=abs(fft(w.*xn(417:448),Ns).^2)/norm(w)^2;

Pxx15=abs(fft(w.*xn(449:480),Ns).^2)/norm(w)^2;

Pxx16=abs(fft(w.*xn(481:512),Ns).^2)/norm(w)^2;

Pxx=10*log10((Pxx1+Pxx2+Pxx3+Pxx4+Pxx5+Pxx6+Pxx7+Pxx8+Pxx9 +Pxx10+Pxx11+Pxx12+Pxx13+Pxx14+Pxx15+Pxx16)/16);

相关文档
最新文档