找回密码
 注册
关于网站域名变更的通知
查看: 652|回复: 1
打印 上一主题 下一主题

Matlab之求随机生成数字信号单极性不归零码的时域图并求功率谱

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-16 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
》这一题的重点就是首先把码元表示出来,这里我是使用了randi([0,1],1,N);
+ [6 F9 Z8 Z/ R7 R4 j
9 ^8 R% b- B; ^& L) e  ]( M随机生成了0或者1,生产了N个随机数。
: y/ Z/ `. A5 o1 ]9 z# n3 L& ~' B$ {9 M' N' ]% _
》接着表示基本码元,这里的是单极性不归零NRZ码元,所以gt1= ones(1,N_sample);%不归零。之后就应用基本码元函数来生成所需要的最后的序列。
+ K% t- ]( m/ V6 A
8 Z# l2 p9 H6 |1 m* g1 Z: _; d3 a》再根据所生成的每一个码元把基本码元添加到里面。
/ D9 L! M! i- w0 j9 A3 C' C1 t& x6 C# l$ \/ A* T
yt1((i-1)*N_sample+1:i*N_sample) = gt1;  2 A( ]$ n2 }8 U# m$ W2 t. m& [
% e, Y9 k! H5 i) w3 O
》最后利用快速傅里叶变换fft得到频谱,再用conj求出共轭这就相当于求了频谱模的平方。接着除以时间N就可以得到功率谱。; @% L. x5 J; }- r, T

$ |7 {+ X9 g' i# r》在生成的图我们会发现有许多的冲激,那么你就可以看看这些冲击都是在哪一些位置,试着去掉着一些冲激。2 `  _: @8 y2 J" g

, c* X: C. y5 x! B% E& Xfor i = 1:80  
' c6 l0 g+ K' l$ H  P1 x- ^, V* c* Z
     Pf1(i*100 + 1) = Pf1(i*10);) k4 Q' P3 H. Q  |3 N

, l" f. e- c% C% `' [2 J/ Kend( N/ g* G! s) @0 D5 M( P

0 ?- D& i2 w0 r4 p. i  P4 B要生成别的码元表示只要稍微修改即可。6 z) q+ t' s4 A. c# x) c+ G4 F8 X. a

5 j, o! |' P8 D& l. b最后参考代码是:(图的显示的时候要多运行几次,最后效果才出来)5 @1 h2 y, Y! E" r5 H; X

1 ?+ C' N$ [  r! y; Y' |% communication principle8 d3 Q7 b/ `0 Y+ y' ^1 {
% Lab 6 problem 1
$ C) V0 G# c/ t0 \function single_polar_code  L7 }! u5 U% ~1 H$ D5 C0 n+ n
clear all;% ^7 o& L. W! x4 k# Y; B
format long;" i% v  N* y3 d- N
Ts       = 1;                %码元周期: w, a& K+ D0 d/ h
N_sample = 128;              %每个码元抽样点数
, M) P4 U. F; d6 Pdt       = Ts/N_sample;      %抽样的时间间隔9 ]2 z3 `4 T" _, h8 z2 x
N        = 100;               %码元数) j/ k* H5 w! i: X2 i* w
t        = 0: dt: (N*N_sample-1)*dt;0 c+ C: d$ K2 p+ E! i
% 基本码元 g(t) = 1$ C0 O/ D  B, \. Y3 l# Y; M8 {
gt1      = ones(1,N_sample);                          %不归零
8 I/ G6 U  _6 xgt2      = [ones(1,N_sample/2),zeros(1,N_sample/2)];  %归零,占空比为0.5
+ R) c* {; l9 |* tgt3      = sinc(2*t(1:N_sample)/Ts);                  %sin(2*pi*t(1:N_sample)/Ts)/(2*pi*(1:N_sample)/Ts)3 z& I+ y3 m9 S: Q5 y1 I6 k, A
gt0      = zeros(1,N_sample);
% O  ^2 C/ b- V, V3 B" {
0 _% a" U9 p0 H2 M2 p' p9 c%生成随机码元
; e; s; j* K! [+ @( Jrandom_code = randi([0,1],1,N);
) W& }$ k: R$ K" x+ E$ s
( F6 x" G: W, [  d. w0 O%单极性波形的最后结果
) R- M/ `. M" u) A2 Jyt1      = zeros(1,N*N_sample-1);      
& n& ~+ k' \, R9 S( x# Eyt2      = zeros(1,N*N_sample-1);. G0 C3 I$ Q# h
yt3      = zeros(1,N*N_sample-1);% r$ P* I1 H8 a; p
for i = 1:N
7 J+ J) A& X  ?  D. w) l    if random_code(i) == 1                             %得到波形图. `' t6 i8 o( P4 y
        yt1((i-1)*N_sample+1:i*N_sample) = gt1;        %单极性不归零NRZ波形; m" U  }" U. U% M$ R7 I
        yt2((i-1)*N_sample+1:i*N_sample) = gt2;        %单极性归零RZ波形: }3 ^" }* T) D7 J  y
        yt3((i-1)*N_sample+1:i*N_sample) = gt3;        %双极性sinc波形
