基于FPGA的AM调制解调:Modsim仿真与Quartus18.1/Vivado2017.4...

基于fpga的AM调制解调,有modlsim仿真,以及quartus18.1和vivado2017.4的工程文件,使用matlab设计解调需要的滤波器,fir才采用verilog实现,没有调用ip。 相关仿真如下图所示,如果板子有adc和dac,支持上板。

AM调制解调在通信系统里就像老司机必备的生存技能。咱们今天用FPGA整活这个经典方案,全程不调IP核,从Matlab滤波器设计到Verilog手撸FIR,最后还能真刀真枪上板实测。

先看发射端架构(敲黑板,重点来了)。载波直接用DDS生成,Verilog代码里这个相位累加器你品:

verilog 复制代码
always @(posedge clk) begin
    phase_acc <= phase_acc + 32'd42949673;  //1MHz载波@50MHz时钟
end

累加值每时钟周期加(2^32 * fout)/fclk,这种定点运算比浮点香多了。调制部分更暴力------直接把基带信号和载波相乘:

verilog 复制代码
assign am_wave = (carrier * (12'd2048 + baseband)) >> 11; //基带DC偏移+调幅

这里基带信号要加个直流偏移避免过调幅,移位操作相当于定点数规格化,比直接截位更稳。

接收端最骚的操作在解调。Matlab的fdatool生成FIR系数,注意导出时要做定点量化:

matlab 复制代码
h = fir1(63, 0.1);  % 10%截止频率
h_quant = round(h * 32767); %16位量化

生成的系数直接喂给Verilog实现的FIR滤波器。手写FIR核心是这个画风:

verilog 复制代码
always @(posedge clk) begin
    //移位寄存器更新
    delay_line <= {delay_line[62:0], am_signal};
    
    //乘累加操作
    for(int i=0; i<64; i=i+1) begin
        product[i] = $signed(delay_line[i]) * coeff[i];
    end
    sum = 0;
    for(int j=0; j<64; j=j+1) begin
        sum = sum + product[j];
    end
    filtered <= sum >>> 15; //数据对齐
end

这个并行结构虽然吃资源,但时序表现比串行实现强太多。注意右移15位对应Matlab的32767量化系数,信号对齐的坑踩过的人都懂。

ModelSim仿真时发现个鬼故事------当基带信号频率接近载波1/10时,解调波形会抽搐。后来发现是FIR过渡带没设计好,回Matlab把滤波器阶数从64提到128阶,立马稳如老狗。

上板实测环节,AD/DA配置要注意这个骚操作:

verilog 复制代码
assign dac_data = am_wave[23:8];  //16位有效位提取
always @(posedge adc_clk) begin
    demod_in <= {adc_data, 8'b0}; //左移8位提升计算精度
end

数据位宽处理不当会导致信噪比血崩,实测有效位损失超过3位时解调信号直接妈见打。

最后说个保命技巧:在Vivado里用XPMCLOCKGEN替代PLL,不同板卡移植时能少掉头发。Quartus用户当我没说,Altera的IP核脾气你们懂的。完整工程已传GitHub,自取时记得star,老铁们的三连是更新的动力!

相关推荐
2301_81062744颜斌5 天前
【无标题】从四色拓扑第一性原理到人造拓扑宇宙范式跃迁——人类物理认知的终极完整演进论述
拓扑学
多巴胺梦想家5 天前
02 命题逻辑:真与假的精密游戏
拓扑学
道影子6 天前
维性力网:超越时间的拓扑宇宙观
人工智能·深度学习·神经网络·拓扑学
月光船幽幽8 天前
Φ-MEU全息演算新范式
人工智能·科技·量子计算·拓扑学
AI科技星11 天前
基于全域数学公理体系求解三元约束极值题【乖乖数学】
人工智能·算法·机器学习·密码学·拓扑学·乖乖数学·全域数学
月光船幽幽14 天前
构建多节点耦合动力学仿真框架
人工智能·科技·拓扑学
学究天人14 天前
数学公理体系大全:第二章 一阶谓词演算:进入“所有”与“存在”
网络·算法·数学建模·动态规划·图论·抽象代数·拓扑学
学究天人14 天前
数学公理体系大全:第四章 ZFC公理的形式化与构造演算
线性代数·数学建模·矩阵·动态规划·图论·抽象代数·拓扑学
学究天人15 天前
数学公理体系大全:Comprehensive Collection of Mathematical Axiom Systems(卷7)
线性代数·矩阵·动态规划·概率论·图论·抽象代数·拓扑学
学究天人15 天前
数学公理体系大全:Comprehensive Collection of Mathematical Axiom Systems(卷6)
网络·算法·数学建模·动态规划·几何学·图论·拓扑学