女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MATLAB實現(xiàn)FM調(diào)制解調(diào)

FPGA設(shè)計論壇 ? 來源:CSDN技術(shù)社區(qū) ? 作者:CSDN技術(shù)社區(qū) ? 2025-06-06 11:02 ? 次閱讀

首先FM調(diào)制時屬于非線性調(diào)制中的一種,常見的非線性調(diào)制時FM(頻率調(diào)制),PM(相位)調(diào)制

FM調(diào)制:就是利用調(diào)制信號的變化去改變載波的頻率,幅度保持不變,即載波信號的頻率隨我們調(diào)制信號的幅度變化而變化。

首先我們先介紹一些通信原理上的基本得概念:

344c0d02-404d-11f0-b715-92fbcf53809c.png

現(xiàn)在FM調(diào)制就是我們將我們的基帶信號替換位其φt,但是我們會在其基帶信號的前面乘以一個調(diào)頻系數(shù),也叫調(diào)頻靈敏度。這就通過我們基帶信號的振幅,改變其載波的頻率,這樣就是實現(xiàn)了頻率調(diào)制。下面我們假設(shè)基帶信號為一個余弦波:

3492b306-404d-11f0-b715-92fbcf53809c.jpg

34aba974-404d-11f0-b715-92fbcf53809c.png

上述就是其FM 調(diào)制的數(shù)學(xué)式子,這就實現(xiàn)了其FM 調(diào)制

這里說明上圖中的積分轉(zhuǎn)化為求和,因為積分是我們的連續(xù)域的,而我們的這都是數(shù)字信號,都是連續(xù)域,這就相當(dāng)于我們的信號與系統(tǒng)中的傅里葉變化對應(yīng)連續(xù)域,Z變化對應(yīng)離散域。所以連續(xù)域的積分對應(yīng)到離散域就是求和。

IQ調(diào)制:現(xiàn)代通信系統(tǒng)為了使頻譜利用率更高,用了許多種矢量調(diào)制,IQ調(diào)制中,兩個正交信號(頻率相同,相位相差90 °的載波,一般用Sin和Cos表示)與I(In-Phase,同相分量)、Q(Quadrature Phase,正交分量)兩路信號分別調(diào)制后一起發(fā)射,從而提高頻譜利用率。

所以接下來我們要將上式轉(zhuǎn)為IQ兩路,然后利用天線進(jìn)行發(fā)送

34c64cd4-404d-11f0-b715-92fbcf53809c.jpg

我們I路信號為:cos ,圖中的cos(wt) 為載波信號

我們Q路信號為:sin , 圖中的sin(wt) 為載波信號

FM解調(diào):

相干解調(diào):相干解調(diào)也叫同步檢波,它適用于所有線性調(diào)制信號的解調(diào)。實現(xiàn)相干解調(diào)的關(guān)鍵是接收端要恢復(fù)出一個與調(diào)制載波嚴(yán)格同步的相干載波。相干解調(diào)是指利用乘法器,輸入一路與載頻相干(同頻同相)的參考信號與載頻相乘。

非相干解調(diào):通信接收端從已調(diào)高頻信號中恢復(fù)出原始數(shù)字基帶信號時,采用的非相干解調(diào)方式,相對于相干解調(diào)方式,是指不需要提取載波信息的一種解調(diào)方法。

所謂相干,泛泛地說就是相互干擾;相干解調(diào)是指利用乘法器,輸入一路與載頻相干(同頻同相)的參考信號與載頻相乘。

這里的解調(diào)是運用的非相干解調(diào):

我們將上述的調(diào)制信號分別乘以coswt,-sinwt,就可以得到相應(yīng)的IQ路的數(shù)據(jù),然后分別通過一個低通濾波器,濾除高頻分量,就可以的得到以基帶信號為頻率的I路Q路載波信號,然后兩個再相比,就可以得到其正切值,再求反正切就可以了的到其角度,角度就是我們的基帶信號。