6 @0 [0 T! u( N! }: i    else
- Q  q% u7 d/ ^. P. X/ I! R        yt1((i-1)*N_sample+1:i*N_sample) = gt0;        %没有这一行会经常报错1 O2 t9 j- q" K* Q( W* I
        yt2((i-1)*N_sample+1:i*N_sample) = gt0;
5 @- N* t! Q: q" S        yt3((i-1)*N_sample+1:i*N_sample) = (-1)*gt3;
5 ]5 ?6 G- @1 I( b. E    end
! D( _5 H' c/ q$ cend3 W" }0 ]3 U% S& R3 f  Y/ v+ J4 t
) ]4 T% g6 b1 E3 K- H
%*********************************************************************" x' g, }+ U; H- @
%求单极性不归零时域波形于波功率谱密度
8 ~  I$ q' m$ W$ y9 jfigure(1)
0 c* @" N: r) M+ ], xsubplot(2,1,1);/ C3 J6 U8 H, E1 E8 I* R# y+ U
plot(t,yt1,'r');8 w, h. l9 y3 G+ B. v
title('单极性不归零NRZ波形');
& w  @- P. E, ~8 xxlabel('时间t/s');
8 k8 t" J$ v+ G9 W5 M, haxis([0,20,-0.5,1.5]);                %画单极性不归零NRZ波形信号幅度频谱
6 n4 b5 S2 F$ w8 r0 E/ H$ c  sgrid;
: g  O# ]4 f& |7 H3 x. x$ k
- n$ R$ D6 J" M& yFt1 = fft(yt1);# [% u5 ]- _: o5 ~3 q( E
Ft1 = fftshift(Ft1);
4 |5 D7 L6 Y8 \: Sp   = (Ft1.*conj(Ft1))/N;                    %计算功率谱密度    f- D8 S7 A+ q  k( v- b$ t
ff1 = (-length(Ft1)/2:length(Ft1)/2-1)/10;2 f6 E" X* j. E# v: v
Pf1 = 10*log10(p);8 P! z) R! Q/ K. D" v1 o) o6 o
for i = 1:80
; ^, B. F9 n; s. ^    Pf1(i*100 + 1) = Pf1(i*10);
+ ?; r/ {3 O. x* [( j. ?& |3 c) Gend3 Y. Q# H' z6 I  _2 k' L* ]
subplot(2,1,2);& f& K- r( w! i0 p0 G8 @  U: ^
plot(ff1,Pf1);2 m* a) C( c) B1 s7 D) S
axis([-50,50,-50,50]);               %画出单极性不归零NRZ波形功率谱密度: V# d- L5 M+ [3 j. Q0 U+ K4 M2 Y
grid;+ g: z: w/ d9 f0 a: J% C
%*********************************************************************) [6 G5 G) y* I8 g: u

