随机信号相关仿真

随机信号相关仿真

题目一

     产生100个 N = 2000 N=2000 N=2000 的独立同分布的均值为0,方差为1的高斯分布随机数的离散时间序列,计算序列的自相关估值和功率谱密度的平均值
matlab实现代码如下:

%%
% 2024-08-13
% StarsZong

clear, clc;
close all;

mu = 0;
sigma = 1;
N = 100;
n = 2000;
R = normrnd(mu, sigma, N, n);

for i = 1: N
   [Rx(i, :), lags] = xcorr(R(i, :), 20, 'coeff');
   Sf(i, :) = fftshift(abs(fft(Rx(i, :))));
end
Rx_av = sum(Rx)/N;
Sf_av = sum(Sf)/N;
subplot(2, 1, 1);
plot(lags, Rx_av);
title('自相关系数');
axis([-20, 20, -0.5, 1.5]);
subplot(2, 1, 2);
plot(lags, Sf_av);
title('功率谱密度');
axis([-20, 20, 0, 2]);

实验结果如下:
在这里插入图片描述
注:
   信号的功率谱密度与自相关函数互为傅里叶变换对

题目二

     已知一噪声的自相关函数为 R ( τ ) = s i n ( 2 B τ ) c o s ( 2 π f 0 τ ) R(\tau)=sin(2B\tau)cos(2\pi f_{0} \tau) R(τ)=sin(2Bτ)cos(2πf0τ) ,其中 B = 20 , f 0 = 100 B=20, f_0 = 100 B=20,f0=100 ,试求该随机过程的功率谱密度
matlab实现代码如下:

%%
% 2024-08-13
% StarsZong

clear, clc;
close all;

B = 20;
f0 = 100;
fs = 20000; 	%-->采样率 
N = 2000;		%-->采样区间
dt = 1/fs;
t = 0: dt: (N-1)*dt;

Rt = sin(2*B*t).*cos(2*pi*f0*t);
Sf = fftshift(abs(fft(Rt)));

w = (-N/2: 1: N/2-1)*fs/N;
plot(w, Sf);
title('功率谱密度');
axis([-10^3, 10^3, 0, 500]);

实验结果如下:
在这里插入图片描述
注:
   f 0 f_0 f0看作载波,B看作信号 --> 载波:频谱/功率谱的偏移量,信号:频谱/功率谱的带宽

题目三

     估计两个正弦信号加高斯白噪声的功率谱,信号为 S ( t ) = c o s ( 2 π f 1 t ) + c o s ( 2 π f 2 t ) S(t) = cos(2\pi f_1t) + cos(2\pi f_2t) S(t)=cos(2πf1t)+cos(2πf2t),其中 f 1 = 300 f_1 = 300 f1=300 f 2 = 310 f_2 = 310 f2=310
matlab实现代码如下:

%%
% 2024-08-13
% StarsZong

clear, clc;
close all;

f1 = 300;
f2 = 310;
fs = 20000;
N = 2000;
dt = 1/fs;
t = 0: dt: (N-1)*dt;
aix = 3000;

st = cos(2*pi*f1*t) + cos(2*pi*f2*t);
No=wgn(1,N,1);		%加噪声
St = st + No;

[Rx, lags] = xcorr(St, aix, 'coeff');
Sf = fftshift(abs(fft(Rx)));

subplot(2, 1, 1);
plot(lags, Rx);
title('自相关系数');
axis([-aix, aix, -0.5, 1.5]);
subplot(2, 1, 2);
plot(lags, Sf);
title('功率谱密度');
axis([-aix, aix, 0, 300]);

实验结果如下:
在这里插入图片描述

代码相关

xcorr:计算相关函数
fft:计算傅里叶变换
fftshift:将傅里叶变换频谱移动到中心点(原点)
wgn:添加高斯白噪声

不清楚的函数可在matlab内通过:"help 函数名" 进行函数查看
  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值