matlab仿真 通信信號和系統分析(上)

(內容源自詳解MATLAB/SIMULINK 通信系統建模與仿真?? 劉學勇編著第三章內容,有興趣的讀者請閱讀原書)

一、求離散信號卷積和

主要還是使用卷積函數conv,值得注意的是,得到的卷積和長度結果為81,是兩個原始序列長度相加-1(41+41-1);

?二、連續時間信號的傅里葉變換

使用函數fourier和函數ifourier進行傅里葉變換和傅里葉變換,可以注意到,將變量符號化后可以直接得到傅里葉變換后的數學表達式。

clear all;
syms t;%調用函數fourier和ifourier需要使用syms命令對涉及到的變量進行說明,將其說明為符號變量
f=t*exp(-abs(t));
subplot(1,2,1);ezplot(f);%函數fourier和ifourier得到的返回函數仍然是符號表達式,作圖應使用ezplot函數(有沖激函數ezplot無法使用)
F=fourier(f)
subplot(1,2,2);ezplot(abs(F));%abs(F)用來做幅頻特性的圖像

clear all;
syms t w;%在反變換中涉及到了t和w兩個變量,都需要符號化
F=pi*exp(-abs(w));
subplot(1,2,1);ezplot(abs(F));%頻譜圖
f=ifourier(F,t)%ifourier默認返回是關于x的函數,這里指定為返回t的函數
subplot(1,2,2);ezplot(f);%時域圖

?此題中是周期信號,不可積分,所以無法使用傅里葉變換,所以采用傅里葉級數進行求解

?

這題中我們是使用手動積分算出傅里葉級數的表達式后直接對表達式進行畫圖的,個人理解是因為無窮長的信號在matlab中表示較為復雜,所以反而是手動求解更快。

三、離散時間信號的傅里葉變換

