1、随机产生32点长的序列 x和y,计算它们的循环相关函数和循环相干函数,并画图表示。 2、随机产生32点长的序列 x和y,计算它们的循环卷积和线性卷积,并画图表示。
时间: 2024-02-03 09:14:26 浏览: 19
循环相关函数和循环相干函数的计算:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机序列
x = np.random.rand(32)
y = np.random.rand(32)
# 计算循环相关函数
corr = np.correlate(x, np.roll(y[::-1], 1), mode='same')
# 计算循环相干函数
coh = np.abs(np.fft.ifft(np.fft.fft(x)*np.fft.fft(np.roll(y[::-1],1)).conj()))
# 绘制图像
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(8,8))
ax1.plot(corr)
ax1.set_title('Circular Correlation Function')
ax2.plot(coh)
ax2.set_title('Circular Coherence Function')
plt.show()
```
循环卷积和线性卷积的计算:
```python
import scipy.signal as signal
# 计算循环卷积
cconv = signal.fftconvolve(x, y, mode='same')
# 计算线性卷积
lconv = np.convolve(x, y, mode='same')
# 绘制图像
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(8,8))
ax1.plot(cconv)
ax1.set_title('Circular Convolution')
ax2.plot(lconv)
ax2.set_title('Linear Convolution')
plt.show()
```