QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2116|回复: 1
打印 上一主题 下一主题

[代码资源] FM调制解调系统

[复制链接]
字体大小: 正常 放大
李秋锐        

14

主题

14

听众

76

积分

升级  74.74%

  • TA的每日心情
    奋斗
    2015-3-29 18:44
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    社区QQ达人

    跳转到指定楼层
    1#
    发表于 2015-2-1 19:22 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    %FM调制解调系统.m' `# w2 Z3 U# h  P
    %频率调制与解调的Matlab演示源程序
    , Y6 l, x. Y' O* g/ j4 z%可以任意改原调制信号函数m(t)' y  q2 K/ d6 c- y
    %电子信息工程  杜怀超 091308305  4 m: @& X( T+ }: ?5 }
    %·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
    & d: o! x* l+ @7 Y8 G: b1 r%*****************初始化******************  h/ n: I  j, Q- `& K; I
    echo   off         j1 `& i" s/ [- m
    close  all
    ; |1 w5 Z1 ]5 R1 ^6 o6 L0 rclear  all
    - _  T) I4 b* s4 {) y! wclc- d& |8 Q# W3 W% K& H; z# |" q
    %*****************************************
    ; W4 U( _0 A; T5 s  b%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·! K- e, G. R$ m$ R! z9 I( b+ v% t
    %****************FM调制******************** J6 X9 ]8 B. D  R; N3 o
    dt=0.001;                                   %设定时间步长. S; q, C5 O2 {
    t=0:dt:1.5;                                       %产生时间向量, H; g* j) y2 L. l$ b" b7 C
    am=5;                                      %设定调制信号幅度; [6 i) p' \$ d' }6 k
    fm=5;                                      %设定调制信号频率
    6 ^( u$ R0 t, ]" u* `mt=am*cos(2*pi*fm*t);                        %生成调制信号
    : J5 G6 A7 Z8 G, ffc=50;                                      %设定载波频率$ C. ~' v/ B4 h( l
    ct=cos(2*pi*fc*t);                             %生成载波
    , B5 G' x9 g9 H% N  _kf=10;                                      %设定调频指数; q3 [0 d# ]$ L( N3 t4 K# j% r
    int_mt(1)=0;7 Z: f" N5 _* h. s/ J
    for i=1:length(t)-1  " d7 J/ w& `  I; f/ i8 V
        int_mt(i+1)=int_mt(i)+mt(i)*dt;               %求信号m(t)的积分! ~3 j' Y: }- P" |3 p$ X2 O
    end                                          %调制,产生已调信号. S& ~6 y3 Q2 N7 q2 Y
    sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt);            %调制信号7 x/ t8 y9 S4 J' h7 m3 ^
    %*****************************************
    4 d% x0 s9 M6 x6 G2 Q%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
    8 u. H" {' P* W/ W+ g" l* A%*************添加高斯白噪声**************& |3 y* N. M$ C/ N1 G( c
    sn1=10;                                     %设定信躁比(小信噪比), Q* i- x6 [5 z$ w- |. u; ?( w9 Y: _, D- ~
    sn2=30;                                     %设定信躁比(大信噪比)
    + I- S( U2 r9 p- n( nsn=0;                                       %设定信躁比(无信噪比): v) Y7 l' P; `* t% ]* Z7 C
    db=am^2/(2*(10^(sn/10)));                     %计算对应的高斯白躁声的方差! k8 _! {7 G. S- u  g) D) g7 R
    n=sqrt(db)*randn(size(t));                      %生成高斯白躁声
    + x) ^% ]8 {( M( L8 }$ [5 X+ Nnsfm=n+sfm;                                %生成含高斯白躁声的已调信号(信号通, H, U" h# ^; L* l. e& B
    %过信道传输)
    ) I5 I/ _' |& x; f2 f+ B4 |$ G: n%*****************************************' @6 q: R. w) {' T" {
    %·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
    ) R9 G: T6 w* U& P( ]8 a4 W8 U+ o; q%****************FM解调*******************
    4 ~/ G3 P6 q, Y$ |2 Ffor i=1:length(t)-1                             %接受信号通过微分器处理
    8 o& {5 _* g- y9 G    diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;7 s# V! h; O- T+ |
    end
    ( j$ V2 t+ C  P) Zdiff_nsfmn = abs(hilbert(diff_nsfm));     %hilbert变换,求绝对值得到瞬时幅度(包络检波)& k! b/ y& s% B3 \
    zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;6 M5 R" e8 F1 E6 K8 j8 W' N( V
    diff_nsfmn1=diff_nsfmn-zero;& w$ O4 M# a* f6 K  P" Y
    %*****************************************
    " `! x1 X  X1 v! |6 X%·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
    * _& |6 t* N! z) t9 i  R5 Y%**************时域到频域转换**************
    ) K/ G" Q2 s1 V6 S* ]5 J$ J7 R  Kts=0.001;                                    %抽样间隔# \" a/ h, `, u
    fs=1/ts;                                      %抽样频率
    - h% q$ \% K% d, L4 Tdf=0.25;                                     %所需的频率分辨率,用在求傅里叶变换
    1 Z* _0 z! W3 e0 H& v: _* D%                      时,它表示FFT的最小频率间隔
    5 L* e2 i6 j& t%*****对调制信号m(t)求傅里叶变换*****
    1 w. y* E6 c; X  J: V* Jm=am*cos(2*pi*fm*t);                         %原调信号- x/ `3 R7 V' r/ p9 z
    fs=1/ts;
    + f" @, i, |6 I3 Yif nargin==2
      W: z0 o+ c; l6 {    n1=0;
    , \1 k2 v: o, ~! d8 welse/ B1 P+ W$ m0 R3 Q5 o  i1 u
        n1=fs/df;3 J# n5 \! o3 n5 ]8 E+ K! p
    end
    + }- U' C! z$ Vn2=length(m);2 e1 q7 j6 ~# I
    n=2^(max(nextpow2(n1),nextpow2(n2)));
    % }$ m0 \+ F2 w: [M=fft(m,n);% Y( s- E1 J! q0 U
    m=[m,zeros(1,n-n2)];* I" H; e  h" n! h6 H" m
    df1=fs/n;                                   %以上程序是对调制后的信号u求傅里变换
    , P; c" @, W1 ~$ `; f7 `& BM=M/fs;                                   %缩放,便于在频铺图上整体观察
    ' W8 f0 h- z1 A. y* Xf=[0:df1:df1*(length(m)-1)]-fs/2;                %时间向量对应的频率向量
    9 l+ Z2 k9 H' ]- k# ~7 V4 o' V) ~' q9 l# M
    %************对已调信号u求傅里变换**********
    6 E1 }: K- w+ g) {- H7 Bfs=1/ts;
    9 q& z4 X1 e, J7 W) O  T0 p! iif nargin==2
    # m( y; e: ]: R* M$ J) K/ U, s. U    n1=0;, u+ s6 C& U* ?9 a
    else
    4 M/ a: b6 B0 C    n1=fs/df;
    ; @( }, K- @, O- A# Oend
    # H; s  v5 A" }6 p! zn2=length(sfm);
    / q5 L* `" k8 _- T4 w" y* qn=2^(max(nextpow2(n1),nextpow2(n2)));9 U/ c& g8 ]9 M, m  ?, f
    U=fft(sfm,n);
    , p  F- e7 }6 E$ du=[sfm,zeros(1,n-n2)];6 d# F' p3 l6 J
    df1=fs/n;                                   %以上是对已调信号u求傅里变换6 S9 S7 q) P+ I0 |& q0 I
    U=U/fs;                                    %缩放; H9 V% [, m  [
    %******************************************9 m# u2 U/ H' Y' B% _: ~9 ?2 R2 j
    %*****************************************3 \1 j; s6 ~- h( d! {! b" r
    %·*·*·*·*·*·*·*·*·*·*·*·*·*·*·*·
    ' e& N; {1 Q# ]+ K: C1 n%***************显示程序******************/ [" X4 q& o: i# _+ E- f5 a
    disp('按任意键可以看到原调制信号、载波信号和已调信号的曲线')
    ' L* A- v9 f! E& ]) rpause- r8 R0 \( w- V$ D
    %**************figure(1)******************
    % N2 h/ Y9 j  ]figure(1)
    5 |- R; [) K! m/ Dsubplot(3,1,1);plot(t,mt);                                 %绘制调制信号的时域图
    , {+ j" F  ^. @xlabel('时间t');( q5 W  D# ^! y6 A$ Z
    title('调制信号的时域图');
    * h# w2 K" Q5 f6 J" \2 U0 fsubplot(3,1,2);plot(t,ct);                               %绘制载波的时域图$ R) [  b* a$ J0 R, K# t
    xlabel('时间t');
    7 @) Q8 l7 d! }: Z( q  y& {title('载波的时域图');$ U5 y0 I, m' X5 }! |" i7 z
    subplot(3,1,3);6 V) v4 G4 Y/ [7 v( c  p1 W
    plot(t,sfm);                                                  %绘制已调信号的时域图2 O! e9 ]1 s0 f4 M
    xlabel('时间t');9 Z* H7 y3 O1 c; K7 ^+ {5 p
    title('已调信号的时域图');/ g6 w( W5 c2 h- C" _
    %******************************************& I/ n1 |) B+ A4 p
    disp('按任意键可以看到原调制信号和已调信号在频域内的图形')6 I6 K) c( ^! h% x3 f
    pause
    ' }, M8 O4 |* l0 w9 D1 E4 [%************figure(2)*********************
    - _$ P: S  `9 lfigure(2)- m2 ?0 O0 m, b5 n- l5 N
    subplot(2,1,1)
    ! z, L$ n3 ?( `8 T) X! cplot(f,abs(fftshift(M)))                        %fftshift:将FFT中的DC分量移到频谱中心6 _5 S- N1 O1 @7 c- `
    xlabel('频率f')- m% [2 r, B# z" C
    title('原调制信号的频谱图')- U3 _( ?( ^: {% ?/ \) j
    subplot(2,1,2)
    1 s0 ]! G+ q' f  `plot(f,abs(fftshift(U)))9 l, n. A# ~- s# h6 q: N
    xlabel('频率f')
    % |' {" c8 g; b9 f6 Btitle('已调信号的频谱图'); b' E1 E  X/ W, }1 e
    %******************************************( v" J5 m! q! V- y7 e0 x: a
    disp('按任意键可以看到原调制信号、无噪声条件下已调信号和解调信号的曲线')
    6 I8 A$ R. B, F4 `* C4 @- u4 _pause
    8 u  A6 W  d' h, {%**************figure(3)******************# G7 M/ @9 A# B8 Z% S, V
    figure(3)) @/ k* @0 L2 ^5 B
    subplot(3,1,1);plot(t,mt);                                  %绘制调制信号的时域图% L3 X% X+ K$ ^% b
    xlabel('时间t');0 S) q( g" O( e! T
    title('调制信号的时域图');/ K( V5 r5 F* S
    subplot(3,1,2);plot(t,sfm);                              %绘制已调信号的时域图6 h0 {7 G4 M  b' C0 G: i
    xlabel('时间t');
    ! L7 _, `; K, x6 O% X* Dtitle('无噪声条件下已调信号的时域图');" V3 c5 u) d' E3 [. d2 m+ e
    nsfm=sfm;                              ) k- Q8 \, {) q
    for i=1:length(t)-1                           %接受信号通过微分器处理# ?; O8 O, h. ^( f5 N7 @
        diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;
    ) X- J% C5 M' A" H* @end
    . i% n  l" F( J5 W0 idiff_nsfmn = abs(hilbert(diff_nsfm));     %hilbert变换,求绝对值得到瞬时幅度(包络检波)
    . X; c" Q) [7 @zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;
    6 z1 n! R6 l. M6 ?5 r6 w8 Wdiff_nsfmn1=diff_nsfmn-zero;/ b* Y/ G2 u# M( D
    subplot(3,1,3);                             %绘制无噪声条件下解调信号的时域图
    0 t1 t+ U1 t! c* ^plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');% W" w1 ]$ w  P' Z* x- V
    xlabel('时间t');                          
    7 g2 m2 ?: }3 l# g' B* Btitle('无噪声条件下解调信号的时域图');
    ; U$ K1 s; i; W! h3 ?%*****************************************
    / W5 t+ K2 o  y/ B. }& j2 W+ I7 fdisp('按任意键可以看到原调制信号、小信噪比高斯白噪声条件下已调信号和解调信号已调信号的曲线')
    8 S0 _. W5 @3 |6 n" [7 F2 Ipause) [/ `- h) X* D7 |, z3 E
    %**************figure(4)******************
    ' D5 s8 R7 ^6 g1 |: f3 Q3 mfigure(4)7 H; Z) O3 ~: Y3 `" L. g" [( `9 X
    subplot(3,1,1);plot(t,mt);                                  %绘制调制信号的时域图4 `/ o- [; B+ r3 m1 V( r
    xlabel('时间t');$ ]5 R: f+ ~- O4 Z
    title('调制信号的时域图');
    ; f5 i6 j# V0 c1 mdb1=am^2/(2*(10^(sn1/10)));                   %计算对应的小信噪比高斯白躁声的方差8 ?5 o; S$ c# [. Z  Q& S
    n1=sqrt(db1)*randn(size(t));                    %生成高斯白躁声
    6 r1 P( i6 n1 L! j  `nsfm1=n1+sfm;                              %生成含高斯白躁声的已调信号(信号通
    : ~$ L/ y5 R. C# g%                      %过信道传输)9 A0 Y2 [; Q0 ?/ c9 M7 @) g# |  d
    for i=1:length(t)-1                            %接受信号通过微分器处理
    ) r" O- }; t3 P6 Z    diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;, C1 d) M3 n; C' u- V2 w9 V
    end+ m3 z1 n: \: _* C
    diff_nsfmn1 = abs(hilbert(diff_nsfm1));   %hilbert变换,求绝对值得到瞬时幅度(包络检波). }0 a$ q; d( n- l
    zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;- U, N& j: x' |/ W7 m$ F
    diff_nsfmn1=diff_nsfmn1-zero;
    * e  ~  _( Y* [" p/ _subplot(3,1,2);; z  q4 d! f7 w3 V+ V- B6 t( G
    plot(1:length(diff_nsfm),diff_nsfm);      %绘制含小信噪比高斯白噪声已调信号的时域图* i: A* X2 s) M
    xlabel('时间t');
    . K2 u  Q$ ^- z9 ]' [. ptitle('含小信噪比高斯白噪声已调信号的时域图');6 C: r$ U' o. G# N0 X
    subplot(3,1,3);                        %绘制含小信噪比高斯白噪声解调信号的时域图
    7 t5 q8 V0 a! w2 R& Iplot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');0 b+ j6 y  C3 n' B# S
    xlabel('时间t');                          - S: t0 u* T& Z3 m% V0 G# R, o! B
    title('含小信噪比高斯白噪声解调信号的时域图');
    # X4 o* _+ g1 C9 e; h3 g%*****************************************$ p# N4 w4 C& v! t# O# Y) c4 J  Q
    disp('按任意键可以看到原调制信号、大信噪比高斯白噪声条件下已调信号和解调信号已调信号的曲线')8 r3 X- i* j- w1 {" ]# t
    pause# \4 {' \. E* Y6 A5 I3 V
    %**************figure(5)******************2 C& v! p: _4 h% ]
    figure(5)# A3 u) O( F0 D7 x8 |# b* T) }* n
    subplot(3,1,1);plot(t,mt);                                   %绘制调制信号的时域图
    " b! Q# Q8 J0 b8 vxlabel('时间t');
    6 R% Z' F% Y* b9 a* l  @- H' |title('调制信号的时域图');% r' k' L# I7 _
    db1=am^2/(2*(10^(sn2/10)));                   %计算对应的大信噪比高斯白躁声的方差
    2 j% n* }! ]  n8 w9 P! k0 w; [: E: Fn1=sqrt(db1)*randn(size(t));                    %生成高斯白躁声
    3 Z3 g5 E2 G8 r0 h) J3 ~nsfm1=n1+sfm;                              %生成含高斯白躁声的已调信号(信号通过信道传输)( s9 Y) l: ^! B2 F1 o
    for i=1:length(t)-1                             %接受信号通过微分器处理
    3 G) }. _" V( d4 r% U    diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;
    . b6 P4 q! J) P! I5 Z7 dend$ i5 s8 X7 T. x
    diff_nsfmn1 = abs(hilbert(diff_nsfm1));            %hilbert变换,求绝对值得到瞬时幅度(包
    2 {/ b1 q" D% f5 U" {5 d%                      %络检波)6 W( l! f5 I" T! Y% e
    zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;( q7 D1 u3 H6 o6 g
    diff_nsfmn1=diff_nsfmn1-zero;
    ( ^: q' _; v. f1 [9 ]subplot(3,1,2);: s' b" ~. I9 d1 e) T
    plot(1:length(diff_nsfm1),diff_nsfm1);             %绘制含大信噪比高斯白噪声已调信号
    2 L% o9 d. k* w+ ]2 V( m%                      %的时域图' |; e' E. I# O/ i2 F2 `
    xlabel('时间t');7 Y+ f* Y) v/ m4 |
    title('含大信噪比高斯白噪声已调信号的时域图');( b4 d+ b0 O4 N$ v
    subplot(3,1,3);                                %绘制含大信噪比高斯白噪声解调信号, ]/ e" n" A! P5 X$ J
    %                      %的时域图; K: l% C6 t: T# R$ F3 E3 b
    plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');
      N( E/ L3 d, W7 t; hxlabel('时间t');                           
    9 j' a- C" m+ l4 i3 xtitle('含大信噪比高斯白噪声解调信号的时域图');
    5 r7 z: K* Z6 @% m: P, K$ A%*****************************************
    / [0 N% L9 S$ F0 Y1 t%******************结 束*******************. v0 C# e! M, l0 S5 H
    0 f$ S8 c5 p! |, f' G3 d' _6 y
    & Y) {% `; C9 M
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    李秋锐        

    14

    主题

    14

    听众

    76

    积分

    升级  74.74%

  • TA的每日心情
    奋斗
    2015-3-29 18:44
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    社区QQ达人

    4 s$ ?3 v: w% D! O0 X4 h" X

    % @5 M9 X; v2 O% a& A0 Y6 o/ D9 a3 _" W- K4 _/ @5 O  ^& f7 Y
    。。。。。。。。。。。。。。。
    * W5 l! |9 b6 y6 t$ C4 v9 i: i
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-5-25 01:21 , Processed in 0.331904 second(s), 59 queries .

    回顶部