clear all;
w=-1:0.001:1;%產生數字頻率的范圍,這里的單位長度是pi,所以只計算了[-pi,pi]范圍內的DTFT
n=0:20;%離散序列的時間范圍,0<n<20;
h(n+1)=1;%構造信號h(n)=1,這里n+1的理由是matlab數組都是從1開始計算的,數組索引必須為正整數或邏輯值。
x=h.*exp(j*pi*n/4);%構造信號x(n);
Hjw=h*(exp(-j*pi).^(n'*w));%dtft公式,這里n'*w是利用數字頻率和時間范圍構造了一個矩陣,之后將矩陣與-j*pi
%相乘后進行exp運算,最后將表達式與數字序列相乘,得到數字序列的DTFT值
Xjw=x*(exp(-j*pi).^(n'*w));
subplot(2,2,1);plot(w,abs(Hjw));
title('H');xlabel('pi弧度(w)');ylabel('振幅')
subplot(2,2,2);plot(w,angle(Hjw/pi));%用angle繪制相位圖,除以pi是因為以pi弧度為單位的
title('H');xlabel('pi弧度(w)');ylabel('相位')
subplot(2,2,3);plot(w,abs(Xjw));
title('H');xlabel('pi弧度(w)');ylabel('振幅')
subplot(2,2,4);plot(w,angle(Xjw/pi));
title('H');xlabel('pi弧度(w)');ylabel('相位')

clear all;
w=-1:0.001:1;%產生數字頻率的范圍,這里的單位長度是pi,所以只計算了[-pi,pi]范圍內的DTFT
n=0:30;%離散序列的時間范圍,0<n<30;
h=sinc(0.2*n);
x=2*sin(0.2*pi*n)+3*cos(0.4*pi*n);
Hjw=h*(exp(-j*pi).^(n'*w));
Xjw=x*(exp(-j*pi).^(n'*w));
Yjw=Xjw.*Hjw;%這里是第一種方法,通過DTFT求出x和h信號的傅里葉變換然后相乘,得到了輸出響應y的頻域表達
n1=0:2*length(n)-2;%這里卷積之后的長度等于用于卷積的序列長度相加-1(n+n-1)
dw=0.001*pi;%確定分段求和的步長
y=(dw*Yjw*(exp(j*pi).^(w'*n1)))/(2*pi);%通過y的頻域表達得到y的時域表達,需要用到IDTFT,由于IDTFT公式中用到了積分,這里使用
%分段求和代替積分,步長等于相鄰頻域的間隔,因為w=-1:0.001:1;,所以步長是0.001*pi。求和中和DTFT思路一致,都是用w'*n1
%兩個參數構造的矩陣實現的y1=conv(x,h);%這是第二種方法,時域卷積,第一種是頻域相乘,總結來說,就是時域卷積等價于頻域相乘。
subplot(3,1,1);plot(w,abs(Hjw));
title('H');xlabel('pi弧度(w)');ylabel('振幅');
subplot(3,1,2);plot(w,abs(Xjw));
title('X');xlabel('pi弧度(w)');ylabel('振幅');
subplot(3,1,3);plot(w,abs(Yjw));
title('Y');xlabel('pi弧度(w)');ylabel('振幅');  figure
subplot(2,1,1);stem(abs(y));title('通過IDTFT計算出的輸出序列Y');
subplot(2,1,2);stem(abs(y1));title('通過時域卷積計算出的輸出序列Y1');

這里有一個有意思的點,就是第9行的n1是從0開始的,但是在例3.10中的第4行h(n+1)中n+1是從1開始的,這是因為h(n+1)中是明確把n+1當做h的索引值了,只有正整數才能作為數組的索引值,而本例中只有利用n進行乘法運算,沒有當做索引值,所以可以從0開始。

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

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

相關文章

node.js+uniapp(vue),阿里云短信驗證碼

reg.vue: 思路是&#xff1a;前端調用獲取驗證碼的接口 > 后端生成驗證碼返回給前端 > 前端渲染驗證碼 <template> <div> <input class"sl-input" v-model"phone" type"tel" maxlength"11" placeholder"手…

微信小程序畢業設計-微信食堂線上訂餐系統項目開發實戰(附源碼+論文)

大家好&#xff01;我是程序猿老A&#xff0c;感謝您閱讀本文&#xff0c;歡迎一鍵三連哦。 &#x1f49e;當前專欄&#xff1a;微信小程序畢業設計 精彩專欄推薦&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python畢業設計…

【在線評論】不同視角下在線評論對客戶滿意度和推薦度的影響—推文分析—2024-07-01

今天的推文主題是【在線評論】&#xff0c;重點關注可以關注第四篇&#xff0c;很全面地分析了在線評論的信息多維性。 第一篇從客戶的在線評論入手&#xff0c;將客戶消費的動機為功利、享受、社會滿足&#xff1b;第二篇是關于在線評論對消費者再次選擇同一家酒店的機制探索…

MySQL之主從同步、分庫分表

1、主從同步的原理 MySQL主從復制的核心是二進制日志 二進制日志&#xff08;binlog&#xff09;記錄了所有DDL語句和DML語句&#xff0c;但不包括數據查詢&#xff08;select、show&#xff09;語句。 1.1、復制分三步 master主庫在事務提交時&#xff0c;會把數據變更記錄…

電子戰學習筆記01:電子戰概論

0、寫在文前 本人在學習電子戰相關理論知識時&#xff0c;一直感覺無從下手&#xff0c;之后在老師的推薦下購買了《EW101&#xff1a;電子戰基礎》紙質書籍學習&#xff0c;所以將自己的學習筆記在CSDN上記錄一下&#xff0c;也供有需要的同學參考。 1、電子戰定義 電子戰&…

Spring Boot與Apache Kafka集成的深度指南

Spring Boot與Apache Kafka集成的深度指南 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在現代分布式系統中&#xff0c;消息隊列的作用愈發重要&#xff0…

【鴻蒙學習筆記】鴻蒙ArkTS學習筆記

應用開發導讀&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-guide-V5 【鴻蒙培訓】第&#xff11;天?環境安裝 【鴻蒙培訓】第&#xff12;天?裝飾器?組件和頁面生命周期 【鴻蒙學習筆記】數據類型 【鴻蒙學習筆記】運算…

Spring Cloud中的服務發現與注冊

Spring Cloud中的服務發現與注冊 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討Spring Cloud中的服務發現與注冊&#xff0c;這是微服務架構中至…

全網最詳細的 gin框架請求數據綁定Bind 源碼解析 -- 幫助你全面了解gin框架的請求數據綁定原理和方法

在gin框架中&#xff0c;我們可以將多種請求數據&#xff08;json, form,uri&#xff0c;header等&#xff09;直接綁定到我們定義的結構體&#xff0c;底層是通過反射方式獲取我們定義在結構體上面的tag來實現請求數據到我們的結構體數據的綁定的。 在gin的底層有2大體系的數據…

Python pip install模塊時C++編譯環境問題

pip install模塊時C編譯環境問題 在接觸和使用python后&#xff0c;常常會通過pip install命令安裝第三方模塊&#xff0c;大多數模塊可以直接安裝&#xff0c;但許多新同學仍會遇見某些模塊需要實時編譯后才能安裝&#xff0c;如報錯信息大概是缺乏C編譯環境&#xff0c;本文則…

【Elasticsearch】Elasticsearch索引創建與管理詳解

文章目錄 &#x1f4d1;引言一、Elasticsearch 索引的基礎概念二、創建索引2.1 使用默認設置創建索引2.2 自定義設置創建索引2.3 創建索引并設置映射 三、索引模板3.1 創建索引模板3.2 使用索引模板創建索引 四、管理索引4.1 查看索引4.2 更新索引設置4.3 刪除索引 五、索引別名…

Go-知識測試-性能測試

Go-知識測試-性能測試 1. 定義2. 例子3. testing.common 測試基礎數據4. testing.TB 接口5. 關鍵函數5.1 testing.runBenchmarks5.2 testing.B.runN5.3 testing.B.StartTimer5.4 testing.B.StopTimer5.5 testing.B.ResetTimer5.6 testing.B.Run5.7 testing.B.run15.8 testing.B…

監聽藍牙對話的BlueSpy技術復現

本文是之前文章的BlueSpy技術的復現過程&#xff1a;https://mp.weixin.qq.com/s/iCeImLLPAwwKH1avLmqEpA 2個月前&#xff0c;網絡安全和情報公司Tarlogic在西班牙安全大會RootedCon 2024上提出了一項利用藍牙漏洞的BlueSpy技術&#xff0c;并在之后發布了一個名為BlueSpy的概…

深度學習之生成對抗網絡StyleGAN3

StyleGAN3 是由 NVIDIA 團隊提出的第三代生成對抗網絡(GAN),在前代 StyleGAN 和 StyleGAN2 的基礎上進行了改進,以實現更高質量的圖像生成。StyleGAN3 的主要改進在于解決了 StyleGAN2 中存在的偽影(artifacts)問題,并且提升了生成圖像的一致性和穩定性。 StyleGAN3 的…

git 提交代碼忽略eslint代碼檢測

在暫存代碼的時候會出現以上情況因為在提交代碼的時候會默認運行代碼進行檢測&#xff0c;如果不符合代碼規范就會進行報錯 解決&#xff1a; 使用 git commit --no-verify -m xxx 忽略eslint的檢測

Laravel 謹慎使用Storage::append()

在 driver 為 local 時&#xff0c;Storage::append()在高并發下&#xff0c;會存在丟失數據問題&#xff0c;文件被覆寫&#xff0c;而非尾部添加&#xff0c;如果明確是本地文件操作&#xff0c;像日志寫入&#xff0c;建議使用 Illuminate\Filesystem\Filesystem或者php原生…

技術成神之路:設計模式(一)單例模式

在軟件設計中&#xff0c;有時我們希望某個類的實例始終是唯一的&#xff0c;即無論在何處訪問這個類&#xff0c;都能夠得到同一個實例。單例模式&#xff08;Singleton Pattern&#xff09;就是為了解決這個問題而產生的。單例模式確保一個類只有一個實例&#xff0c;并提供一…

整合web-socket的常見bug

整合文章連接 此文是記錄我上網查找整合方案時候踩的坑,特別是注冊失敗的問題,比如還有什么去掉Compoent就可以,但是這樣這個端點就失效了 特別是報錯: at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoint(ServerEndpointExporter.…

大模型日報 2024-06-30

大模型日報 2024-06-30 大模型產品 Briefy: AI知識助手 摘要: Briefy是一款AI知識助手&#xff0c;為專業用戶簡化每日信息消費&#xff0c;將復雜信息提煉成結構化摘要&#xff0c;組織成知識庫&#xff0c;并以自然語言按需檢索。 Claude Projects&#xff1a;組織聊天與共享…

邀請函 | 極限科技全新搜索引擎 INFINI Pizza 亮相 2024 可信數據庫發展大會!

過去一年&#xff0c;在全球 AI 浪潮和國家數據局成立的推動下&#xff0c;數據庫產業變革不斷、熱鬧非凡。2024 年&#xff0c;站在中國數字經濟產業升級和數據要素市場化建設的時代交匯點上&#xff0c;“2024 可信數據庫發展大會” 將于 2024 年 7 月 16-17 日在北京悠唐皇冠…