程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2022-02(12)

2022-03(5)

荐二次抑制载波振幅调制接收系统 Python

发布于2020-03-20 13:45     阅读(940)     评论(0)     点赞(11)     收藏(2)


快速链接:

二次抑制载波振幅调制接收系统

  • 已知:
    输入信号:
    f(t)=sin(t)πt=Sa(t)π,<t< f(t) = \displaystyle \frac{sin(t)}{\pi t} = \frac{\text{Sa(t)}}{\pi} , \; -\infty < t < \infty
    调制信号:
    s(t)=cos(500t),<t< s(t) = cos(500t) , \; -\infty <t<\infty

  • 问: 输出信号 y(t)=? y(t) = ?

二次抑制载波振幅调制接收系统

  • 下式说明:

    • Sa(t)/π \text{Sa}(t)/\pi 为非周期, 使用 傅里叶变换分析法
    • 步骤 (详见):
      1. 从图中已知系统函数 H(jω)=g2 H(j\omega)= g_2 门宽为 2 2 ;
      2. 求输入信号 f(t) f(t) 的傅里叶变换 F(jω) F(j\omega) ;
      3. 求调制信号的傅里叶变换 S(jω) S(j\omega) ;
      4. 求零状态响应 y(t) y(t) 的傅里叶变换 Y(jω)=Fb(jω)H(jω) Y(j\omega)=F_b(j\omega)\cdot H(j\omega) ;
      5. Y(jω) Y (j\omega) 的傅里叶逆变换 y(t)=F1[Fb(jω)H(jω)] y(t)=\mathfrak{F} ^{-1}\big[F_b(j\omega)H(j\omega)\big]
    • 其中 δ \delta 卷积特性 δ(kk1)δ(k+k2)=δ(kk1+k2) \delta(k-k_1) \star \delta(k+k_2) = \delta(k-k_1+k_2)
      • g(ω) g(\omega) 门函数特性 为 0,ω>1orω<1 0,\; \omega>1 \; \text{or}\; \omega<-1
  • 可知
    H(jω)=g2(ω) H(j\omega) = g_2(\omega)
    f(t)=Sa(t)πg2(ω)=F(jω)s(t)=cos(500t)π[δ(ω+500)+δ(ω500)]=S(jω) \begin{aligned}f(t)= \frac{\text{Sa(t)}}{\pi} &\longleftrightarrow g_2(\omega)=F(j\omega) \\s(t) = cos(500t) &\longleftrightarrow \pi \big[\delta(\omega+500)+\delta(\omega-500)\big]=S(j\omega)\end{aligned}

    y(t)=f(t)×s(t)×s(t)h(t)Y(jω)=14π2F(jω)S(jω)S(jω)H(jω)=14π2g2(ω)π[δ(ω+500)+δ(ω500)]π[δ(ω+500)+δ(ω500)]H(jω)=14π2g2(ω)π2[δ(ω+1000)+2δ+δ(ω1000)]H(jω)=14g2(ω)[δ(ω+1000)+2δ+δ(ω1000)]g2(ω)=12g2(ω)y(t)=Sa(t)2π=12f(t) \begin{aligned}y(t) & = f(t){\color{blue} \times} s(t){\color{blue} \times} s(t) \star h(t)\\Y(j\omega) & = {\color{blue}\frac{1}{4 \pi^2}} F(j\omega) {\color{blue}\star} S(j\omega) {\color{blue}\star} S(j\omega) \cdot H(j\omega) \\&= \frac{1}{4 \pi^2} g_2(\omega) {\color{blue}\star} \pi \big[\delta(\omega+500)+\delta(\omega-500)\big] {\color{blue}\star} \pi \big[\delta(\omega+500)+\delta(\omega-500)\big] \cdot H(j\omega) \\&= \frac{1}{4 {\color{green}\pi^2}} g_2(\omega) {\color{blue}\star} {\color{green}\pi^2} \big[\delta(\omega+1000)+2\delta+\delta(\omega-1000)\big] \cdot H(j\omega) \\&= \frac{1}{4} g_2(\omega) {\color{blue}\star} \big[\delta(\omega+1000)+2\delta+\delta(\omega-1000)\big] \cdot g_2(\omega) \\&= \frac{1}{2}g_2(\omega)\\y(t) & = \frac{Sa(t)}{2\pi} = \frac{1}{2}f(t) \end{aligned}

    # 导入 需要的 library 库  
    import numpy as np # 科学计算
    import matplotlib.pyplot as plt # 画图工具
    import scipy.signal as sg # 导入 scipy 的 signal 库 重命名为 sg
    # 用 Python 表示 
    t = np.linspace(-4*np.pi,4*np.pi,1601) 
    def draw_graph(t,f,title): # 设置好绘图参数
        plt.plot(t,f,'-') 
        plt.xticks(t[::200],[fr'${int(i/np.pi)}\pi$'for i in t[::200]])
        plt.title(title)
        plt.grid(True)
        plt.show()
    ft = np.sin(t)/(np.pi*t)
    # 开始绘图
    draw_graph(t,ft,r'$f(t)$')

在这里插入图片描述

    st = np.cos(500*t)
    fat = ft*st
    # 开始绘图
    draw_graph(t,fat,r'$f_a(t)$')

output_6_0.png

    fbt = fat*st
    # 开始绘图
    draw_graph(t,fbt,r'$f_b(t)$')

(output_7_0.png)

H(jω)=g2(ω)sin(t)tπ=Sa(t)π=h(t) H(j\omega)=g_2(\omega) \longleftrightarrow \frac{\sin(t)}{t\pi} = \frac{\text{Sa}(t)}{\pi} = h(t)

    ht = np.sin(t)/(t*np.pi)
    yt = sg.convolve(fbt,ht)*(np.pi/200) # 低通滤波器  
    draw_graph(t,yt[800:2401],r'$y(t)$')

(output_9_0.png)

  • 为更清楚展示原理, 取 s(t)=cos(10t) s(t) =\cos(10t)
    st = np.cos(10*t)
    fat2 = ft*st
    # 开始绘图
    draw_graph(t,fat2,r'$f_a(t),\; s(t) =\cos(10t)$')

(output_11_0.png)

    fbt2 = fat2*st
    # 开始绘图
    draw_graph(t,fbt2,r'$f_b(t),\; s(t) =\cos(10t)$')

(output_12_0.png)

    yt2 = sg.convolve(fbt2,ht)*(np.pi/200)
    # 开始绘图
    draw_graph(t,yt2[800:2401],r'$y(t),\; s(t) =\cos(10t)$')

(output_13_0.png)



所属网站分类: 技术文章 > 博客

作者:战天

链接:https://www.pythonheidong.com/blog/article/271237/b3fa030140a14b61c53c/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)