用matlab仿真正弦信号白噪声信号代码

2024-11-24 12:26:08
推荐回答(3个)
回答1:

可以用matlab里的simulink得到你所说的信号。
在soucers里能直接找到正弦、白噪声,再把正弦和白噪声加起来就得到正弦信号附加白噪声。
simulink仿真里的模块,直接拖进去就行了,分别将你需要的信号输出命名,再在workspace里就可以引用了。
-----------------------------
不知道你会不会使用matlab。如果有那么一点点基础的话,我想我说的你肯定能理解了。要是不会使用的话,光靠我一两句话也是很难教会你的。去买本教程看看吧,估计网上也能下载到。

回答2:

看下面行不行,你可以改变参数得到你自己的需求。给了两种加噪声的方式,你可以选择,第一种是根据信噪比,第二种根据噪声方差。做出了频谱,功率谱;
clc;
clear all;
close all;

fs=100;%采样频率100hz
N=1000;%采样点数
t=(0:1:N-1)/fs;
f=10;%正弦信号频率10hz

s0=sin(2*pi*f*t);%正弦信号

am=max(abs(s0));
% % -------加噪方案1(由加噪后信噪比确定高斯白噪声)-----
snr=5; %设定加入白噪声后的信噪比为5db(均值为0)
Pv=(am/(10^(snr/20)))^2;%噪声方差
% % --------------------------------------------------

% % -------加噪方案2(由噪声方差确定高斯白噪声) --------
% % Pv=3; %设定白噪声方差(均值为0)
% % snr=20*log10(am/(sqrt(Pv))); %求信噪比
% % % % ---------------------------------------------------

% % % ---------加噪声-------------
v=rand(1,N);
v=v*sqrt(Pv);%白噪声
s=s0+v;%信号加噪声
% % ----------信号画图-------------
figure(1)
subplot(3,1,1),plot(s0);
title('原始信号')
subplot(3,1,2),plot(s);
title(['加噪信号 信噪比= ',num2str(snr),' dB. 噪声方差= ',num2str(Pv)])

s1=detrend(s);%去趋势
ffs=abs(fft(s1));
ffs=ffs*2/N;%频谱
%%ffs=ffs.^2;%功率谱
subplot(3,1,3),plot(ffs(1:N/2));
title('加噪信号FFT')

回答3:

help randn
help fft xcorr