ZKX's LAB

用Matlab wgn函数生成指定功率谱密度高斯白噪声 matlab谱分析怎么产生白噪声

2021-04-09知识5

如何用matlab产生标准高斯噪声 生成高斯分布的随机数就用randn();要给指定信号加噪就用awgn()。给你举一例子:t=0:.1:10;x=sawtooth(t);Create sawtooth signal.y=awgn(x,10,'measured');Add white Gaussian noise.plot(t,x,t,y)%Plot both signals.legend('Original signal','Signal with AWGN');在给你补充一下:没有任何方法可以产生真正的白噪声。你的那个冲击函数怎么也是有宽度的吧?所以求出的功率谱密度不是直线很正常。并且求功率谱的算法也决定了功率谱计算不可避免的误差。功率谱的基本估计算法是FFT,FFT求功率谱的时候本身就有很多非理想性,所以有些误差也不奇怪。

如何在matlab里面向信号里面加入白噪声? y=awgn(x,SNR),复加性高斯白噪函数,x原信号,SNR是信噪比,不知道你这制个2%是能量还是幅值,如果是百能量的话,SNR=10*log(100/2);如果是幅值,SNR=20*log(100/2);代码如下:clc;clear;t=0:0.01:1;y1=(pi/2)*cos(2*pi*t)+(pi/64)*cos(pi*t/8+pi/3);SNR=10*log(100/2);2%是能量比x=awgn(y1,SNR);subplot(211),plot(t,y1);title('原信号度');加入噪声后有知毛刺,但2%的噪声有点小,道毛刺不明显。subplot(212),plot(t,x);title('加高斯白噪信号');

为什么matlab wgn函数产生的白噪声信号用FFT频谱分析结果不是一条直线 要直线的话那得用冲击函数吧:y=zeros(1,101);y(1)=1;fy=fftshift(fft(y));plot(abs(fy));这样就是了。虽然,我也以为白噪声在频谱上是直线。我也再研究一下,希望共同搞明白这个问题。

#matlab高斯白噪声#matlab谱分析怎么产生白噪声

随机阅读

qrcode
访问手机版