任务名称
2015年_E题:80MHz~100MHz 频谱分析仪
任务要求
难度

一、任务
设计制作一个简易频谱仪。频谱仪的本振源用锁相环制作。频谱仪的基本结构图如图 1 所示。 

二、要求
1. 基本要求
制作一个基于锁相环的本振源:
(1)频率范围 90MHz~110MHz;
(2)频率步进 100kHz;
(3)输出电压幅度 10~100mV,可调;
(4)在整个频率范围内可自动扫描;扫描时间在 1~5s 之间可调;可手动扫描;还可预置在某一特定频率; 

(5)显示频率;
(6)制作一个附加电路,用于观测整个锁定过程;
(7)锁定时间小于 1ms。
2. 发挥部分
制作一个 80MHz~100MHz 频谱分析仪:
(1)频率范围 80MHz~100MHz;
(2)分辨率 100kHz;
(3)可在频段内扫描并能显示信号频谱和对应幅度最大的信号频率;
(4)测试在全频段内的杂散频率(大于主频分量幅度的 2%为杂散频率)个数;
(5)其他。
三、说明
在频谱仪滤波器的输出端应有一个测试端子,便于测量。 

评审标准

参考答案

GPT-4o给出的设计方案:

1. 概述

设计并制作一个简易频谱仪,基于锁相环(PLL)生成本振源,其频率范围在90MHz到110MHz,频率步进为100kHz,并可调节输出电压幅度。频谱仪需具备自动和手动扫描功能,并显示频率和扫描信号的频谱。

2. 硬件结构

  1. 信号源输入

    • 使用SMA连接器输入待测信号,范围为90MHz-110MHz。
  2. 本振源

    • 利用锁相环(PLL)电路生成本振信号,频率范围可调节在90MHz到110MHz。
    • 采用集成频率合成器如ADF4351,实现频率稳定和精准控制。
  3. 混频器

    • 采用高线性度的混频器,如AD834,实现输入信号和本振信号的下混频。
  4. 滤波器

    • 使用带通滤波器,去除混频后的杂散频率和噪声信号,仅保留所需频段。
  5. 频率显示与控制模块

    • 控制器使用STM32微控制器,通过按键或旋钮实现频率步进和扫描控制。
    • 显示模块使用LCD或OLED屏,实时显示扫描的频率和幅度。
  6. 幅度显示

    • 采用信号检测电路,将幅度信号转换为适合显示的电压信号,通过ADC在控制器中读取并显示。
  7. 输出接口

    • 通过BNC或SMA接口输出滤波后的信号,便于后续测量和分析。

3. 工作原理

  1. 频率生成与控制

    • 使用锁相环(PLL)生成稳定的本振信号,通过微控制器实现频率调节和步进。
    • 预设频率和扫描时间,通过手动或自动方式完成频率扫描。
  2. 信号混频与滤波

    • 将输入信号与本振信号混频得到中频信号,经带通滤波器滤除无效频率成分。
  3. 频谱分析与显示

    • 检波电路检测中频信号幅度,通过控制器采集并显示在屏幕上,形成频谱图。
    • 扫描完成后,标识并显示出信号的主频率及幅度。

4. 电路实现

PLL频率合成电路

#include "ADF4351.h"
ADF4351 PLL;

void setup() {
  PLL.initialize(10, 4100); // 设置载波频率在90-110MHz范围内
}

void loop() {
  for (int freq = 9000; freq <= 11000; freq += 10) {
    PLL.setFrequency(freq * 100); // 频率步进100kHz
    delay(1000); // 1秒延时
  }
}

信号混频与滤波电路

// 中频滤波器设计:对应频率范围内选择适当的带通滤波器参数
void filter_design() {
  // 滤波器设计参数
}

控制与显示

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  pinMode(A0, INPUT);
}

void loop() {
  int freq = 9000; // 初始频率
  while (freq <= 11000) {
    // 设置频率
    PLL.setFrequency(freq * 100);
    
    // 读取幅度
    int amplitude = analogRead(A0);
    
    // 显示频率和幅度
    lcd.setCursor(0, 0);
    lcd.print("Freq: ");
    lcd.print(freq * 100);
    lcd.print(" kHz");
    
    lcd.setCursor(0, 1);
    lcd.print("Amp: ");
    lcd.print(amplitude);
    
    delay(1000);
    freq += 10; // 频率步进100kHz
  }
}

5. 调试与验证

  1. 调试

    • 先单独测试PLL频率锁定和步进功能,确保本振信号稳定输出。
    • 测试混频器和带通滤波器的性能,保证混频后的信号被有效滤波。
  2. 验证

    • 在实际输入信号范围(90MHz-110MHz)内,测试频谱仪的频率响应和幅度显示精度。
    • 验证扫描时间设置和手动预设频率的准确度,确保能够准确扫描并显示指定频率的信号。

