基于FPGA的BPSK+costas環實現,包含testbench,分析不同信噪比對costas環性能影響

目錄

1.算法仿真效果

2.算法涉及理論知識概要

3.Verilog核心程序

4.完整算法代碼文件獲得


1.算法仿真效果

本作品是之前作品的改進和擴展:

1.m基于FPGA的BPSK調制解調通信系統verilog實現,包含testbench,包含載波同步_csdn基于fpga的bpsk-CSDN博客

2.m基于FPGA的costas環載波同步verilog實現,包含testbench,可以修改頻偏大小_基于fpga的載波同步技術-CSDN博客

在上述兩個作品的基礎上做了如下的改進:

第一、優化了環路濾波器,使得costas環收斂曲線接近理論曲線;

第二、增加了awgn信道模塊,可以修改SNR,分析不同噪聲對costas環的鎖定性能影響;

vivado2019.2仿真結果如下(完整代碼運行后無水印)

局部放大:

仿真操作步驟可參考程序配套的操作視頻。

2.算法涉及理論知識概要

? ? ? ?Costas環是一種用于載波同步的常見方法,特別是在調制解調中,它被廣泛用于解調相位調制信號,如二進制調相(BPSK)或四進制調相(QPSK)信號。它的目的是估計和追蹤接收信號的相位偏移,以便正確解調數據。

? ? ? ?其基本結構如下圖所示:

Costas環結構:

? ? ? ?如上圖所示Costas環包括兩個主要部分:一個偏移90度的本地振蕩器(Local Oscillator,LO)和一個相移解調器。這兩個部分協同工作來估計信號的相位偏移。

Costas環包括以下主要組件:

本地振蕩器(Local Oscillator,LO): LO產生一個本地參考信號,其頻率與接收信號的載波頻率相同。這個本地參考信號通常包括正弦和余弦兩路信號,相位相差90度。這兩路信號將與接收信號相位進行比較。

相位解調器(Phase Detector): 相位解調器用于測量接收信號和本地振蕩器之間的相位差。它的輸出是一個帶有相位信息的信號。

環路濾波器(Loop Filter): 環路濾波器對相位差信息進行濾波和處理,以生成一個控制電壓。這個電壓將用于調整本地振蕩器的頻率和相位,以最小化相位差。

本地振蕩器控制單元: 這個單元接收來自環路濾波器的控制電壓,并相應地調整本地振蕩器的頻率和相位。

輸出: Costas環的輸出是本地振蕩器的相位信息,該信息已經被調整,以與接收信號的相位保持同步。這個輸出可以用于解調接收信號。

Costas環原理:

? ? ? ?Costas環的原理是利用接收信號和LO之間的相位差異來估計信號的相位偏移。當信號的相位偏移接近0或180度時,乘積信號的幅值最大,而當相位偏移接近90或270度時,乘積信號的幅值最小。因此,通過測量乘積信號的幅值,可以估計相位偏移。

? ? ? ? 設調制信號為m ( t ) ,m ( t ) 中無直流分量,則抑制載波的雙邊帶信號為:

和接收信號相乘后,得到的信號為?

濾波之后得到:

乘法鑒相器輸出得到?

當頻偏較小時,上述公式近似為:

3.Verilog核心程序

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2025/01/19 01:40:07
// Design Name: 
// Module Name: tops_costas
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:module tops_costas(
input            i_clk,
input            i_rst,
input signed[7:0]i_SNR,
input signed[1:0]i_msg,
output signed[7:0]o_msg_filter,
output  signed[15:0]o_msg_mod,
output  signed[15:0]o_msg_modn,
output signed[15:0]o_low_filter,
output signed[31:0]o_delta_fre
);T_mod T_mod_u(
.i_clk        (i_clk),
.i_rst        (i_rst),
.i_msg        (i_msg),
.o_msg_filter (o_msg_filter),
.o_msg_mod    (o_msg_mod)
);awgns awgns_u(.i_clk(i_clk), .i_rst(i_rst), .i_SNR(i_SNR), //這個地方可以設置信噪比,數值大小從-10~50,.i_din(o_msg_mod), .o_noise(),.o_dout(o_msg_modn));R_demod R_demodu(
.i_clk        (i_clk),
.i_rst        (i_rst),
.i_mod        (o_msg_modn),
.o_low_filter (o_low_filter),
.o_delta_fre  (o_delta_fre)
);endmodule
0sj_055m

4.完整算法代碼文件獲得

V

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66744.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66744.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66744.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 目錄操作詳解

Linux目錄操作詳解 1. 獲取當前工作目錄1.1 getcwd()1.2 get_current_dir_name() 2. 切換工作目錄2.1 chdir() 3. 創建和刪除目錄3.1 mkdir()3.2 rmdir() 4. 獲取目錄中的文件列表4.1 opendir() 打開目錄4.2 readdir() 讀取目錄內容4.3 closedir() 關閉目錄 5. dirent 結構體6.…

Spring 依賴注入詳解:創建 Bean 和注入依賴是一回事嗎?

1. 什么是依賴注入(Dependency Injection,DI)? 依賴注入 是 Spring IoC(控制反轉)容器的核心功能。它的目標是將對象的依賴(如其他對象或配置)從對象本身中剝離,由容器負…

AI時代的網絡安全:傳統技術的落寞與新機遇

AI時代的網絡安全:傳統技術的落寞與新機遇 在AI技術飛速發展的浪潮中,網絡安全領域正經歷著前所未有的變革。一方面,傳統網絡安全技術在面對新型攻擊手段時逐漸顯露出局限性;另一方面,AI為網絡安全帶來了新的機遇&…

后端開發Web