" s8 ?4 u) _* Y8 q0 x%*********************************************************************$ Z( q+ a8 c+ e" F) z; a7 @
%求单极性归零时域波形与波功率谱密度5 g% y2 A* [* ]1 ]2 l
figure(2)6 t: ^8 ~) r3 h7 V$ _/ ]( F1 b
subplot(2,1,1);' _1 |; ]% A/ B9 D1 b5 H! W/ b+ W
plot(t,yt2,'r');
. B8 U9 v7 t8 D5 ~. C8 E9 Ktitle('单极性归零RZ波形');
3 h- |. @* T  Y5 c, W6 i" p( bxlabel('时间t/s');
- _9 n  c  L3 l: \  w1 aaxis([0,20,-0.5,1.5]);              %画出单极性归零RZ波形功率谱密度
" G8 V/ b( @9 z( _" H3 \grid;
  n# J$ b& f3 A& x, `: Y- I. {, @  C* g  {+ o' y, i3 f5 z: v5 L
Ft2  = fft(yt2);8 a3 ]# e( _" A% L# s1 [
Ft2 = fftshift(Ft2);
2 {" O8 z" l+ f$ r7 s( C3 dp2   = (Ft2.*conj(Ft2))/N;                 %计算功率谱密度  
5 m* P6 [3 j1 p. Tff2  = (-length(Ft2)/2:length(Ft2)/2-1)/10;
6 G3 B8 l8 \# a2 M% VPf2  = 10*log10(p2);
- ^4 r* O7 U) ]0 z" a" A: ffor i = 1:80
6 y3 g  ^( O" X# f6 v$ M  x    Pf2(i*100 + 1) = Pf1(i*10);
: _$ |# c0 }, \* r; aend
! l( Y! u& u/ ]; Z# A* Nsubplot(2,1,2);
2 m+ S1 ~& s) E' F2 hplot(ff2,Pf2);: y* }. o+ C$ E( z4 Y  w  N; Y/ X
axis([-50,50,-50,50]);             %画出单极性不归零NRZ波形功率谱密度
. H% G5 h% S' T6 T* |! G0 B( f. v6 Tgrid;
) v$ ~# b; C( u' v! \%*********************************************************************9 a, F! S/ [0 r& _
7 J) s! Z7 `1 R. u# l* ]
%*********************************************************************  p: y! r5 ]+ o  D$ w* T
%求双极性sinc波形时域波形与功率谱密度$ e5 ?. p2 W2 {
figure(3)
' B7 f! o. p# o7 n- ^, Lsubplot(2,1,1);
0 [3 K6 U' C1 C3 y# O  [plot(t,yt3,'r');& N8 k0 Y% L# \- _5 Y( P
title('双极性sinc波形');
; [4 A5 E% A( l* C8 K9 s7 Axlabel('时间t/s');
9 M, Q1 U$ X; |* |0 W0 caxis([0,20,-1.5,1.5]);              %画出双极性sinc波形功率谱密度& F% o! n4 Q# O7 L6 v9 \; m! j
grid;+ ~2 P% D* k# D

3 Q1 m4 E8 B6 hFt3 = fft(yt3);
7 b4 t* d0 T0 |) h9 bFt3 = fftshift(Ft3);
( I* e+ l: ]& [* ap3   = (Ft3.*conj(Ft3))/20;               %计算功率谱密度  $ U2 S7 S  f# N* j) n& ^% ?& p
ff3  = (-length(Ft3)/2:length(Ft3)/2-1)/10;
( H. q+ i# ~5 X" B& L6 [Pf3  = 10*log10(p3);( v; ]6 q, N! g: u! ]9 @
subplot(2,1,2);
5 g: F3 R6 R$ o% m2 y& eplot(ff3,Pf3(1:length(Ft3)));
+ M6 T. I" }' waxis([-50,50,-50,60]);             %画出单极性不归零NRZ波形功率谱密度
9 {: U8 _- d" P4 }9 y8 i- Qgrid;2 {4 T& Z7 L4 b4 u
%**************************
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-11-16 17:30 | 只看该作者
    Matlab之求随机生成数字信号单极性不归零码的时域图并求功率谱
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-21 13:09 , Processed in 0.093750 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表