用MATLAB产生某个数字信号(数字信号处理)
发布网友
发布时间:2022-05-05 02:10
我来回答
共1个回答
热心网友
时间:2022-06-28 13:21
1 噪声的形式: 可以证明,只要采样带宽足够,带限白噪声可用高斯分布的随机序列产生;但是均匀分布的随机序列似乎一般不认为是白噪声。 我这里选用matlab的randn来做。
rand产生的是[0,1]上的均匀分布的随机序列(据我所知一般不是白噪声)
randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列(教课书有证明是白噪声)
设信噪比 SNR=20dB 即 10/1, randn的噪声方差就是其统计功率; 正弦信号的幅度为0.1, 功率为PS = 0.5*0.1^2=0.005; randn的功率就是 PN = PS*0.1 = 0.0005 ,则噪声为:
whiteNoise = sqrt(PN)*randn(TEST_LEN,1); % TEST_LEN = 4096 试验序列长度
2 正弦信号的归一化频率指定为0.125, 要仿真,首先确定一个采样率,设 FS = 1024;
toneSig = 0.1*sin(([1:TESTLEN]/TEST_LEN/FS)*2*PI*0.125);
3 试验信号加性合成
sig = toneSig + whiteNoise;