Maven Maven是apache旗下的一個開源項目,是一款用于管理和構建java項目的工具 Maven的作用 依賴管理 方便快捷的管理項目依賴的資源(jar包),避免版本沖突問題 統一項目結構 提供標準、統一的項目結構 項目構建 標準跨平臺(…

前沿技術趨勢洞察:2024年技術的嶄新篇章與未來走向!

引言 時光飛逝,2024年已經來臨,回顧過去一年,科技的迅猛進步簡直讓人目不暇接。 在人工智能(AI)越來越強大的今天,我們不再停留在幻想階段,量子計算的雛形開始展示它的無窮潛力,Web …

【10.2】隊列-設計循環隊列

一、題目 設計你的循環隊列實現。 循環隊列是一種線性數據結構,其操作表現基于 FIFO(先進先出)原則并且隊尾被連接在隊首之后以形成一個循環。它也被稱為“環形緩沖器”。 循環隊列的一個好處是我們可以利用這個隊列之前用過的空間。在一個普…

博客之星2024年度總評選——我的年度創作回顧與總結

2024年,是我在CSDN博客上持續耕耘、不斷成長的一年。在此,與大家分享一下我的年度創作回顧與總結。 一、創作成長與突破 在人工智能領域,技術迭代迅速,知識更新頻繁。為了保持自己的競爭力,在今年,我始終…

IDEA運行Java項目總會報程序包xxx不存在

我的在另外一臺電腦上跑是沒有問題的,在新的電腦上跑的時候,又出現了這個惡心的問題...... 思來想去,唯一的問題就是我的mavn環境沒的配置好 如何在本地部署mavn環境,這里推薦一篇很好的文章: Maven安裝與配置&…

java 根據前端傳回的png圖片數組,后端加水印加密碼生成pdf,返回給前端

前端傳回的png圖片數組,后端加水印加密碼生成pdf,返回給前端 場景:重點:maven依賴controllerservice 場景: 當前需求,前端通過html2canvas將頁面報表生成圖片下載,可以仍然不滿意。 需要java后…

數據分庫分表和遷移方案

在我們業務快速發展的過程中,數據量必然也會迎來突飛猛漲。那么當我們的數據量百倍、千倍、萬倍、億倍增長后,原有的單表性能就不能滿足我們日常的查詢和寫入了,此時數據架構就不得不進行拆分,比如單表拆分成10張表、100張表、單個…

線上突發:MySQL 自增 ID 用完,怎么辦?

線上突發:MySQL 自增 ID 用完,怎么辦? 1. 問題背景2. 場景復現3. 自增id用完怎么辦?4. 總結 1. 問題背景 最近,我們在數據庫巡檢的時候發現了一個問題:線上的地址表自增主鍵用的是int類型。隨著業務越做越…

[Java] Solon 框架的三大核心組件之一插件擴展體系

1、Solon 的三大核心組件 核心組件說明Plugin 插件擴展機制提供“編碼風格”的擴展體系Ioc/Aop 應用容器提供基于注入依賴的自動裝配體系ContextHandler 通用上下文處理接口提供“開放式處理”適配體系(俗稱,三元合一) 2、Solon Plugin 插件…

TRELLIS微軟的圖生3D

TRELLIS 教程目錄: Youtube:https://www.youtube.com/watch?vJqFHZ-dRMhI 官網地址:https://trellis3d.github.io/ GitHub:https://github.com/Microsoft/TRELLIS 部署目錄: 克隆項目 git clone --recurse-submodul…

Java導出通過Word模板導出docx文件并通過QQ郵箱發送

一、創建Word模板 {{company}}{{Date}}服務器運行情況報告一、服務器:總告警次數:{{ServerTotal}} 服務器IP:{{IPA}},總共告警次數:{{ServerATotal}} 服務器IP:{{IPB}},總共告警次數:{{ServerBTotal}} 服務器IP:{{IPC}}&#x…

【22】Word:小李-高新技術企業政策?

目錄 題目? NO1.2 NO3 NO4 NO5.6 NO7.8 NO9.10 若文章中存在刪除空白行等要求,可以到最后來完成。注意最后一定要檢查此部分!注意:大多是和事例一樣即可,不用一摸一樣,但也不要差太多。 題目 NO1.2 F12Fn&a…

自動化部署(三):項目管理平臺

一、項目管理平臺作用 幫助團隊高效規劃、執行和監控項目進度,確保任務按時完成并實現目標 敏捷開發:提供標準敏捷研發管理,支持Scrum 與 Kanban 規模化敏捷:支持大型研發團隊跨項目協同,實現多項目路線圖規劃和資源管…

常用集合-數據結構-MySql

目錄 java核心: 常用集合與數據結構: 單例集合: 雙列集合: 線程安全的集合: ConcurrentHashMap集合: HashTable集合: CopyOnWriteArrayList集合: CopyOnWriteArraySet集合: ConcurrentLinkedQueue隊列: ConcurrentSkipListMap和ConcurrentSkipListSet&…

IP屬地與視頻定位位置不一致:現象解析與影響探討

在數字化時代,IP屬地和視頻定位位置已成為我們獲取網絡信息、判斷內容真實性的重要依據。然而,有時我們會發現,某些視頻內容中展示的定位位置與其發布者的IP屬地并不一致。這種不一致現象引發了廣泛的關注和討論。本文旨在深入剖析IP屬地與視…

計算機畢業設計hadoop+spark股票基金推薦系統 股票基金預測系統 股票基金可視化系統 股票基金數據分析 股票基金大數據 股票基金爬蟲

溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 作者簡介:Java領…

機器學習-數據集劃分

文章目錄 一. 為什么要劃分數據集二. 數據集劃分的方法1. 留出法:2. 交叉驗證:將數據集劃分為訓練集,驗證集,測試集3. 留一法:4. 自助法: 一. 為什么要劃分數據集 為了能夠評估模型的泛化能力,可…