34dd31ba-404d-11f0-b715-92fbcf53809c.png

35052c6a-404d-11f0-b715-92fbcf53809c.jpg

35239efc-404d-11f0-b715-92fbcf53809c.jpg

這里的微分在離散域其實就是我們的相連的數(shù)據(jù)求差分。所以我們直接就可以求得基帶信號m.

FM調(diào)制matlab實現(xiàn)。

說明:因為后續(xù)會用硬件FPGA 實現(xiàn),所以matlab 實現(xiàn)實現(xiàn)算法也會像盡可能的逼近其硬件。

思路:

產(chǎn)生基本的信號:基帶信號m(n),載波cos(wt),sin(wt)的實現(xiàn)

我們這里實現(xiàn)信號發(fā)生器是用的查表法,即FPGA,MATLAB 產(chǎn)生DDS,這里就不說明其方法了,相關(guān)信息可以看我發(fā)的其他博客,里面有詳細(xì)的教程,以及原理介紹。

下面就是FM調(diào)制解調(diào)代碼:

clc;

clear all;

%*****************************************

fs = 16e6; %采樣率 載波的采樣率

fc = 1e6; %載波中心頻率

df = 75e3; %最大頻偏

fm = 16e3; %音頻的采樣率

kf = (df*2^32/fs)/32767;

AC= 1024;%幅度

%由于我們的載波的采樣率是我們的音頻的采樣率的1000倍,但是我們在進(jìn)行FM調(diào)制時

%會用到兩個相乘,所以相當(dāng)于一個語音信號的點,要被采樣1000次,并且要求數(shù)據(jù)長度一致

%所以我們可以將語音信號的每一個樣點復(fù)制1000次

%read pcm file

%*********************

%read pcm file

file= fopen('v3edu.pcm','r');

m=fread(file,'int16');

m_len=length(m)*fs/fm;%按照載波采樣率的長度計算

figure(1);

plot(m);title('原始的語音信號');

%*****************************

%generate 1Mhz

w=fc*2^32/fs; %頻率控制字,32位的相位累加器, f_out = fs*w/2^N :

% 載波的ROM

n=0:1/1024:1023/1024;

s_rom=sin(2*pi*n);

c_rom=cos(2*pi*n);

%plot(s_rom);

%接下來產(chǎn)生載波地址,

w_r=0;%相位累加器

rrom_addr=0;%

cw_sin=zeros(1,m_len);%這個相當(dāng)于是我們的查找表,一個周期的正弦波

cw_cos=zeros(1,m_len);

for i=1:m_len

w_r = w_r + w;

if(w_r > 2^32) % 做32位累加器的溢出判斷

w_r= w_r - 2^32;

end

rrom_addr=round(w_r/2^22);%讀查找表的地址

if rrom_addr == 0%matlab計數(shù)時從1開始計數(shù)

rrom_addr =1;

end

cw_sin(i)=s_rom(rrom_addr);%%%%%%載波完成

cw_cos(i)=c_rom(rrom_addr);%載波

end

figure(2);

subplot(2,1,1);plot(cw_sin(1:3000),'r');title('sin載波信號');

subplot(2,1,2);plot(cw_cos(1:3000),'b');title('cos載波信號');

%給音頻數(shù)據(jù)升采樣,與載波長度一致,后面要相乘,所以要保證信號的長度是一樣的

m_t=zeros(1,m_len);

for i=1:length(m)

for j=1:fix(fs/fm)

m_t((i-1)*fix(fs/fm)+j)=m(i);%同一個16k的采樣點復(fù)制1000次這樣就是16M采樣點

end

end

%*************************

%調(diào)制 sin 和cos 的信號

w_r=0;%相位累加器

rrom_addr=0;%

dac_i=zeros(1,m_len);%cos,I路信號

dac_q=zeros(1,m_len);%sin Q路信號

for i=1:m_len

w_r = w_r + kf*m_t(i);

