全文预览

(参考)基于STM32的FSK调制解调实验报告

上传者:随心@流浪 |  格式:docx  |  页数:23 |  大小:2023KB

文档介绍
.1 FSK调制部分:Р由STM32系统时钟分频,通过系统内部逻辑产生码率为2000B的m序列作为基带信号,如果输入为“0”则通过控制DAC输出频率为f1的载波信号,如果输入为“1”则通过控制DAC输出频率为f2的载波信号。Р基带信号的产生:Р建立一个数组m[15],用于存储m序列作为基带信号。Рm序列码率的控制:РSTM32的系统时钟是8MHz,而我们需要得到码率为2000B的数字信号。Р所以每个数字信号所包含时钟脉冲个数n:Рn=8MHz/2000*8Hz=500 (1B=8bits)Р即每隔500个时钟脉冲调用一次数组,产生一个基带信号。РDAC的采样率的控制: Р本次实验采用8位的DAC,所以范围是0~255,也就是说将3.3V的电压分成256份,一个周期内可以产生512个采样点,完全符合实验要求的32个采样点。Р载波的频率控制:Р本次实验使用的STM32的系统时钟是8MHz,周期为T=1/8MHz。而为了得到f1=8000Hz,则周期1/f1=1/8000(s),一个周期有32个采样点,所以一个采样点的时间t=1/f1*32(s),所以每个点之间的系统Р时钟脉冲数n=t/T=30,即30个时钟脉冲才发送一个采样点;Р同理为了得到载波f2=4000Hz,每个采样点对应的时钟脉冲间隔数目为60。Р输出电压的计算:Р因为本次实验DAC的参考电压是3.3V,所以DAC的输出电压是线性的从0~3.3V,在12位模式下DAC输出电压与Vref+以及DORx的计算公式如下:DACx输出电压=Vref*(DORx/4095)Р所以我们可以通过输入的12位数字信号确定输出信号的电压,通过新建一个12位的数组用于代表由0~3.3V的线性16个点(采样点为32个,半个周期16个采样点)所对应的12位数字信号,然后通过线性改变这个数组所代表的数值的大小,逐个输出采样点。Р软件程序流程图:

收藏

分享

举报
下载此文档