一、任务
设计一个简易数字信号传输性能分析仪,实现数字信号传输性能测试;同时,设计三个低通滤波器和一个伪随机信号发生器用来模拟传输信道。简易数字信号传输性能分析仪的框图如图 1 所示。图中,V1 和 V1-clock 是数字信号发生器产生的数字信号和相应的时钟信号;V2 是经过滤波器滤波后的输出信号;V3 是伪随机信号发生器产生的伪随机信号;V2a 是 V2 信号与经过电容 C的 V3 信号之和,作为数字信号分析电路的输入信号; V4 和 V4-syn 是数字信号分析电路输出的信号和提取的同步信号。
二、要求
1.基本要求
(1)设计并制作一个数字信号发生器:
a)数字信号 V1 为 f (x) =1+x2+x3+x4+x8的 m 序列,其时钟信号为V1-clock;
b)数据率为 10~100kbps,按 10kbps 步进可调。数据率误差绝对值不大于 1%;
c)输出信号为 TTL 电平。
(2)设计三个低通滤波器,用来模拟传输信道的幅频特性:
a)每个滤波器带外衰减不少于 40dB/十倍频程;
b)三个滤波器的截止频率分别为 100kHz、200kHz、500kHz,截止频率误差绝对值不大于 10%;
c)滤波器的通带增益 AF在 0.2~4.0 范围内可调。
(3)设计一个伪随机信号发生器用来模拟信道噪声:
a)伪随机信号 f (x) =1+x+x4+x5+x12的 m 序列;
b)数据率为 10Mbps,误差绝对值不大于 1%;
c)输出信号峰峰值为 100mV,误差绝对值不大于 10% 。
(4)利用数字信号发生器产生的时钟信号 V1-clock进行同步,显示数字信号V2a的信号眼图,并测试眼幅度。
2.发挥部分
(1)要求数字信号发生器输出的 V1 采用曼彻斯特编码。
(2)要求数字信号分析电路能从 V2a中提取同步信号 V4-syn 并输出;同时,利用所提取的同步信号 V4-syn 进行同步,正确显示数字信号 V2a的信号眼图。
(3)要求伪随机信号发生器输出信号 V3 幅度可调,V3 的峰峰值范围为100mV~TTL 电平。
(4)改进数字信号分析电路,在尽量低的信噪比下能从 V2a 中提取同步信号 V4-syn,并正确显示 V2a的信号眼图。
(5)其他。
三、说明
1、在完成基本要求时,数字信号发生器的时钟信号 V1-clock 送给数字信号分析电路(图 1 中开关 S 闭合);而在完成发挥部分时,V1-clock不允许送给数字信号分析电路(开关 S 断开)。
2、要求数字信号发生器和数字信号分析电路各自制作一块电路板。
3、要求 V1、V1-clock、V2、V2a、V3 和 V4-syn 信号预留测试端口。
4、基本要求(1)和(3)中的两个 m 序列,根据所给定的特征多项式f1 (x)和f2 (x),采用线性移位寄存器发生器来产生。
5、基本要求(2)的低通滤波器要求使用模拟电路实现。
6、眼图显示可以使用示波器,也可以使用自制的显示装置。
7、发挥部分(4)要求的“尽量低的信噪比”,即在保证能正确提取同步信号 V4-syn 前提下,尽量提高伪随机信号 V3 的峰峰值,使其达到最大,此时数字信号分析电路的输入信号 V2a信噪比为允许的最低信噪比。
GPT-4o给出的设计方案:
本方案设计包括以下几部分:数字信号发生器、仿真信号发生器及滤波电路、数字信号分析电路和显示设备。系统的整体目的在于生成特定频率和幅度的数字信号,经过滤波和仿真调制后,通过数字信号分析电路分析其传输特性,并最终显示眼图等分析结果。
数字信号发生器电路:
低通滤波电路:
数字信号分析电路:
眼图显示电路:
计数器或波形发生器芯片(如74HC4040):
RC或LC滤波电路:
高速ADC(如ADS1256):
MCU或FPGA(如STM32F103或Xilinx Spartan-6):
以下代码示例展示了STM32接口的数字信号发生和采样分析过程:
#include "stm32f4xx.h"
// 信号发生与采样相关配置
void SystemClock_Config(void);
void GPIO_Config(void);
void Timer_Config(void);
void ADC_Config(void);
void DAC_Config(void);
// 主函数
int main(void) {
HAL_Init();
SystemClock_Config();
GPIO_Config();
Timer_Config();
ADC_Config();
DAC_Config();
while (1) {
// 实时信号采样与处理
uint16_t signal_val = HAL_ADC_GetValue(&hadc1);
Process_Signal(signal_val); // 对采样信号进行处理
HAL_Delay(1);
}
}
// 配置系统时钟
void SystemClock_Config(void) {
// 系统时钟配置代码
}
// GPIO配置
void GPIO_Config(void) {
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; // 假设PA0为信号输入,PA1为信号输出
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
// 定时器配置
void Timer_Config(void) {
// 配置定时器作为信号发生器时钟源
}
// ADC配置
void ADC_Config(void) {
// 配置ADC用于信号采样
}
// DAC配置
void DAC_Config(void) {
// 配置DAC用于信号输出
}
// 信号处理函数
void Process_Signal(uint16_t signal_val) {
// 信号处理代码
}
通过上述设计方案、关键电路及示例代码,可以实现该系统的完整功能,满足指定的性能要求,确保数字信号经过滤波和调制后的分析准确性,并生成清晰的眼图结果。