if(w_r > 2^32) % 做32位累加器的溢出判斷

w_r= w_r - 2^32;

elseif(w_r <0)

w_r = w_r + 2^32; % 負(fù)的溢出時

end

rrom_addr=round(w_r/2^22);%讀查找表的地址

if rrom_addr == 0

rrom_addr =1;

end

dac_q(i)=AC*s_rom(rrom_addr);

dac_i(i)=AC*c_rom(rrom_addr);%載波

end

%****************************

%正交調(diào)制

s_t=zeros(1,m_len);

for i=1:m_len

s_t(i) = dac_i(i)*cw_cos(i) + dac_q(i)*cw_sin(i)*(-1);

end

figure(3);

plot(s_t);title('調(diào)制完成信號');

調(diào)制結(jié)束

MATLAB 濾波器的實現(xiàn):

我們實現(xiàn)一個簡單的低通濾波器,只需要將我們我們需要的濾波器參數(shù)輸入Filter Solutions中,然后復(fù)制器抽頭系數(shù),然后與我們的輸入數(shù)據(jù)相卷積就可以了,下面的代碼有注釋.

%%%%%%%%%%%%正交解調(diào)%%%%%%%%%%%%%%%%

i_data = zeros(1,m_len);

q_data = zeros(1,m_len);

for i = 1 : m_len

i_data(i) = s_t(i) * cw_cos(i);

q_data(i) = (-1)* s_t(i) * cw_sin(i);

end

%%%%%%%%%%%%%%進(jìn)行低通濾波%%%%%%%%%%%%%%%%

%濾波器抽抽頭系數(shù),

NUM = [-7.894e-05, -2.483e-04, -4.516e-04, -7.089e-04, -1.035e-03, -1.435e-03, -1.903e-03, -2.417e-03, -2.938e-03, -3.415e-03, -3.778e-03, -3.948e-03, -3.837e-03, -3.357e-03, -2.42e-03, -9.524e-04, 1.106e-03, 3.791e-03, 7.113e-03, 1.105e-02, 1.554e-02, 2.051e-02, 2.583e-02, 3.135e-02, 3.691e-02, 4.233e-02, 4.742e-02, 5.199e-02, 5.588e-02, 5.894e-02, 6.105e-02, 6.213e-02, 6.213e-02, 6.105e-02, 5.894e-02, 5.588e-02, 5.199e-02, 4.742e-02, 4.233e-02, 3.691e-02, 3.135e-02, 2.583e-02, 2.051e-02, 1.554e-02, 1.105e-02, 7.113e-03, 3.791e-03, 1.106e-03, -9.524e-04, -2.42e-03, -3.357e-03, -3.837e-03, -3.948e-03, -3.778e-03, -3.415e-03, -2.938e-03, -2.417e-03, -1.903e-03, -1.435e-03, -1.035e-03, -7.089e-04, -4.516e-04, -2.483e-04, -7.894e-05];

adc_i = conv(i_data,NUM); %低通濾波

adc_q = conv(q_data,NUM);%%%%

%%%%%%%%%%%%%FM解調(diào)%%%%%%%%%%%%%%%%%%%%%%

%重新檢測數(shù)據(jù)長度

c_len = length(adc_i);

cr = zeros(1,c_len);

cj = zeros(1,c_len);

for i = 2: c_len %必須從2開始,因為有I-1

cr(i) = adc_i(i)*adc_i(i) +adc_q(i)*adc_q(i);

cj(i) = adc_i(i-1) * adc_q(i) - adc_i(i)* adc_q(i-1);%I(n-1)*Q(n) -I(n)*Q(n-1)

end

angle = zeros(1,c_len);

for i = 1:c_len

if cr(i) == 0

angle(i) = 0;

else

angle(i) = (cj(i)/cr(i))*2 ^16; %FPGA 中沒有小數(shù),要進(jìn)行量化

end

end