该设计方案确保频谱仪在规定频率范围内具有较高的稳定性和准确度,满足自动和手动扫描功能,并能实时显示频率和信号幅度。


观察锁定过程的电路如何设计?

鉴于任务要求,设计一个观察锁定过程的电路,主要涉及到锁相环(PLL)电路和相关监控电路。下面是设计步骤和一个具体实现方案:

设计步骤

  1. PLL电路设计

    • 选择合适的PLL芯片,如ADF4351,作为频率合成器。
    • 配置外部元件,以实现所需的频率范围和步进。
  2. 锁定指示电路

    • 使用PLL芯片的锁定检测引脚(LOCK DETECT),输出锁定信号。
    • 设计LED指示灯电路来显示锁定状态。
  3. 频率监控电路

    • 使用频率计或MCU的定时器捕获功能,实时监测PLL输出的频率。
  4. 控制与显示电路

    • 利用MCU控制PLL的频率设置和步进。
    • 显示屏用于显示当前频率和锁定状态。

实现方案

  1. PLL设置与锁定指示
  • PLL配置(ADF4351)
#include <ADF4351.h>

ADF4351 PLL;

void setup() {
    PLL.initialize(10, 10000); // 配置起始频率10MHz到1000MHz
    pinMode(LOCK_DETECT_PIN, INPUT); // 锁定检测引脚
}

void loop() {
    PLL.setFrequency(100000000); // 设置频率为100MHz
    if (digitalRead(LOCK_DETECT_PIN) == HIGH) {
        // 锁定成功
        digitalWrite(LED_PIN, HIGH); // 点亮LED
    } else {
        // 未锁定
        digitalWrite(LED_PIN, LOW); // 关闭LED
    }
    delay(1000);
}
  • 锁定检测电路
PLL_LOCK_DETECT_PIN -- LED -- 电阻 -- GND
  1. 频率监控电路(使用频率计)
  • 频率计设计
#define FREQUENCY_PIN 8 // 频率输入引脚

unsigned long countPulse() {
    unsigned long duration = 1000; // 1秒测量
    unsigned long pulses = 0;

    unsigned long startTime = millis();
    while (millis() - startTime < duration) {
        if (digitalRead(FREQUENCY_PIN) == HIGH) {
            pulses++;
            while (digitalRead(FREQUENCY_PIN) == HIGH); // 等待脉冲结束
        }
    }
    return pulses;
}

void setup() {
    pinMode(FREQUENCY_PIN, INPUT);
    Serial.begin(9600);
}

void loop() {
    unsigned long frequency = countPulse();
    Serial.print("Frequency: ");
    Serial.print(frequency);
    Serial.println(" Hz");
    delay(1000);
}
  1. 控制与显示电路(MCU控制)
  • 控制与显示
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
    lcd.begin(16, 2);
    PLL.initialize(10, 10000); 
}

void loop() {
    int frequency = 100000000; // 设置频率为100MHz

    PLL.setFrequency(frequency); 

    if (digitalRead(LOCK_DETECT_PIN) == HIGH) {
        lcd.setCursor(0, 0);
        lcd.print("Locked");
    } else {
        lcd.setCursor(0, 0);
        lcd.print("Unlock");
    }

    lcd.setCursor(0, 1);
    lcd.print("Freq: ");
    lcd.print(frequency);
    lcd.print(" Hz");
    delay(1000);
}

设计说明

  1. 使用ADF4351作为锁相环频率合成器,实现从10MHz到1000MHz的频率输出。
  2. 利用MCU控制频率设置和扫描步进,并通过I/O引脚读取PLL的锁定状态。
  3. 实现锁定检测指示灯,通过PLL的LOCK DETECT引脚驱动LED,实现锁定状态的实时指示。
  4. 使用频率计或定时器捕获频率信号,实现实时频率监控。
  5. 最终通过LCD或其他显示器显示当前频率和锁定状态。

该设计方案可以有效观察PLL的锁定过程,实现对频率锁定状态的实时监控,并通过可视化的方式进行显示。


本题目考察的主要知识点:

  1. 锁相环(PLL)技术:了解PLL的原理和应用,包括锁定过程、频率合成和相位检测等。
  2. 频率合成与调制:掌握频率步进和调节技术,实现频率在90MHz到110MHz范围内的控制。
  3. 混频与滤波技术:理解信号混频和带通滤波的原理和实现,确保频谱分析的准确性。
  4. 信号检测与显示:实现输出信号的幅度检测和频率显示,能够在指定范围内准确展示信号频谱。
  5. 系统设计和集成:综合应用电子电路设计、FPGA编程和信号处理技术,完成整个频谱仪的设计、调试和性能验证。
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号