平穩隨機過程的樣本函數(隨機信號)通過線性系統的仿真

        現對平穩隨機過程X(t)=acos(\omega _0t+\varphi )(其中\varphi爲在(0,2\pi )上均勻分佈的隨機變量(0,2\pi )a\omega _0爲常數)的樣本經過線性系統進行仿真。

        線性系統如下:

function [ y ] = Linearsystem(x1,a,b)
%Linearsystem 線性時不變系統
%x-隨機過程,a,b-線性系統參數,y-輸出
 y=a*x1+b;
end

        此處令a=2,\omega _0=1(rad/s),該隨機過程的樣本通過線性系統,此處的線性系統衝擊相應爲h(t)=2t+30

clear all
clc
%----------------------------------------------平穩隨機過程
T=0.05;                              %採樣週期
fs=1/T;                              %採樣頻率
t1=-200:T:200;
N=length(t1);
k=0:N-1;
tau=5;                               %時移
t2=t1+tau;
fi=2*pi*rand(1,10);
for i=1:5
    X0(i,:)=2*cos(t1+fi(i));         %頻率w=1(rad/s)的隨機過程
    X1(i,:)=2*cos(t2+fi(i));
end
% figure
% subplot(2,1,1),plot(t1,X0)
% title('X(t)');xlabel('t');ylabel('X(t)');
% subplot(2,1,2),plot(t2,X1);
% title('X(t+\tau)');xlabel('t+\tau');ylabel('X(t)');
Ex=mean(mean(X0));                  %均值
Rx=mean(mean(X0.*X1));              %自相關函數
Exx=mean(mean(X0.^2));              %均方值
% figure
% subplot(1,3,1);plot(t1,Ex,'-*');
% title('均值');xlabel('t');ylabel('m_X(t)]');
% subplot(1,3,2);plot(t1,Rx,'-^');
% title('自相關函數');xlabel('t');ylabel('R_X(t_1,t_2)');
% subplot(1,3,3);plot(t1,Exx,'-o');
%------------------------平穩隨機過程的樣本函數經過線性系統後的輸出
x0=X0(1,:);                            %樣本函數
figure
subplot(2,1,1),plot(t1,x0),axis([-220,220,-3,3])
title('樣本函數(時域輸入)'),xlabel('t'),ylabel('x(t)')
FtX=fft(x0);
w=2*pi*(k/N*fs-fs/2);                       %頻域橫座標
subplot(2,1,2),plot(w,abs(fftshift(FtX))),xlim([-5,5])
title('樣本函數(頻域輸入)'),xlabel('\omega   (rad/s)'),ylabel('振幅')
h=Linearsystem(t1,2,30);               %系統函數
h=repmat(h,5,1);
figure
subplot(2,1,1),plot(t1,h(1,:))
title('線性系統(時域)'),xlabel('t'),ylabel('h(t)')
H=fft(h(1,:));
subplot(2,1,2),plot(w,abs(fftshift(H))),xlim([-5,5])
title('線性系統(頻域)'),xlabel('\omega   (rad/s)'),ylabel('振幅')
y=conv(x0,h(1,:));
tt=-400:0.05:400;                      %卷積後時域橫軸座標
figure
subplot(2,1,1),plot(tt,y),xlim([-440,440])
title('輸出(時域)'),xlabel('t'),ylabel('y(t)')
Y=fft(y);
ww=2*pi*((0:length(Y)-1)*fs/length(Y)-fs/2);  %卷積後頻域橫軸座標
subplot(2,1,2),plot(ww,abs(fftshift(Y))),xlim([-5,5])
title('輸出(頻域)'),xlabel('\omega   (rad/s)'),ylabel('振幅')

       結果如圖3所示

圖1 樣本函數(輸入)
圖2 線性系統

       

圖3 隨機信號通過線性系統後的輸出

       可以看到,一個頻域頻率\omega =\pi的餘弦信號通過線性系統後,在時域上,輸出信號表現爲信號外部有系統函數相同的包絡,該包絡是與系統函數性質相同,都是線性的;在頻域上信號的能量增強。可以看到經過線性系統後多了\omega=0 (rad/s)的成分,刺成份與相位無關,(以餘弦信號爲例),原因如下:

y(t)=x(t)\ast h(t)=2(t+30)\int cos\tau d\tau-2\int \tau cos\tau d\tau

而之所以,輸出信號的兩段包絡不同,是因爲,餘弦信號(樣本函數)在時域有一個相移\varphi,因此會有這樣的結果。而實際上,若正餘弦信號的相移\varphi =0即無相移的情況下,通過線性系統後的結果應如圖4、圖5所示。信號相移對通過線性系統後的信號的影響爲,兩段輸出信號繞各自旋轉中心旋轉。

圖4 餘弦信號通過線性系統
圖5 正弦信號通過線性系統

下面通過MATLAB仿真進行證明。

clear all
clc
T=0.05;             %採樣週期
fs=1/T;             %採樣頻率
t=-200:T:200;
fi=pi*(0:0.1:2);    %相位
h=2*t+5;
%figure,plot(t,h),title('線性系統')
for i=1:length(fi)
    x(i,:)=cos(t+fi(i));
    y(i,:)=conv(x(i,:),h);
end
%figure,plot(t,x(1,:));title('餘弦信號')
%------------------正弦信號相位不同,經過線性系統後輸出的包絡不同
tt=-400:T:400;                     %卷積後時域橫軸座標
% for i=1:length(fi)
%     figure
%     plot(tt,y(i,:)),xlim([-440,440])
% end
%--------------------------------正餘弦信號經過線性系統後的包絡
x1=sin(t);
y1=conv(x1,h);
x2=cos(t);
y2=conv(x2,h);
figure,plot(tt,y1),xlim([-440,440])
title('正弦信號經過線性系統'),xlabel('t'),ylabel('y(t)')
figure,plot(tt,y2),xlim([-440,440])
title('餘弦信號經過線性系統'),xlabel('t'),ylabel('y(t)')

由於圖像太多,此處不再一一展示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章