复数序列傅里叶变换

题目

自己构造一个复数序列。
(a) 画出该复数序列的傅里叶变换的实部和虚部,看看是否具有对称性。
(b) 画出该序列的实部和虚部的傅里叶变换的实部和虚部,看看是否具有对称性。
(c) 比较(a) 和 (b) 的结果,验证二者之间的关系。

结论:

(a)

复数序列的傅里叶变换的实部和虚部都不具有对称性。

(b)

实部的傅里叶变换的实部关于纵轴轴对称

实部的傅里叶变换的虚部关于原点中心对称

虚部的傅里叶变换的实部关于纵轴轴对称

虚部的傅里叶变换的虚部关于原点中心对称

(c)

由于:
X ( e j ω ) = ∑ n = − ∞ ∞ x ( n ) e − j ω n 且 e − j ω n = c o s ( ω n ) − j s i n ( ω n ) X\left(e^{j \omega}\right)=\sum_{n=-\infty}^{\infty} x(n) e^{-j \omega n}\\ 且e^{-j \omega n} = cos(\omega n)-jsin(\omega n) X(e)=n=x(n)ejωnejωn=cos(ωn)jsin(ωn)
因此,对于任意实数序列,其傅里叶变换的实部为偶函数虚部为奇函数。故可验证**(b)**。

设序列为x[n],实部为r[n],虚部为i[n],则:
x [ n ] = r [ n ] + j i [ n ] x[n]=r[n]+ji[n] x[n]=r[n]+ji[n]
实部的傅里叶变换为:
R ( e j ω ) = R r + j R i ( 其中 R r 、 R i 是实数 ) R(e^{j\omega})=R_r+jR_i(其中R_r、R_i是实数) R(e)=Rr+jRi(其中RrRi是实数)
虚部的傅里叶变为:
I ( e j ω ) = I r + j I i ( 其中 I r 、 I i 是实数 ) I(e^{j\omega})=I_r+jI_i(其中I_r、I_i是实数) I(e)=Ir+jIi(其中IrIi是实数)

那么复数序列的傅里叶变换满足:
X ( e j ω ) = R ( e j ω ) + j I ( e j ω ) = ( R r + j R i ) + j ( I r + j I i ) = ( R r − I i ) + j ( R i + I r ) \begin{aligned} X(e^{j\omega}) &= R(e^{j\omega})+jI(e^{j\omega}) \\ &=(R_r+jR_i)+j(I_r+jI_i)\\ &=(R_r-I_i)+j(R_i+I_r) \end{aligned} X(e)=R(e)+jI(e)=(Rr+jRi)+j(Ir+jIi)=(RrIi)+j(Ri+Ir)
即:

复数序列傅里叶变换的实部 = 序列实部傅里叶变换的实部 - 序列虚部傅里叶变换的虚部
复数序列傅里叶变换的虚部 = 序列实部傅里叶变换的虚部 + 序列虚部傅里叶变换的实部

由于一个偶函数与一个奇函数相加或相减不一定还具有对称性,故可验证**(a)**。

解题过程:

1.生成数据:

python随机生成12个复数:

0.2259053 +0.19221032j0.14861288+0.83786972j0.1041318 +0.17227417j
0.67680176+0.40323321j0.30949007+0.49984603j0.60104535+0.56580997j
0.79662444+0.53144529j0.5672216 +0.09115468j0.89854002+0.61094691j
0.63207494+0.99955691j0.40820663+0.114274j0.26579465+0.4291581j
2.绘制图像

请添加图片描述
请添加图片描述请添加图片描述

相关代码:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 使用微软雅黑字体

# 生成复数序列
def generat(N):
    # 生成随机的实部和虚部
    x_r = np.random.rand(N)  # 生成实数部分
    x_i = np.random.rand(N)  # 生成虚数部分

    # 创建复数序列
    x = x_r + 1j * x_i

    # 打印生成的复数序列
    print("生成的复数序列:")
    print(x)
    return x


# 计算离散傅里叶变换
def FT(w, x):
    X = 0
    for n in range(N):
        X += x[n] * np.exp(-1j * w * n)
    return X

# 绘图
def draw(w, X, title):
    # 创建一个图形对象
    plt.figure(figsize=(8, 4))

    # 绘制函数图像
    plt.plot(w, X.real, label="Re", color="red")
    plt.plot(w, X.imag, label="Im", color="blue")

    # 添加标签和标题
    plt.xlabel(r'$\omega$')
    plt.ylabel("傅里叶变换实部或虚部值")
    plt.title(title)
    plt.legend()
    plt.axhline(0, color='black', linewidth=2)  # 加粗 x=0
    plt.axvline(0, color='black', linewidth=2)  # 加粗 y=0

    # 保存图形
    plt.grid(True)
    plt.savefig(title+".png")

    # 关闭图形对象
    plt.close()


N = 12
x = generat(N)
# 频域范围
w = np.linspace(-2 * np.pi, 2 * np.pi, 1000)

draw(w, FT(w, x), "复数序列的傅里叶变换")
draw(w, FT(w, x.real), "序列实部的傅里叶变换")
draw(w, FT(w, x.imag), "序列虚部序列的傅里叶变换")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值