%%%%%%%%%%%%%降采樣%%%%%%%%%%%%%%%%%%%%%%%%%

%降采樣,以均值方式,16M,降到16k

d_len = length(angle);

sum = 0;

cnt = 0;

demout = zeros(1,fix(d_len*(fm/fs)));

d_cnt = 1;

for i= 1:d_len

sum = sum + angle(i);

if cnt == fs/fm %完成1000次的累加

demout(d_cnt) = sum /cnt;

d_cnt = d_cnt + 1;

cnt = 0;

sum= 0;

end

cnt = cnt + 1;

end

figure(4);

plot(demout);title('解調(diào)后的信號');

最后結(jié)果圖:

353faa2a-404d-11f0-b715-92fbcf53809c.jpg

355f9920-404d-11f0-b715-92fbcf53809c.jpg

35787562-404d-11f0-b715-92fbcf53809c.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 調(diào)制解調(diào)

    關(guān)注

    0

    文章

    76

    瀏覽量

    21852
  • matlab
    +關(guān)注

    關(guān)注

    188

    文章

    2998

    瀏覽量

    233263
  • FM調(diào)制
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6799

原文標(biāo)題:FM調(diào)制解調(diào)以及MATLAB實現(xiàn)

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    FM信號的解調(diào)電路--斜率鑒頻器

    FM信號的解調(diào)電路--斜率鑒頻器 頻率檢波就是從FM信號中檢取出原調(diào)制信號。鑒頻器是實現(xiàn)頻率檢波的裝置。 鑒
    發(fā)表于 05-27 16:52 ?2.2w次閱讀
    <b class='flag-5'>FM</b>信號的<b class='flag-5'>解調(diào)</b>電路--斜率鑒頻器

    QPSK信號的調(diào)制解調(diào)及其誤碼率的仿真

    附件中有3個matlab的.m文件,是實現(xiàn)2psk信號的調(diào)制解調(diào)及其誤碼率的仿真。一個主文件,2個子文件。現(xiàn)在要求更改點東西實現(xiàn)4psk信號
    發(fā)表于 06-10 15:20

    如何在multisim中仿真實現(xiàn)FM-GFSK和PM-D8PSK調(diào)制解調(diào)的電路。

    在multisim中仿真實現(xiàn)FM-GFSK和PM-D8PSK調(diào)制解調(diào)的電路。
    發(fā)表于 04-06 15:08

    請問ad9361在MATLAB解調(diào)FM廣播信號需要對收到的基帶信號做哪些處理

    AD9361(AD-FMCCOMS-EBZ) 接收FM廣播信號,使用提供的IIO System Object,想在MATLAB實現(xiàn)解調(diào)并收聽,AD9361的范圍在70M-6GHz,
    發(fā)表于 08-14 06:53

    如何很好的實現(xiàn)ASK調(diào)制解調(diào)

    怎樣很好的實現(xiàn)ASK調(diào)制解調(diào)
    發(fā)表于 09-20 03:54

    Multisim調(diào)制解調(diào)電路仿真

    求助,小弟做了AM基于乘法器MC1496的調(diào)幅電路和二極管包絡(luò)檢波電路;還有FM的變?nèi)荻O管調(diào)頻電路和相位鑒頻器鑒頻電路,現(xiàn)在需求將解調(diào)的信號為之前調(diào)制出的信號,也就是調(diào)制
    發(fā)表于 04-14 23:37

    ab代碼實現(xiàn)例子-DPSK信號的調(diào)制解調(diào)Matlab代碼(采

    ab代碼實現(xiàn)的一個例子(采用正交調(diào)制解調(diào)):DPSK信號的調(diào)制解調(diào)Matlab代碼
    發(fā)表于 11-28 11:50 ?57次下載

    基于MATLAB 7.0的信號調(diào)制解調(diào)分析

    基于MATLAB 7.0的信號調(diào)制解調(diào)分析
    發(fā)表于 05-07 10:45 ?30次下載
    基于<b class='flag-5'>MATLAB</b> 7.0的信號<b class='flag-5'>調(diào)制</b>與<b class='flag-5'>解調(diào)</b>分析

    基于MATLAB的simulink仿真2Fsk調(diào)制解調(diào)

    基于MATLAB的simulink仿真2Fsk調(diào)制解調(diào)
    發(fā)表于 11-12 10:36 ?33次下載

    FM調(diào)制/解調(diào)電路的設(shè)計方案分析

    FM調(diào)制/解調(diào)電路的設(shè)計 摘要:本設(shè)計根據(jù)鎖相環(huán)原理,通過兩片CD4046搭接基本電路來實現(xiàn)FM調(diào)制
    發(fā)表于 10-27 17:04 ?60次下載
    <b class='flag-5'>FM</b><b class='flag-5'>調(diào)制</b>/<b class='flag-5'>解調(diào)</b>電路的設(shè)計方案分析

    基于matlab的msk調(diào)制解調(diào)實現(xiàn)

    本課程設(shè)計主要用于MSK信號的調(diào)制解調(diào),同時進(jìn)一步了解MSK信號的的解調(diào)調(diào)制原理以及其性能。再次基礎(chǔ)上進(jìn)一步對信號疊加噪聲,并繪制相應(yīng)波形,同時進(jìn)行分析。
    發(fā)表于 04-16 09:18 ?3.3w次閱讀
    基于<b class='flag-5'>matlab</b>的msk<b class='flag-5'>調(diào)制</b><b class='flag-5'>解調(diào)</b>的<b class='flag-5'>實現(xiàn)</b>

    gmsk調(diào)制解調(diào)matlab如何實現(xiàn)_兩種gmsk調(diào)制解調(diào)方式的實現(xiàn)

    本文主要介紹了兩種gmsk調(diào)制解調(diào)方式的實現(xiàn)。GMSK調(diào)制技術(shù)是從MSK(Minimum Shift Keying)調(diào)制的基礎(chǔ)上發(fā)展起來的一
    發(fā)表于 04-16 16:24 ?1.5w次閱讀
    gmsk<b class='flag-5'>調(diào)制</b><b class='flag-5'>解調(diào)</b><b class='flag-5'>matlab</b>如何<b class='flag-5'>實現(xiàn)</b>_兩種gmsk<b class='flag-5'>調(diào)制</b><b class='flag-5'>解調(diào)</b>方式的<b class='flag-5'>實現(xiàn)</b>

    如何使用Matlab和Simulink進(jìn)行調(diào)制解調(diào)的分析

    調(diào)制解調(diào)是信號處理應(yīng)用的重要內(nèi)容,該文利用 Matlab/Simulink 對幅度調(diào)制解調(diào)進(jìn)行仿真和分析。首先采用
    發(fā)表于 04-22 08:00 ?13次下載
    如何使用<b class='flag-5'>Matlab</b>和Simulink進(jìn)行<b class='flag-5'>調(diào)制</b><b class='flag-5'>解調(diào)</b>的分析

    如何使用軟件無線電實現(xiàn)QDPSK調(diào)制解調(diào)算法的硬件

    介紹了應(yīng)用在軟件無線電技術(shù)中的4進(jìn)制相對相移鍵控調(diào)制解調(diào)算法原理, 完成了該調(diào)制解調(diào)算法的MATLAB 建模和仿真, 設(shè)計了基于Verilo
    發(fā)表于 06-30 17:01 ?6次下載
    如何使用軟件無線電<b class='flag-5'>實現(xiàn)</b>QDPSK<b class='flag-5'>調(diào)制</b><b class='flag-5'>解調(diào)</b>算法的硬件

    軟件無線電中調(diào)制解調(diào)實現(xiàn)AM-FM講解

    軟件無線電中調(diào)制解調(diào)實現(xiàn)AM-FM講解說明。
    發(fā)表于 04-28 10:03 ?11次下載