产生带噪采样信号

2024-04-20 13:30:38 发布

您现在位置:Python中文网/ 问答频道 /正文

为了能够测量我的模数转换器的性能,我想对任意信号进行采样和归一化。创建的信号必须有一个rms值的噪声,我必须绘制信号的频谱功率密度。你知道吗

所以我写了这个代码(我不知道这是否行,我是一个初学者),我想知道为什么我没有形象化的数字绘制。你知道吗

import matplotlib.pyplot as plt 
import numpy as np
%matplotlib notebook
%matplotlib notebook

StopTime = 0.01
N = 1024  
Te = 1.0
Fe = 1.0/Te
t = np.arange(0,Te,StopTime-Te)
f = Fe/2
x = np.sin(2*np.pi*f*t*N)
plt.plot(x)
plt.show()

Tags: import信号matplotlibasnp绘制plt性能
1条回答
网友
1楼 · 发布于 2024-04-20 13:30:38

因为这是你(无意中)告诉matplotlib的。你知道吗

>>> x
array([], dtype=float64)

x是一个空数组,所以打印它什么也不打印。它是空的,因为t也是空数组。我不确定您的参数是什么,但是arange通常应该只与整数值一起使用,并且步长(第三个参数)应该小于停止值(第二个参数)。对于生成浮点数序列,np.linspace更好。你知道吗

解决这个问题(把信号生成放在采样频率上,因为我不确定你的参数是什么),代码生成一个有噪声的信号是非常困难的

import matplotlib.pyplot as plt 
import numpy as np

## Parameters used
StopTime = 0.5 # End of signal 
Fs = 1024 # Sampling rate
f = 30     # Frequency of simulated signal

## Generate sample times
t = np.linspace(0,StopTime, StopTime*Fs)

## Generate signal
x = np.sin(2*np.pi*t*f)

## Add noise to signal
noise = np.random.randn(len(x))
print('rms noise value:', sqrt(mean(randn(10000)**2)))
xn = x + noise

plt.plot(t, x)
plt.plot(t, xn)
plt.show()

相关问题 更多 >